diff options
author | Aleksey Kladov <[email protected]> | 2017-12-31 20:34:29 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2017-12-31 20:34:29 +0000 |
commit | 8c478a794c667357b0c9a82ffc5c3eb5ca1b1b0d (patch) | |
tree | 403a3feaefea71a1e2a220a79c46e31a33abfe34 /src | |
parent | 39024fdc14703e3936f88d9ec938aad55085d05a (diff) |
Parser: initial
Diffstat (limited to 'src')
-rw-r--r-- | src/lib.rs | 2 | ||||
-rw-r--r-- | src/parser/mod.rs | 12 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/lib.rs b/src/lib.rs index 0685e3f2c..13872a3d9 100644 --- a/src/lib.rs +++ b/src/lib.rs | |||
@@ -3,8 +3,10 @@ extern crate unicode_xid; | |||
3 | mod text; | 3 | mod text; |
4 | mod tree; | 4 | mod tree; |
5 | mod lexer; | 5 | mod lexer; |
6 | mod parser; | ||
6 | 7 | ||
7 | pub mod syntax_kinds; | 8 | pub mod syntax_kinds; |
8 | pub use text::{TextUnit, TextRange}; | 9 | pub use text::{TextUnit, TextRange}; |
9 | pub use tree::{SyntaxKind, Token, FileBuilder, File, Node}; | 10 | pub use tree::{SyntaxKind, Token, FileBuilder, File, Node}; |
10 | pub use lexer::{next_token, tokenize}; | 11 | pub use lexer::{next_token, tokenize}; |
12 | pub use parser::parse; | ||
diff --git a/src/parser/mod.rs b/src/parser/mod.rs index da902e2b7..7336c5136 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs | |||
@@ -1,5 +1,11 @@ | |||
1 | use {Token, File}; | 1 | use {Token, File, FileBuilder}; |
2 | 2 | ||
3 | pub fn parse(tokens: &[Token]) -> File { | 3 | use syntax_kinds::*; |
4 | unimplemented!() | 4 | |
5 | |||
6 | pub fn parse(text: String, tokens: &[Token]) -> File { | ||
7 | let mut builder = FileBuilder::new(text); | ||
8 | builder.start_internal(FILE); | ||
9 | builder.finish_internal(); | ||
10 | builder.finish() | ||
5 | } \ No newline at end of file | 11 | } \ No newline at end of file |