diff options
author | Veetaha <[email protected]> | 2020-01-28 05:09:13 +0000 |
---|---|---|
committer | Veetaha <[email protected]> | 2020-02-03 22:00:55 +0000 |
commit | 9e7eaa959f9dc368a55f1a80b35651b78b3d0883 (patch) | |
tree | 4b1f4af14d9898301949fa937219006d671a72ef /crates/ra_syntax/src/parsing.rs | |
parent | bf60661aa3e2a77fedb3e1627675842d05538860 (diff) |
ra_syntax: refactored the lexer design as per @matklad and @kiljacken PR review
Diffstat (limited to 'crates/ra_syntax/src/parsing.rs')
-rw-r--r-- | crates/ra_syntax/src/parsing.rs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/crates/ra_syntax/src/parsing.rs b/crates/ra_syntax/src/parsing.rs index 4e51f920b..e5eb80850 100644 --- a/crates/ra_syntax/src/parsing.rs +++ b/crates/ra_syntax/src/parsing.rs | |||
@@ -15,9 +15,15 @@ pub use lexer::*; | |||
15 | pub(crate) use self::reparsing::incremental_reparse; | 15 | pub(crate) use self::reparsing::incremental_reparse; |
16 | 16 | ||
17 | pub(crate) fn parse_text(text: &str) -> (GreenNode, Vec<SyntaxError>) { | 17 | pub(crate) fn parse_text(text: &str) -> (GreenNode, Vec<SyntaxError>) { |
18 | let ParsedTokens { tokens, errors } = tokenize(&text); | 18 | let (tokens, lexer_errors) = tokenize(&text); |
19 | |||
19 | let mut token_source = TextTokenSource::new(text, &tokens); | 20 | let mut token_source = TextTokenSource::new(text, &tokens); |
20 | let mut tree_sink = TextTreeSink::new(text, &tokens, errors); | 21 | let mut tree_sink = TextTreeSink::new(text, &tokens); |
22 | |||
21 | ra_parser::parse(&mut token_source, &mut tree_sink); | 23 | ra_parser::parse(&mut token_source, &mut tree_sink); |
22 | tree_sink.finish() | 24 | |
25 | let (tree, mut parser_errors) = tree_sink.finish(); | ||
26 | parser_errors.extend(lexer_errors); | ||
27 | |||
28 | (tree, parser_errors) | ||
23 | } | 29 | } |