🐐 More compound operators

This commit is contained in:
2026-04-24 16:26:17 +02:00
parent 76bf509d48
commit ea72c91870
10 changed files with 45 additions and 4 deletions

View File

@@ -293,6 +293,30 @@ assignment_tests = [
[Designa(ID("s"), BinOp(ID("s"), ID("i"), "SYMBOL_PLUS"))]),
ExpressionStatement(ID("s"))]),
ValInt(6)),
# Compound assignment — MVLTIPLICA (*=)
("DESIGNA x VT III\nx MVLTIPLICA II\nx",
Program([], [Designa(ID("x"), Numeral("III")),
Designa(ID("x"), BinOp(ID("x"), Numeral("II"), "SYMBOL_TIMES")),
ExpressionStatement(ID("x"))]),
ValInt(6)),
# Compound assignment — DIVIDE (/=)
("DESIGNA x VT XII\nx DIVIDE III\nx",
Program([], [Designa(ID("x"), Numeral("XII")),
Designa(ID("x"), BinOp(ID("x"), Numeral("III"), "SYMBOL_DIVIDE")),
ExpressionStatement(ID("x"))]),
ValInt(4)),
# MVLTIPLICA with complex RHS — whole expression is captured before the op
("DESIGNA x VT II\nx MVLTIPLICA II + I\nx",
Program([], [Designa(ID("x"), Numeral("II")),
Designa(ID("x"), BinOp(ID("x"), BinOp(Numeral("II"), Numeral("I"), "SYMBOL_PLUS"), "SYMBOL_TIMES")),
ExpressionStatement(ID("x"))]),
ValInt(6)),
# DIVIDE with complex RHS
("DESIGNA x VT XX\nx DIVIDE II + II\nx",
Program([], [Designa(ID("x"), Numeral("XX")),
Designa(ID("x"), BinOp(ID("x"), BinOp(Numeral("II"), Numeral("II"), "SYMBOL_PLUS"), "SYMBOL_DIVIDE")),
ExpressionStatement(ID("x"))]),
ValInt(5)),
]
class TestAssignment(unittest.TestCase):