From b01e707dba7810c3d28c82a84dec9064cc01d3c8 Mon Sep 17 00:00:00 2001 From: csmoe Date: Mon, 31 Dec 2018 21:30:37 +0800 Subject: doc parser input --- crates/ra_syntax/src/parser_impl.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'crates/ra_syntax/src/parser_impl.rs') diff --git a/crates/ra_syntax/src/parser_impl.rs b/crates/ra_syntax/src/parser_impl.rs index d4032a6d9..ce321aecb 100644 --- a/crates/ra_syntax/src/parser_impl.rs +++ b/crates/ra_syntax/src/parser_impl.rs @@ -64,7 +64,6 @@ pub(crate) fn parse_with( /// the public API of the `Parser`. pub(crate) struct ParserImpl<'t> { inp: &'t ParserInput<'t>, - pos: InputPosition, events: Vec, steps: Cell, @@ -74,7 +73,6 @@ impl<'t> ParserImpl<'t> { pub(crate) fn new(inp: &'t ParserInput<'t>) -> ParserImpl<'t> { ParserImpl { inp, - pos: InputPosition::new(), events: Vec::new(), steps: Cell::new(0), @@ -89,7 +87,9 @@ impl<'t> ParserImpl<'t> { pub(super) fn next2(&self) -> Option<(SyntaxKind, SyntaxKind)> { let c1 = self.inp.kind(self.pos); let c2 = self.inp.kind(self.pos + 1); - if self.inp.start(self.pos + 1) == self.inp.start(self.pos) + self.inp.len(self.pos) { + if self.inp.token_start_at(self.pos + 1) + == self.inp.token_start_at(self.pos) + self.inp.len(self.pos) + { Some((c1, c2)) } else { None @@ -100,9 +100,10 @@ impl<'t> ParserImpl<'t> { let c1 = self.inp.kind(self.pos); let c2 = self.inp.kind(self.pos + 1); let c3 = self.inp.kind(self.pos + 2); - if self.inp.start(self.pos + 1) == self.inp.start(self.pos) + self.inp.len(self.pos) - && self.inp.start(self.pos + 2) - == self.inp.start(self.pos + 1) + self.inp.len(self.pos + 1) + if self.inp.token_start_at(self.pos + 1) + == self.inp.token_start_at(self.pos) + self.inp.len(self.pos) + && self.inp.token_start_at(self.pos + 2) + == self.inp.token_start_at(self.pos + 1) + self.inp.len(self.pos + 1) { Some((c1, c2, c3)) } else { -- cgit v1.2.3