🐐 Compound assignment

This commit is contained in:
2026-04-21 14:39:42 +02:00
parent ad46f189c0
commit c28ffbbf45
8 changed files with 53 additions and 1 deletions

View File

@@ -5,6 +5,7 @@ valid_characters = '|'.join(list("abcdefghiklmnopqrstvxyz_"))
keyword_tokens = [("KEYWORD_"+i, i) for i in [
"AETERNVM",
"ALVID",
"AVGE",
"AVT",
"DEFINI",
"DESIGNA",
@@ -19,6 +20,7 @@ keyword_tokens = [("KEYWORD_"+i, i) for i in [
"FALSITAS",
"INVOCA",
"IN",
"MINVE",
"MINVS",
"NON",
"NVLLVS",

View File

@@ -74,6 +74,14 @@ class Parser():
def statement_designa_index(tokens):
return ast_nodes.DesignaIndex(tokens[1], tokens[3], tokens[6])
@self.pg.production('statement : id KEYWORD_AVGE expression')
def statement_avge(tokens):
return ast_nodes.Designa(tokens[0], ast_nodes.BinOp(tokens[0], tokens[2], "SYMBOL_PLUS"))
@self.pg.production('statement : id KEYWORD_MINVE expression')
def statement_minve(tokens):
return ast_nodes.Designa(tokens[0], ast_nodes.BinOp(tokens[0], tokens[2], "SYMBOL_MINUS"))
@self.pg.production('statement : expression')
def statement_expression(tokens):
return ast_nodes.ExpressionStatement(tokens[0])