From cf7d4a2a243cac1975b9b28d47ed91a6bd01b34f Mon Sep 17 00:00:00 2001
From: Aleksey Kladov <aleksey.kladov@gmail.com>
Date: Fri, 24 Aug 2018 00:48:10 +0300
Subject: Simplify

---
 crates/libsyntax2/src/parser_impl/mod.rs | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

(limited to 'crates/libsyntax2/src/parser_impl')

diff --git a/crates/libsyntax2/src/parser_impl/mod.rs b/crates/libsyntax2/src/parser_impl/mod.rs
index 06c16cdb4..14cceced5 100644
--- a/crates/libsyntax2/src/parser_impl/mod.rs
+++ b/crates/libsyntax2/src/parser_impl/mod.rs
@@ -65,15 +65,26 @@ impl<'t> ParserImpl<'t> {
         self.events
     }
 
-    pub(super) fn at_compound2(&self, c1: SyntaxKind, c2: SyntaxKind) -> bool {
-        self.inp.kind(self.pos) == c1 && self.inp.kind(self.pos + 1) == c2
-            && self.inp.start(self.pos + 1) == self.inp.start(self.pos) + self.inp.len(self.pos)
+    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) {
+            Some((c1, c2))
+        } else {
+            None
+        }
     }
 
-    pub(super) fn at_compound3(&self, c1: SyntaxKind, c2: SyntaxKind, c3: SyntaxKind) -> bool {
-        self.inp.kind(self.pos) == c1 && self.inp.kind(self.pos + 1) == c2 && self.inp.kind(self.pos + 2) == c3
-            && 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)
+    pub(super) fn next3(&self) -> Option<(SyntaxKind, SyntaxKind, SyntaxKind)> {
+        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){
+            Some((c1, c2, c3))
+        } else {
+            None
+        }
     }
 
     pub(super) fn nth(&self, n: u32) -> SyntaxKind {
-- 
cgit v1.2.3