🐐 Per destructuring better
This commit is contained in:
@@ -138,15 +138,21 @@ control_tests = [
|
||||
("PER a, b IN [[I, II], [III, IV]] FAC { DIC(a + b) }",
|
||||
Program([], [PerStatement(
|
||||
DataArray([DataArray([Numeral("I"), Numeral("II")]), DataArray([Numeral("III"), Numeral("IV")])]),
|
||||
[ID("a"), ID("b")],
|
||||
[ExpressionStatement(BuiltIn("DIC", [BinOp(ID("a"), ID("b"), "SYMBOL_PLUS")]))])]),
|
||||
ID("#per_item"),
|
||||
[
|
||||
DesignaDestructure([ID("a"), ID("b")], ID("#per_item")),
|
||||
ExpressionStatement(BuiltIn("DIC", [BinOp(ID("a"), ID("b"), "SYMBOL_PLUS")])),
|
||||
])]),
|
||||
ValStr("VII"), "III\nVII\n"),
|
||||
# PER destructuring: three variables
|
||||
("PER a, b, c IN [[I, II, III]] FAC { DIC(a + b + c) }",
|
||||
Program([], [PerStatement(
|
||||
DataArray([DataArray([Numeral("I"), Numeral("II"), Numeral("III")])]),
|
||||
[ID("a"), ID("b"), ID("c")],
|
||||
[ExpressionStatement(BuiltIn("DIC", [BinOp(BinOp(ID("a"), ID("b"), "SYMBOL_PLUS"), ID("c"), "SYMBOL_PLUS")]))])]),
|
||||
ID("#per_item"),
|
||||
[
|
||||
DesignaDestructure([ID("a"), ID("b"), ID("c")], ID("#per_item")),
|
||||
ExpressionStatement(BuiltIn("DIC", [BinOp(BinOp(ID("a"), ID("b"), "SYMBOL_PLUS"), ID("c"), "SYMBOL_PLUS")])),
|
||||
])]),
|
||||
ValStr("VI"), "VI\n"),
|
||||
]
|
||||
|
||||
@@ -287,8 +293,9 @@ loop_edge_tests = [
|
||||
Designa(ID("r"), Numeral("I")),
|
||||
PerStatement(
|
||||
DataArray([DataArray([Numeral("I"), Numeral("II")]), DataArray([Numeral("III"), Numeral("IV")]), DataArray([Numeral("V"), Numeral("VI")])]),
|
||||
[ID("a"), ID("b")],
|
||||
[SiStatement(BinOp(ID("a"), Numeral("III"), "KEYWORD_EST"), [Erumpe()], None),
|
||||
ID("#per_item"),
|
||||
[DesignaDestructure([ID("a"), ID("b")], ID("#per_item")),
|
||||
SiStatement(BinOp(ID("a"), Numeral("III"), "KEYWORD_EST"), [Erumpe()], None),
|
||||
Designa(ID("r"), BinOp(BinOp(ID("r"), ID("a"), "SYMBOL_PLUS"), ID("b"), "SYMBOL_PLUS"))],
|
||||
),
|
||||
ExpressionStatement(ID("r")),
|
||||
@@ -300,8 +307,9 @@ loop_edge_tests = [
|
||||
Defini(ID("f"), [],
|
||||
[PerStatement(
|
||||
DataArray([DataArray([Numeral("I"), Numeral("II")]), DataArray([Numeral("III"), Numeral("IV")])]),
|
||||
[ID("a"), ID("b")],
|
||||
[SiStatement(BinOp(ID("a"), Numeral("III"), "KEYWORD_EST"), [Redi([ID("b")])], None)],
|
||||
ID("#per_item"),
|
||||
[DesignaDestructure([ID("a"), ID("b")], ID("#per_item")),
|
||||
SiStatement(BinOp(ID("a"), Numeral("III"), "KEYWORD_EST"), [Redi([ID("b")])], None)],
|
||||
)]),
|
||||
ExpressionStatement(Invoca(ID("f"), [])),
|
||||
]),
|
||||
|
||||
Reference in New Issue
Block a user