Skip to content
Snippets Groups Projects
Commit 17c015e6 authored by Mattias Ajander's avatar Mattias Ajander
Browse files

Bugfix for Parser + reminder for scope

parent d0da771e
Branches
No related tags found
No related merge requests found
/*
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.
*/
...@@ -219,10 +219,10 @@ Node* Parser::parse_unary() ...@@ -219,10 +219,10 @@ Node* Parser::parse_unary()
Node* Parser::parse_factor() Node* Parser::parse_factor()
{ {
LOG_DEBUG("Parse factor"); LOG_DEBUG("Parse factor");
if (match(TokenType::IDENTIFIER)) if (check(TokenType::IDENTIFIER))
return parse_identifier(); return parse_identifier();
else if (match(TokenType::NUMB) || match(TokenType::REAL) || match(TokenType::BOOL) || match(TokenType::CHAR) || else if (check(TokenType::NUMB) || check(TokenType::REAL) || check(TokenType::BOOL) || check(TokenType::CHAR) ||
match(TokenType::TEXT)) check(TokenType::TEXT))
{ {
return parse_literal(); return parse_literal();
} }
...@@ -239,7 +239,8 @@ Node* Parser::parse_factor() ...@@ -239,7 +239,8 @@ Node* Parser::parse_factor()
Node* Parser::parse_literal() Node* Parser::parse_literal()
{ {
LOG_DEBUG("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() Node* Parser::parse_identifier()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment