blob: 65aea017b1931a28216b1109c7b3154e2a636eea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
use {SyntaxKind, Token};
#[macro_use]
mod parser;
mod grammar;
#[derive(Debug)]
pub(crate) enum Event {
Start {
kind: SyntaxKind,
forward_parent: Option<u32>,
},
Finish,
Token {
kind: SyntaxKind,
n_raw_tokens: u8,
},
Error {
message: String,
},
}
pub(crate) fn parse<'t>(text: &'t str, raw_tokens: &'t [Token]) -> Vec<Event> {
let mut parser = parser::Parser::new(text, raw_tokens);
grammar::file(&mut parser);
parser.into_events()
}
|