added struct setters

This commit is contained in:
Andrew Segavac
2021-06-12 12:47:10 -06:00
parent 7b3fb9b88b
commit 972fbd064b
4 changed files with 16 additions and 7 deletions

View File

@@ -133,7 +133,7 @@ class LetStatement:
@dataclass
class AssignmentStatement:
variable_name: str
source: Union[VariableUsage, StructGetter]
type: TypeUsage
expression: Expression
@@ -228,7 +228,8 @@ boring_grammar = r"""
let_statement : "let" identifier "=" expression ";"
| "let" identifier ":" type_usage "=" expression ";"
assignment_statement : identifier "=" expression ";"
assignment_statement : variable_usage "=" expression ";"
| struct_getter "=" expression ";"
statement : let_statement
| assignment_statement
@@ -375,9 +376,9 @@ class TreeToBoring(Transformer):
)
def assignment_statement(self, assignment_statement) -> AssignmentStatement:
(variable_name, expression) = assignment_statement
(source, expression) = assignment_statement
return AssignmentStatement(
variable_name=variable_name,
source=source,
type=UnknownTypeUsage(),
expression=expression,
)