AST works for variable reassignment

kinda coded horribly tho lol
This commit is contained in:
SpookyDervish
2025-10-14 19:22:59 +11:00
parent 5741a48e73
commit 655e5d1d12
7 changed files with 132 additions and 39 deletions

16
AST.py
View File

@@ -8,6 +8,7 @@ class NodeType(Enum):
# Statements
ExpressionStatement = "ExpressionStatement"
AssignmentStatement = "AssignmentStatement"
ReassignStatement = "ReassignStatement"
FunctionStatement = "FunctionStatement"
BlockStatement = "BlockStatement"
ReturnStatement = "ReturnStatement"
@@ -164,6 +165,21 @@ class FunctionStatement(Statement):
"parameters": [p.json() for p in self.parameters],
"body": self.body.json()
}
class ReassignStatement(Statement):
def __init__(self, ident: Expression = None, right_value: Expression = None) -> None:
self.ident = ident
self.right_value = right_value
def type(self) -> NodeType:
return NodeType.ReassignStatement
def json(self) -> dict:
return {
"type": self.type().value,
"ident": self.ident.json(),
"right_value": self.right_value.json()
}
# endregion
# region Expressions