From 65ebfd9a34554b8139d5c4673bc3b5daa5ab0df5 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 11 Feb 2018 13:13:06 +0300 Subject: Simplify --- src/parser/mod.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/parser/mod.rs') diff --git a/src/parser/mod.rs b/src/parser/mod.rs index 49a69900f..c23ed3349 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -26,3 +26,33 @@ fn is_insignificant(kind: SyntaxKind) -> bool { _ => false, } } + +impl<'p> parser::Parser<'p> { + fn at(&self, kind: SyntaxKind) -> bool { + self.current() == kind + } + + fn err_and_bump(&mut self, message: &str) { + let err = self.start(); + self.error(message); + self.bump(); + err.complete(self, ERROR); + } + + fn expect(&mut self, kind: SyntaxKind) -> bool { + if self.at(kind) { + self.bump(); + true + } else { + self.error(format!("expected {:?}", kind)); + false + } + } + + fn eat(&mut self, kind: SyntaxKind) -> bool { + self.at(kind) && { + self.bump(); + true + } + } +} -- cgit v1.2.3