From 17c015e6290e55780b47dea484ea9bb40dbd091a Mon Sep 17 00:00:00 2001
From: Mattias Ajander <mataj513@student.liu.se>
Date: Mon, 31 Mar 2025 15:55:34 +0200
Subject: [PATCH] Bugfix for Parser + reminder for scope

---
 include/parser/Scope.h  | 4 ++++
 source/parser/Parser.cc | 9 +++++----
 2 files changed, 9 insertions(+), 4 deletions(-)
 create mode 100644 include/parser/Scope.h

diff --git a/include/parser/Scope.h b/include/parser/Scope.h
new file mode 100644
index 0000000..186f2b0
--- /dev/null
+++ b/include/parser/Scope.h
@@ -0,0 +1,4 @@
+/*
+Create a Scope class with a singleton accesor. See Logger for example of singleton.
+Create a global scope with HasMap, some util functions? key string value NodeValue / LiteralNode.
+*/
diff --git a/source/parser/Parser.cc b/source/parser/Parser.cc
index 1abb26d..c41db92 100644
--- a/source/parser/Parser.cc
+++ b/source/parser/Parser.cc
@@ -219,10 +219,10 @@ Node* Parser::parse_unary()
 Node* Parser::parse_factor()
 {
     LOG_DEBUG("Parse factor");
-    if (match(TokenType::IDENTIFIER))
+    if (check(TokenType::IDENTIFIER))
         return parse_identifier();
-    else if (match(TokenType::NUMB) || match(TokenType::REAL) || match(TokenType::BOOL) || match(TokenType::CHAR) ||
-             match(TokenType::TEXT))
+    else if (check(TokenType::NUMB) || check(TokenType::REAL) || check(TokenType::BOOL) || check(TokenType::CHAR) ||
+             check(TokenType::TEXT))
     {
         return parse_literal();
     }
@@ -239,7 +239,8 @@ Node* Parser::parse_factor()
 Node* Parser::parse_literal()
 {
     LOG_DEBUG("Parse literal");
-    return new LiteralNode(peek_prev().get_location(), NodeValue(peek_prev().get_value()));
+    Token literal{next()};
+    return new LiteralNode(literal.get_location(), NodeValue(literal.get_value()));
 }
 
 Node* Parser::parse_identifier()
-- 
GitLab