oxilean_parse/tactic_parser/
tacticparser_check_methods.rs1use crate::TokenKind;
8
9use super::tacticparser_type::TacticParser;
10
11impl<'a> TacticParser<'a> {
12 pub(super) fn check_op(&self, op: &str) -> bool {
13 if let Some(token) = self.current() {
14 match &token.kind {
15 TokenKind::LParen if op == "(" => true,
16 TokenKind::RParen if op == ")" => true,
17 TokenKind::LBrace if op == "{" => true,
18 TokenKind::RBrace if op == "}" => true,
19 TokenKind::LBracket if op == "[" => true,
20 TokenKind::RBracket if op == "]" => true,
21 TokenKind::Comma if op == "," => true,
22 TokenKind::Semicolon if op == ";" => true,
23 TokenKind::Colon if op == ":" => true,
24 TokenKind::Assign if op == ":=" => true,
25 TokenKind::Arrow if op == "=>" => true,
26 TokenKind::Bar if op == "|" => true,
27 TokenKind::Underscore if op == "_" => true,
28 TokenKind::Star if op == "*" => true,
29 TokenKind::Minus if op == "-" => true,
30 TokenKind::Ident(s) if s == op => true,
31 _ => false,
32 }
33 } else {
34 false
35 }
36 }
37 pub(super) fn consume_op(&mut self, op: &str) -> bool {
38 if self.check_op(op) {
39 self.advance();
40 true
41 } else {
42 false
43 }
44 }
45}