working ons tring compilation

This commit is contained in:
SpookyDervish
2025-10-15 07:58:30 +11:00
parent 39a5151d97
commit e0dd9ee541
2 changed files with 31 additions and 3 deletions

View File

@@ -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