Skip to main content

oxilean_parse/tactic_parser/
tacticparser_check_methods.rs

1//! # TacticParser - check_methods Methods
2//!
3//! This module contains method implementations for `TacticParser`.
4//!
5//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
6
7use 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}