git.delta.rocks / jrsonnet / refs/commits / 5ad3c0601af8

difftreelog

source

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