From 84397b05d0db5aedbc4fe38b19b7554ea95adafa Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 10 Apr 2024 18:46:48 +0200 Subject: [PATCH] bug fixes --- src/lexer.rs | 2 +- src/parser.rs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lexer.rs b/src/lexer.rs index 6178669..a844a22 100644 --- a/src/lexer.rs +++ b/src/lexer.rs @@ -78,7 +78,7 @@ const SYNTAX: [Node; 13] = [ }, Node { token_type: TokenType::Operator, - token_regex: Lazy::new(|| Regex::new(r"^[\-|\+|\*|\=]").unwrap()) + token_regex: Lazy::new(|| Regex::new(r"^[\-|\+|\*|\=|\!]").unwrap()) }, Node { token_type: TokenType::Round, diff --git a/src/parser.rs b/src/parser.rs index 4363987..ccc5b9e 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -60,8 +60,9 @@ impl Parser { let token = &self.tokens[index]; match token.token_type { TokenType::Identifier => { + ast_res.tokens.push(self.tokens[index].clone()); + self.index += 1; if self.tokens.len()-index > 3 && self.tokens[index+1].token_type==TokenType::Identifier && self.tokens[index+2].token_type==TokenType::Round && self.tokens[index+3].token_type==TokenType::Curly { - ast_res.tokens.push(self.tokens[index].clone()); ast_res.tokens.push(self.tokens[index+1].clone()); ast_res.tokens.push(self.tokens[index+2].clone()); ast_res.tokens.push(self.tokens[index+3].clone());