AST works for variable reassignment
kinda coded horribly tho lol
This commit is contained in:
16
AST.py
16
AST.py
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user