rust/src/parser/event_parser/mod.rs

23 lines
453 B
Rust
Raw Normal View History

2018-01-06 14:16:00 +00:00
use {Token, SyntaxKind};
2018-01-01 13:05:46 +00:00
mod grammar;
mod parser;
2018-01-01 19:13:04 +00:00
#[derive(Debug)]
2018-01-01 13:05:46 +00:00
pub(crate) enum Event {
Start { kind: SyntaxKind },
Finish,
Token {
kind: SyntaxKind,
n_raw_tokens: u8,
2018-01-07 09:13:01 +00:00
},
Error {
message: String,
},
2018-01-01 13:05:46 +00:00
}
pub(crate) fn parse<'t>(text: &'t str, raw_tokens: &'t [Token]) -> Vec<Event> {
let mut parser = parser::Parser::new(text, raw_tokens);
2018-01-01 14:21:53 +00:00
grammar::file(&mut parser);
2018-01-01 13:05:46 +00:00
parser.into_events()
}