git.delta.rocks / jrsonnet / refs/commits / b1b8b4cf86ba

difftreelog

source

crates/jrsonnet-rowan-parser/src/lib.rs813 Bsourcehistory
1#![deny(unused_must_use)]23mod ast;4mod event;5mod generated;6mod language;7mod lex;8mod marker;9mod parser;10mod precedence;11mod string_block;12mod tests;13mod token_set;1415pub use ast::{AstChildren, AstNode, AstToken};16use event::Sink;17use generated::nodes::SourceFile;18pub use generated::{nodes, syntax_kinds::SyntaxKind};19pub use language::{20	JsonnetLanguage, PreorderWithTokens, SyntaxElement, SyntaxElementChildren, SyntaxNode,21	SyntaxNodeChildren, SyntaxToken,22};23use lex::lex;24use parser::{Parser, SyntaxError};25pub fn parse(input: &str) -> (SourceFile, Vec<SyntaxError>) {26	let lexemes = lex(input);27	let parser = Parser::new(&lexemes);28	let events = parser.parse();29	let sink = Sink::new(events, &lexemes);3031	let parse = sink.finish();32	(33		SourceFile {34			syntax: parse.syntax(),35		},36		parse.errors,37	)38}