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

difftreelog

source

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