working ons tring compilation
This commit is contained in:
@@ -6,7 +6,7 @@ from enum import Enum, auto
|
||||
from AST import Statement, Expression, Program
|
||||
from AST import ExpressionStatement, AssignmentStatement, FunctionStatement, ReturnStatement, BlockStatement, ReassignStatement, IfStatement
|
||||
from AST import InfixExpression, CallExpression
|
||||
from AST import IntegerLiteral, FloatLiteral, IdentifierLiteral, BooleanLiteral
|
||||
from AST import IntegerLiteral, FloatLiteral, IdentifierLiteral, BooleanLiteral, StringLiteral
|
||||
from AST import FunctionParameter
|
||||
|
||||
class PrecedenceType(Enum):
|
||||
@@ -50,9 +50,12 @@ class Parser:
|
||||
TokenType.INT: self.__parse_int_literal,
|
||||
TokenType.FLOAT: self.__parse_float_literal,
|
||||
TokenType.LPAREN: self.__parse_grouped_expression,
|
||||
|
||||
TokenType.IF: self.__parse_if_statement,
|
||||
TokenType.TRUE: self.__parse_boolean,
|
||||
TokenType.FALSE: self.__parse_boolean,
|
||||
|
||||
TokenType.STRING: self.__parse_string_literal,
|
||||
}
|
||||
self.infix_parse_functions: dict[Token, Callable] = { # 5 + 5
|
||||
TokenType.PLUS: self.__parse_infix_expression,
|
||||
@@ -398,4 +401,7 @@ class Parser:
|
||||
|
||||
def __parse_boolean(self) -> BooleanLiteral:
|
||||
return BooleanLiteral(value=self.__current_token_is(TokenType.TRUE))
|
||||
|
||||
def __parse_string_literal(self) -> StringLiteral:
|
||||
return StringLiteral(value=self.current_token.literal)
|
||||
# endregion
|
||||
Reference in New Issue
Block a user