aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src/parsing.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_syntax/src/parsing.rs')
-rw-r--r--crates/ra_syntax/src/parsing.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/crates/ra_syntax/src/parsing.rs b/crates/ra_syntax/src/parsing.rs
index 941ec501e..138d1394a 100644
--- a/crates/ra_syntax/src/parsing.rs
+++ b/crates/ra_syntax/src/parsing.rs
@@ -9,7 +9,7 @@ mod grammar;
9mod reparsing; 9mod reparsing;
10 10
11use crate::{ 11use crate::{
12 SyntaxError, SyntaxKind, SmolStr, 12 SyntaxKind, SmolStr, SyntaxError,
13 parsing::{ 13 parsing::{
14 builder::GreenBuilder, 14 builder::GreenBuilder,
15 input::ParserInput, 15 input::ParserInput,
@@ -21,11 +21,14 @@ use crate::{
21 21
22pub use self::lexer::{tokenize, Token}; 22pub use self::lexer::{tokenize, Token};
23 23
24#[derive(Debug, Clone, PartialEq, Eq, Hash)]
25pub struct ParseError(pub String);
26
24pub(crate) use self::reparsing::incremental_reparse; 27pub(crate) use self::reparsing::incremental_reparse;
25 28
26pub(crate) fn parse_text(text: &str) -> (GreenNode, Vec<SyntaxError>) { 29pub(crate) fn parse_text(text: &str) -> (GreenNode, Vec<SyntaxError>) {
27 let tokens = tokenize(&text); 30 let tokens = tokenize(&text);
28 parse_with(GreenBuilder::new(), text, &tokens, grammar::root) 31 parse_with(GreenBuilder::default(), text, &tokens, grammar::root)
29} 32}
30 33
31fn parse_with<S: TreeSink>( 34fn parse_with<S: TreeSink>(
@@ -57,7 +60,7 @@ trait TreeSink {
57 /// branch as current. 60 /// branch as current.
58 fn finish_branch(&mut self); 61 fn finish_branch(&mut self);
59 62
60 fn error(&mut self, error: SyntaxError); 63 fn error(&mut self, error: ParseError);
61 64
62 /// Complete tree building. Make sure that 65 /// Complete tree building. Make sure that
63 /// `start_branch` and `finish_branch` calls 66 /// `start_branch` and `finish_branch` calls