Loading data/tests/scripts/bytecode/__test.json +58 −59 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ ["STRING", "FAILED"], ["STRING", "set_script_state"], ["STRING", "set_script_msg"], ["BOOL", false], ["STRING", "PASSED"], ["STRING", "clear"], ["STRING", "function"], Loading Loading @@ -101,7 +100,7 @@ ["BRANCH", "lbb", 5, 1, 2, [9, 5]] ], [ ["CALL", "scl", 3, 17, 7, [24, 5]], ["CALL", "scl", 3, 16, 7, [24, 5]], ["COPY_VAL_BOOL", "pl", 0, 0, [25, 5]], ["RET", "", [25, 5]] ], Loading @@ -125,11 +124,11 @@ [ ["CALL", "sclplc", 2, 13, 7, 2, 4, 12, [15, 13]], ["CALL", "sclpll", 2, 14, 7, 2, 4, 12, [16, 13]], ["COPY_VAL_BOOL", "lc", 0, 15, [17, 13]], ["COPY_VAL_BOOL", "ll", 0, 0, [17, 13]], ["JUMP", "b", 3, [17, 13]] ], [ ["CALL", "sclplc", 2, 13, 7, 2, 4, 16, [21, 13]], ["CALL", "sclplc", 2, 13, 7, 2, 4, 15, [21, 13]], ["JUMP", "b", 3, [21, 13]] ] ] Loading Loading @@ -174,21 +173,21 @@ ], "code": [ [ ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 18, [30, 23]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 17, [30, 23]], ["CAST_ANY", "ll", 1, 0, [30, 23]], ["COPY_REF", "ll", 2, 1, [30, 5]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 19, [31, 24]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 18, [31, 24]], ["CAST_ANY", "ll", 3, 0, [31, 24]], ["COPY_REF", "ll", 4, 3, [31, 5]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 20, [32, 32]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 19, [32, 32]], ["COPY_REF", "ll", 5, 0, [32, 5]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 21, [33, 31]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 20, [33, 31]], ["CAST_ANY", "ll", 3, 0, [33, 31]], ["COPY_REF", "ll", 6, 3, [33, 5]], ["CALL", "scl", 3, 17, 0, [35, 5]], ["CALL", "sclpll", 0, 22, 0, 1, 2, 4, [36, 25]], ["CALL", "scl", 3, 16, 0, [35, 5]], ["CALL", "sclpll", 0, 21, 0, 1, 2, 4, [36, 25]], ["COPY_REF", "ll", 7, 0, [36, 5]], ["CALL", "scl", 3, 23, 0, [37, 29]], ["CALL", "scl", 3, 22, 0, [37, 29]], ["CAST_ANY", "ll", 3, 0, [37, 29]], ["COPY_REF", "ll", 8, 3, [37, 5]], ["SIZE_ARRAY", "ll", 9, 8, [39, 9]], Loading @@ -197,24 +196,24 @@ ["BRANCH", "lbb", 11, 3, 2, [39, 5]] ], [ ["SIZE_ARRAY", "ll", 9, 6, [45, 20]], ["COPY_VAL_INT", "lc", 14, 7, [45, 5]], ["LT_INT", "lll", 11, 14, 9, [45, 5]], ["BRANCH", "lbb", 11, 4, 5, [45, 5]] ["SIZE_ARRAY", "ll", 9, 6, [50, 20]], ["COPY_VAL_INT", "lc", 14, 7, [50, 5]], ["LT_INT", "lll", 11, 14, 9, [50, 5]], ["BRANCH", "lbb", 11, 4, 5, [50, 5]] ], [ ["SIZE_ARRAY", "ll", 9, 8, [41, 58]], ["CALL", "scll", 1, 24, 0, 9, [41, 39]], ["CALL", "scll", 1, 23, 0, 9, [41, 39]], ["CAST_ANY", "ll", 1, 0, [41, 39]], ["COPY_REF", "ll", 12, 1, [41, 9]], ["SIZE_ARRAY", "ll", 9, 6, [42, 61]], ["CALL", "scll", 1, 24, 0, 9, [42, 42]], ["CALL", "scll", 1, 23, 0, 9, [42, 42]], ["CAST_ANY", "ll", 1, 0, [42, 42]], ["COPY_REF", "ll", 13, 1, [42, 9]], ["ADD_STRING", "lcl", 1, 25, 12, [43, 16]], ["ADD_STRING", "llc", 1, 1, 26, [43, 16]], ["ADD_STRING", "lll", 1, 1, 13, [43, 16]], ["ADD_STRING", "llc", 1, 1, 27, [43, 16]], ["ADD_STRING", "lcl", 1, 24, 12, [44, 13]], ["ADD_STRING", "llc", 1, 1, 25, [44, 13]], ["ADD_STRING", "lll", 1, 1, 13, [44, 13]], ["ADD_STRING", "llc", 1, 1, 26, [44, 13]], ["COPY_REF", "pl", 0, 1, [43, 9]], ["RET", "", [43, 9]] ], Loading @@ -222,58 +221,58 @@ ["JUMP", "b", 1, [39, 5]] ], [ ["NE_ANY", "lll", 11, 7, 5, [60, 9]], ["BRANCH", "lbb", 11, 11, 10, [60, 5]] ["NE_ANY", "lll", 11, 7, 5, [65, 9]], ["BRANCH", "lbb", 11, 11, 10, [65, 5]] ], [ ["GET_ELEMENT_ARRAY", "lll", 0, 8, 14, [47, 12]], ["GET_ELEMENT_ARRAY", "lll", 16, 6, 14, [47, 29]], ["NE_ANY", "lll", 17, 0, 16, [47, 12]], ["BRANCH", "lbb", 17, 8, 7, [47, 9]] ["GET_ELEMENT_ARRAY", "lll", 0, 8, 14, [52, 12]], ["GET_ELEMENT_ARRAY", "lll", 16, 6, 14, [52, 29]], ["NE_ANY", "lll", 17, 0, 16, [52, 12]], ["BRANCH", "lbb", 17, 8, 7, [52, 9]] ], [ ["ADD_INT", "llc", 14, 14, 8, [45, 5]], ["LT_INT", "lll", 15, 14, 9, [45, 5]], ["BRANCH", "lbb", 15, 4, 5, [45, 5]] ["ADD_INT", "llc", 14, 14, 8, [50, 5]], ["LT_INT", "lll", 15, 14, 9, [50, 5]], ["BRANCH", "lbb", 15, 4, 5, [50, 5]] ], [ ["CALL", "scll", 1, 24, 18, 14, [49, 33]], ["CAST_ANY", "ll", 1, 18, [49, 33]], ["COPY_REF", "ll", 19, 1, [49, 13]], ["ADD_STRING", "lcl", 1, 28, 19, [51, 17]], ["ADD_STRING", "llc", 1, 1, 29, [51, 17]], ["GET_ELEMENT_ARRAY", "lll", 18, 8, 14, [54, 19]], ["ADD_ANY", "lll", 20, 1, 18, [51, 17]], ["ADD_ANY", "llc", 21, 20, 30, [51, 17]], ["GET_ELEMENT_ARRAY", "lll", 22, 6, 14, [56, 19]], ["ADD_ANY", "lll", 23, 21, 22, [51, 17]], ["ADD_ANY", "llc", 24, 23, 31, [51, 17]], ["CAST_ANY", "ll", 25, 24, [51, 17]], ["COPY_REF", "pl", 0, 25, [50, 13]], ["RET", "", [50, 13]] ["CALL", "scll", 1, 23, 18, 14, [54, 33]], ["CAST_ANY", "ll", 1, 18, [54, 33]], ["COPY_REF", "ll", 19, 1, [54, 13]], ["ADD_STRING", "lcl", 1, 27, 19, [56, 17]], ["ADD_STRING", "llc", 1, 1, 28, [56, 17]], ["GET_ELEMENT_ARRAY", "lll", 18, 8, 14, [59, 19]], ["ADD_ANY", "lll", 20, 1, 18, [56, 17]], ["ADD_ANY", "llc", 21, 20, 29, [56, 17]], ["GET_ELEMENT_ARRAY", "lll", 22, 6, 14, [61, 19]], ["ADD_ANY", "lll", 23, 21, 22, [56, 17]], ["ADD_ANY", "llc", 24, 23, 30, [56, 17]], ["CAST_ANY", "ll", 25, 24, [56, 17]], ["COPY_REF", "pl", 0, 25, [55, 13]], ["RET", "", [55, 13]] ], [ ["JUMP", "b", 6, [47, 9]] ["JUMP", "b", 6, [52, 9]] ], [ ["COPY_VAL_STRING", "pc", 0, 11, [66, 5]], ["RET", "", [66, 5]] ["COPY_VAL_STRING", "pc", 0, 11, [71, 5]], ["RET", "", [71, 5]] ], [ ["CALL", "scll", 1, 24, 0, 7, [62, 34]], ["CAST_ANY", "ll", 1, 0, [62, 34]], ["COPY_REF", "ll", 26, 1, [62, 9]], ["CALL", "scll", 1, 24, 0, 5, [63, 36]], ["CAST_ANY", "ll", 1, 0, [63, 36]], ["COPY_REF", "ll", 27, 1, [63, 9]], ["ADD_STRING", "lcl", 1, 32, 26, [64, 16]], ["ADD_STRING", "llc", 1, 1, 30, [64, 16]], ["ADD_STRING", "lll", 1, 1, 27, [64, 16]], ["COPY_REF", "pl", 0, 1, [64, 9]], ["RET", "", [64, 9]] ["CALL", "scll", 1, 23, 0, 7, [67, 34]], ["CAST_ANY", "ll", 1, 0, [67, 34]], ["COPY_REF", "ll", 26, 1, [67, 9]], ["CALL", "scll", 1, 23, 0, 5, [68, 36]], ["CAST_ANY", "ll", 1, 0, [68, 36]], ["COPY_REF", "ll", 27, 1, [68, 9]], ["ADD_STRING", "lcl", 1, 31, 26, [69, 16]], ["ADD_STRING", "llc", 1, 1, 29, [69, 16]], ["ADD_STRING", "lll", 1, 1, 27, [69, 16]], ["COPY_REF", "pl", 0, 1, [69, 9]], ["RET", "", [69, 9]] ], [ ["JUMP", "b", 9, [60, 5]] ["JUMP", "b", 9, [65, 5]] ] ] } Loading data/tests/scripts/bytecode/for.json +15 −20 Original line number Diff line number Diff line Loading @@ -30,8 +30,7 @@ "INT", "INT", "BOOL", "BOOL", "INT" "BOOL" ], "code": [ [ Loading @@ -45,8 +44,8 @@ ["RET", "", [8, 5]] ], [ ["ADD_INT", "llc", 4, 0, 1, [6, 19]], ["COPY_VAL_INT", "ll", 0, 4, [6, 9]], ["ADD_INT", "llc", 0, 0, 1, [6, 19]], ["COPY_VAL_INT", "ll", 0, 0, [6, 9]], ["ADD_INT", "llc", 1, 1, 1, [4, 5]], ["LE_INT", "llp", 3, 1, 1, [4, 5]], ["BRANCH", "lbb", 3, 1, 2, [4, 5]] Loading @@ -66,8 +65,7 @@ "INT", "INT", "BOOL", "BOOL", "INT" "BOOL" ], "code": [ [ Loading @@ -81,8 +79,8 @@ ["RET", "", [18, 5]] ], [ ["ADD_INT", "llc", 4, 0, 1, [16, 19]], ["COPY_VAL_INT", "ll", 0, 4, [16, 9]], ["ADD_INT", "llc", 0, 0, 1, [16, 19]], ["COPY_VAL_INT", "ll", 0, 0, [16, 9]], ["ADD_INT", "llp", 1, 1, 3, [14, 5]], ["LT_INT", "llp", 3, 1, 2, [14, 5]], ["BRANCH", "lbb", 3, 1, 2, [14, 5]] Loading @@ -104,8 +102,7 @@ "BOOL", "INT", "BOOL", "BOOL", "INT" "BOOL" ], "code": [ [ Loading @@ -129,8 +126,8 @@ ["BRANCH", "lbb", 3, 1, 2, [24, 5]] ], [ ["ADD_INT", "llc", 7, 0, 1, [28, 23]], ["COPY_VAL_INT", "ll", 0, 7, [28, 13]], ["ADD_INT", "llc", 0, 0, 1, [28, 23]], ["COPY_VAL_INT", "ll", 0, 0, [28, 13]], ["ADD_INT", "llc", 4, 4, 1, [26, 9]], ["LE_INT", "llp", 6, 4, 2, [26, 9]], ["BRANCH", "lbb", 6, 3, 4, [26, 9]] Loading @@ -154,8 +151,7 @@ "BOOL", "INT", "BOOL", "BOOL", "INT" "BOOL" ], "code": [ [ Loading Loading @@ -193,8 +189,8 @@ ["BRANCH", "lbb", 7, 10, 9, [45, 13]] ], [ ["ADD_INT", "llc", 8, 0, 1, [49, 23]], ["COPY_VAL_INT", "ll", 0, 8, [49, 13]], ["ADD_INT", "llc", 0, 0, 1, [49, 23]], ["COPY_VAL_INT", "ll", 0, 0, [49, 13]], ["ADD_INT", "llc", 5, 5, 1, [43, 9]], ["LE_INT", "llp", 6, 5, 3, [43, 9]], ["BRANCH", "lbb", 6, 6, 7, [43, 9]] Loading Loading @@ -224,8 +220,7 @@ "BOOL", "INT", "BOOL", "BOOL", "INT" "BOOL" ], "code": [ [ Loading Loading @@ -265,8 +260,8 @@ ["BRANCH", "lbb", 7, 10, 9, [66, 13]] ], [ ["ADD_INT", "llc", 8, 0, 1, [70, 23]], ["COPY_VAL_INT", "ll", 0, 8, [70, 13]], ["ADD_INT", "llc", 0, 0, 1, [70, 23]], ["COPY_VAL_INT", "ll", 0, 0, [70, 13]], ["ADD_INT", "llc", 5, 5, 1, [64, 9]], ["LE_INT", "llp", 6, 5, 3, [64, 9]], ["BRANCH", "lbb", 6, 6, 7, [64, 9]] Loading data/tests/scripts/bytecode/while.json +43 −49 Original line number Diff line number Diff line Loading @@ -27,8 +27,6 @@ ], "returns": true, "locals": [ "INT", "BOOL", "INT", "BOOL" ], Loading @@ -43,10 +41,10 @@ ["RET", "", [8, 5]] ], [ ["ADD_INT", "llc", 2, 0, 1, [6, 14]], ["COPY_VAL_INT", "ll", 0, 2, [6, 9]], ["LE_INT", "llp", 3, 0, 1, [4, 11]], ["BRANCH", "lbb", 3, 1, 2, [4, 5]] ["ADD_INT", "llc", 0, 0, 1, [6, 14]], ["COPY_VAL_INT", "ll", 0, 0, [6, 9]], ["LE_INT", "llp", 1, 0, 1, [4, 11]], ["BRANCH", "lbb", 1, 1, 2, [4, 5]] ] ] }, Loading @@ -63,8 +61,6 @@ "INT", "BOOL", "INT", "BOOL", "INT", "BOOL" ], "code": [ Loading @@ -84,18 +80,18 @@ ["BRANCH", "lbb", 4, 3, 4, [18, 9]] ], [ ["ADD_INT", "llc", 5, 1, 1, [23, 14]], ["COPY_VAL_INT", "ll", 1, 5, [23, 9]], ["LE_INT", "llp", 4, 1, 1, [15, 11]], ["BRANCH", "lbb", 4, 1, 2, [15, 5]] ["ADD_INT", "llc", 1, 1, 1, [23, 14]], ["COPY_VAL_INT", "ll", 1, 1, [23, 9]], ["LE_INT", "llp", 2, 1, 1, [15, 11]], ["BRANCH", "lbb", 2, 1, 2, [15, 5]] ], [ ["ADD_INT", "llc", 5, 3, 1, [20, 18]], ["COPY_VAL_INT", "ll", 3, 5, [20, 13]], ["ADD_INT", "llc", 5, 0, 1, [21, 23]], ["COPY_VAL_INT", "ll", 0, 5, [21, 13]], ["LE_INT", "llp", 6, 3, 2, [18, 15]], ["BRANCH", "lbb", 6, 3, 4, [18, 9]] ["ADD_INT", "llc", 3, 3, 1, [20, 18]], ["COPY_VAL_INT", "ll", 3, 3, [20, 13]], ["ADD_INT", "llc", 0, 0, 1, [21, 23]], ["COPY_VAL_INT", "ll", 0, 0, [21, 13]], ["LE_INT", "llp", 4, 3, 2, [18, 15]], ["BRANCH", "lbb", 4, 3, 4, [18, 9]] ] ] }, Loading @@ -114,8 +110,7 @@ "BOOL", "BOOL", "INT", "BOOL", "INT" "BOOL" ], "code": [ [ Loading Loading @@ -144,22 +139,22 @@ ["JUMP", "b", 3, [34, 9]] ], [ ["ADD_INT", "llc", 6, 1, 1, [48, 14]], ["COPY_VAL_INT", "ll", 1, 6, [48, 9]], ["LE_INT", "llp", 3, 1, 2, [32, 11]], ["BRANCH", "lbb", 3, 1, 2, [32, 5]] ["ADD_INT", "llc", 1, 1, 1, [48, 14]], ["COPY_VAL_INT", "ll", 1, 1, [48, 9]], ["LE_INT", "llp", 2, 1, 2, [32, 11]], ["BRANCH", "lbb", 2, 1, 2, [32, 5]] ], [ ["EQ_INT", "llp", 5, 4, 1, [41, 16]], ["BRANCH", "lbb", 5, 10, 9, [41, 13]] ], [ ["ADD_INT", "llc", 6, 0, 1, [45, 23]], ["COPY_VAL_INT", "ll", 0, 6, [45, 13]], ["ADD_INT", "llc", 6, 4, 1, [46, 18]], ["COPY_VAL_INT", "ll", 4, 6, [46, 13]], ["LE_INT", "llp", 5, 4, 3, [39, 15]], ["BRANCH", "lbb", 5, 6, 7, [39, 9]] ["ADD_INT", "llc", 0, 0, 1, [45, 23]], ["COPY_VAL_INT", "ll", 0, 0, [45, 13]], ["ADD_INT", "llc", 4, 4, 1, [46, 18]], ["COPY_VAL_INT", "ll", 4, 4, [46, 13]], ["LE_INT", "llp", 3, 4, 3, [39, 15]], ["BRANCH", "lbb", 3, 6, 7, [39, 9]] ], [ ["JUMP", "b", 6, [43, 17]] Loading @@ -184,7 +179,6 @@ "BOOL", "BOOL", "INT", "INT", "BOOL" ], "code": [ Loading @@ -203,39 +197,39 @@ ["BRANCH", "lbb", 3, 5, 4, [59, 9]] ], [ ["COPY_VAL_INT", "lc", 5, 0, [64, 9]], ["LE_INT", "llp", 3, 5, 3, [65, 15]], ["COPY_VAL_INT", "lc", 4, 0, [64, 9]], ["LE_INT", "llp", 3, 4, 3, [65, 15]], ["BRANCH", "lbb", 3, 6, 7, [65, 9]] ], [ ["ADD_INT", "llc", 4, 1, 1, [61, 18]], ["COPY_VAL_INT", "ll", 1, 4, [61, 13]], ["ADD_INT", "llc", 1, 1, 1, [61, 18]], ["COPY_VAL_INT", "ll", 1, 1, [61, 13]], ["BRANCH", "lbb", 2, 1, 2, [57, 5]] ], [ ["JUMP", "b", 3, [59, 9]] ], [ ["ADD_INT", "llc", 4, 1, 1, [75, 14]], ["COPY_VAL_INT", "ll", 1, 4, [75, 9]], ["LE_INT", "llp", 3, 1, 2, [57, 11]], ["BRANCH", "lbb", 3, 1, 2, [57, 5]] ["ADD_INT", "llc", 1, 1, 1, [75, 14]], ["COPY_VAL_INT", "ll", 1, 1, [75, 9]], ["LE_INT", "llp", 2, 1, 2, [57, 11]], ["BRANCH", "lbb", 2, 1, 2, [57, 5]] ], [ ["EQ_INT", "llp", 6, 5, 1, [67, 16]], ["BRANCH", "lbb", 6, 10, 9, [67, 13]] ["EQ_INT", "llp", 5, 4, 1, [67, 16]], ["BRANCH", "lbb", 5, 10, 9, [67, 13]] ], [ ["ADD_INT", "llc", 4, 0, 1, [72, 23]], ["COPY_VAL_INT", "ll", 0, 4, [72, 13]], ["ADD_INT", "llc", 4, 5, 1, [73, 18]], ["COPY_VAL_INT", "ll", 5, 4, [73, 13]], ["LE_INT", "llp", 6, 5, 3, [65, 15]], ["BRANCH", "lbb", 6, 6, 7, [65, 9]] ["ADD_INT", "llc", 0, 0, 1, [72, 23]], ["COPY_VAL_INT", "ll", 0, 0, [72, 13]], ["ADD_INT", "llc", 4, 4, 1, [73, 18]], ["COPY_VAL_INT", "ll", 4, 4, [73, 13]], ["LE_INT", "llp", 3, 4, 3, [65, 15]], ["BRANCH", "lbb", 3, 6, 7, [65, 9]] ], [ ["ADD_INT", "llc", 4, 5, 1, [69, 22]], ["COPY_VAL_INT", "ll", 5, 4, [69, 17]], ["ADD_INT", "llc", 4, 4, 1, [69, 22]], ["COPY_VAL_INT", "ll", 4, 4, [69, 17]], ["BRANCH", "lbb", 3, 6, 7, [65, 9]] ], [ Loading Loading
data/tests/scripts/bytecode/__test.json +58 −59 Original line number Diff line number Diff line Loading @@ -15,7 +15,6 @@ ["STRING", "FAILED"], ["STRING", "set_script_state"], ["STRING", "set_script_msg"], ["BOOL", false], ["STRING", "PASSED"], ["STRING", "clear"], ["STRING", "function"], Loading Loading @@ -101,7 +100,7 @@ ["BRANCH", "lbb", 5, 1, 2, [9, 5]] ], [ ["CALL", "scl", 3, 17, 7, [24, 5]], ["CALL", "scl", 3, 16, 7, [24, 5]], ["COPY_VAL_BOOL", "pl", 0, 0, [25, 5]], ["RET", "", [25, 5]] ], Loading @@ -125,11 +124,11 @@ [ ["CALL", "sclplc", 2, 13, 7, 2, 4, 12, [15, 13]], ["CALL", "sclpll", 2, 14, 7, 2, 4, 12, [16, 13]], ["COPY_VAL_BOOL", "lc", 0, 15, [17, 13]], ["COPY_VAL_BOOL", "ll", 0, 0, [17, 13]], ["JUMP", "b", 3, [17, 13]] ], [ ["CALL", "sclplc", 2, 13, 7, 2, 4, 16, [21, 13]], ["CALL", "sclplc", 2, 13, 7, 2, 4, 15, [21, 13]], ["JUMP", "b", 3, [21, 13]] ] ] Loading Loading @@ -174,21 +173,21 @@ ], "code": [ [ ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 18, [30, 23]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 17, [30, 23]], ["CAST_ANY", "ll", 1, 0, [30, 23]], ["COPY_REF", "ll", 2, 1, [30, 5]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 19, [31, 24]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 18, [31, 24]], ["CAST_ANY", "ll", 3, 0, [31, 24]], ["COPY_REF", "ll", 4, 3, [31, 5]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 20, [32, 32]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 19, [32, 32]], ["COPY_REF", "ll", 5, 0, [32, 5]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 21, [33, 31]], ["GET_ELEMENT_OBJECT", "lpc", 0, 2, 20, [33, 31]], ["CAST_ANY", "ll", 3, 0, [33, 31]], ["COPY_REF", "ll", 6, 3, [33, 5]], ["CALL", "scl", 3, 17, 0, [35, 5]], ["CALL", "sclpll", 0, 22, 0, 1, 2, 4, [36, 25]], ["CALL", "scl", 3, 16, 0, [35, 5]], ["CALL", "sclpll", 0, 21, 0, 1, 2, 4, [36, 25]], ["COPY_REF", "ll", 7, 0, [36, 5]], ["CALL", "scl", 3, 23, 0, [37, 29]], ["CALL", "scl", 3, 22, 0, [37, 29]], ["CAST_ANY", "ll", 3, 0, [37, 29]], ["COPY_REF", "ll", 8, 3, [37, 5]], ["SIZE_ARRAY", "ll", 9, 8, [39, 9]], Loading @@ -197,24 +196,24 @@ ["BRANCH", "lbb", 11, 3, 2, [39, 5]] ], [ ["SIZE_ARRAY", "ll", 9, 6, [45, 20]], ["COPY_VAL_INT", "lc", 14, 7, [45, 5]], ["LT_INT", "lll", 11, 14, 9, [45, 5]], ["BRANCH", "lbb", 11, 4, 5, [45, 5]] ["SIZE_ARRAY", "ll", 9, 6, [50, 20]], ["COPY_VAL_INT", "lc", 14, 7, [50, 5]], ["LT_INT", "lll", 11, 14, 9, [50, 5]], ["BRANCH", "lbb", 11, 4, 5, [50, 5]] ], [ ["SIZE_ARRAY", "ll", 9, 8, [41, 58]], ["CALL", "scll", 1, 24, 0, 9, [41, 39]], ["CALL", "scll", 1, 23, 0, 9, [41, 39]], ["CAST_ANY", "ll", 1, 0, [41, 39]], ["COPY_REF", "ll", 12, 1, [41, 9]], ["SIZE_ARRAY", "ll", 9, 6, [42, 61]], ["CALL", "scll", 1, 24, 0, 9, [42, 42]], ["CALL", "scll", 1, 23, 0, 9, [42, 42]], ["CAST_ANY", "ll", 1, 0, [42, 42]], ["COPY_REF", "ll", 13, 1, [42, 9]], ["ADD_STRING", "lcl", 1, 25, 12, [43, 16]], ["ADD_STRING", "llc", 1, 1, 26, [43, 16]], ["ADD_STRING", "lll", 1, 1, 13, [43, 16]], ["ADD_STRING", "llc", 1, 1, 27, [43, 16]], ["ADD_STRING", "lcl", 1, 24, 12, [44, 13]], ["ADD_STRING", "llc", 1, 1, 25, [44, 13]], ["ADD_STRING", "lll", 1, 1, 13, [44, 13]], ["ADD_STRING", "llc", 1, 1, 26, [44, 13]], ["COPY_REF", "pl", 0, 1, [43, 9]], ["RET", "", [43, 9]] ], Loading @@ -222,58 +221,58 @@ ["JUMP", "b", 1, [39, 5]] ], [ ["NE_ANY", "lll", 11, 7, 5, [60, 9]], ["BRANCH", "lbb", 11, 11, 10, [60, 5]] ["NE_ANY", "lll", 11, 7, 5, [65, 9]], ["BRANCH", "lbb", 11, 11, 10, [65, 5]] ], [ ["GET_ELEMENT_ARRAY", "lll", 0, 8, 14, [47, 12]], ["GET_ELEMENT_ARRAY", "lll", 16, 6, 14, [47, 29]], ["NE_ANY", "lll", 17, 0, 16, [47, 12]], ["BRANCH", "lbb", 17, 8, 7, [47, 9]] ["GET_ELEMENT_ARRAY", "lll", 0, 8, 14, [52, 12]], ["GET_ELEMENT_ARRAY", "lll", 16, 6, 14, [52, 29]], ["NE_ANY", "lll", 17, 0, 16, [52, 12]], ["BRANCH", "lbb", 17, 8, 7, [52, 9]] ], [ ["ADD_INT", "llc", 14, 14, 8, [45, 5]], ["LT_INT", "lll", 15, 14, 9, [45, 5]], ["BRANCH", "lbb", 15, 4, 5, [45, 5]] ["ADD_INT", "llc", 14, 14, 8, [50, 5]], ["LT_INT", "lll", 15, 14, 9, [50, 5]], ["BRANCH", "lbb", 15, 4, 5, [50, 5]] ], [ ["CALL", "scll", 1, 24, 18, 14, [49, 33]], ["CAST_ANY", "ll", 1, 18, [49, 33]], ["COPY_REF", "ll", 19, 1, [49, 13]], ["ADD_STRING", "lcl", 1, 28, 19, [51, 17]], ["ADD_STRING", "llc", 1, 1, 29, [51, 17]], ["GET_ELEMENT_ARRAY", "lll", 18, 8, 14, [54, 19]], ["ADD_ANY", "lll", 20, 1, 18, [51, 17]], ["ADD_ANY", "llc", 21, 20, 30, [51, 17]], ["GET_ELEMENT_ARRAY", "lll", 22, 6, 14, [56, 19]], ["ADD_ANY", "lll", 23, 21, 22, [51, 17]], ["ADD_ANY", "llc", 24, 23, 31, [51, 17]], ["CAST_ANY", "ll", 25, 24, [51, 17]], ["COPY_REF", "pl", 0, 25, [50, 13]], ["RET", "", [50, 13]] ["CALL", "scll", 1, 23, 18, 14, [54, 33]], ["CAST_ANY", "ll", 1, 18, [54, 33]], ["COPY_REF", "ll", 19, 1, [54, 13]], ["ADD_STRING", "lcl", 1, 27, 19, [56, 17]], ["ADD_STRING", "llc", 1, 1, 28, [56, 17]], ["GET_ELEMENT_ARRAY", "lll", 18, 8, 14, [59, 19]], ["ADD_ANY", "lll", 20, 1, 18, [56, 17]], ["ADD_ANY", "llc", 21, 20, 29, [56, 17]], ["GET_ELEMENT_ARRAY", "lll", 22, 6, 14, [61, 19]], ["ADD_ANY", "lll", 23, 21, 22, [56, 17]], ["ADD_ANY", "llc", 24, 23, 30, [56, 17]], ["CAST_ANY", "ll", 25, 24, [56, 17]], ["COPY_REF", "pl", 0, 25, [55, 13]], ["RET", "", [55, 13]] ], [ ["JUMP", "b", 6, [47, 9]] ["JUMP", "b", 6, [52, 9]] ], [ ["COPY_VAL_STRING", "pc", 0, 11, [66, 5]], ["RET", "", [66, 5]] ["COPY_VAL_STRING", "pc", 0, 11, [71, 5]], ["RET", "", [71, 5]] ], [ ["CALL", "scll", 1, 24, 0, 7, [62, 34]], ["CAST_ANY", "ll", 1, 0, [62, 34]], ["COPY_REF", "ll", 26, 1, [62, 9]], ["CALL", "scll", 1, 24, 0, 5, [63, 36]], ["CAST_ANY", "ll", 1, 0, [63, 36]], ["COPY_REF", "ll", 27, 1, [63, 9]], ["ADD_STRING", "lcl", 1, 32, 26, [64, 16]], ["ADD_STRING", "llc", 1, 1, 30, [64, 16]], ["ADD_STRING", "lll", 1, 1, 27, [64, 16]], ["COPY_REF", "pl", 0, 1, [64, 9]], ["RET", "", [64, 9]] ["CALL", "scll", 1, 23, 0, 7, [67, 34]], ["CAST_ANY", "ll", 1, 0, [67, 34]], ["COPY_REF", "ll", 26, 1, [67, 9]], ["CALL", "scll", 1, 23, 0, 5, [68, 36]], ["CAST_ANY", "ll", 1, 0, [68, 36]], ["COPY_REF", "ll", 27, 1, [68, 9]], ["ADD_STRING", "lcl", 1, 31, 26, [69, 16]], ["ADD_STRING", "llc", 1, 1, 29, [69, 16]], ["ADD_STRING", "lll", 1, 1, 27, [69, 16]], ["COPY_REF", "pl", 0, 1, [69, 9]], ["RET", "", [69, 9]] ], [ ["JUMP", "b", 9, [60, 5]] ["JUMP", "b", 9, [65, 5]] ] ] } Loading
data/tests/scripts/bytecode/for.json +15 −20 Original line number Diff line number Diff line Loading @@ -30,8 +30,7 @@ "INT", "INT", "BOOL", "BOOL", "INT" "BOOL" ], "code": [ [ Loading @@ -45,8 +44,8 @@ ["RET", "", [8, 5]] ], [ ["ADD_INT", "llc", 4, 0, 1, [6, 19]], ["COPY_VAL_INT", "ll", 0, 4, [6, 9]], ["ADD_INT", "llc", 0, 0, 1, [6, 19]], ["COPY_VAL_INT", "ll", 0, 0, [6, 9]], ["ADD_INT", "llc", 1, 1, 1, [4, 5]], ["LE_INT", "llp", 3, 1, 1, [4, 5]], ["BRANCH", "lbb", 3, 1, 2, [4, 5]] Loading @@ -66,8 +65,7 @@ "INT", "INT", "BOOL", "BOOL", "INT" "BOOL" ], "code": [ [ Loading @@ -81,8 +79,8 @@ ["RET", "", [18, 5]] ], [ ["ADD_INT", "llc", 4, 0, 1, [16, 19]], ["COPY_VAL_INT", "ll", 0, 4, [16, 9]], ["ADD_INT", "llc", 0, 0, 1, [16, 19]], ["COPY_VAL_INT", "ll", 0, 0, [16, 9]], ["ADD_INT", "llp", 1, 1, 3, [14, 5]], ["LT_INT", "llp", 3, 1, 2, [14, 5]], ["BRANCH", "lbb", 3, 1, 2, [14, 5]] Loading @@ -104,8 +102,7 @@ "BOOL", "INT", "BOOL", "BOOL", "INT" "BOOL" ], "code": [ [ Loading @@ -129,8 +126,8 @@ ["BRANCH", "lbb", 3, 1, 2, [24, 5]] ], [ ["ADD_INT", "llc", 7, 0, 1, [28, 23]], ["COPY_VAL_INT", "ll", 0, 7, [28, 13]], ["ADD_INT", "llc", 0, 0, 1, [28, 23]], ["COPY_VAL_INT", "ll", 0, 0, [28, 13]], ["ADD_INT", "llc", 4, 4, 1, [26, 9]], ["LE_INT", "llp", 6, 4, 2, [26, 9]], ["BRANCH", "lbb", 6, 3, 4, [26, 9]] Loading @@ -154,8 +151,7 @@ "BOOL", "INT", "BOOL", "BOOL", "INT" "BOOL" ], "code": [ [ Loading Loading @@ -193,8 +189,8 @@ ["BRANCH", "lbb", 7, 10, 9, [45, 13]] ], [ ["ADD_INT", "llc", 8, 0, 1, [49, 23]], ["COPY_VAL_INT", "ll", 0, 8, [49, 13]], ["ADD_INT", "llc", 0, 0, 1, [49, 23]], ["COPY_VAL_INT", "ll", 0, 0, [49, 13]], ["ADD_INT", "llc", 5, 5, 1, [43, 9]], ["LE_INT", "llp", 6, 5, 3, [43, 9]], ["BRANCH", "lbb", 6, 6, 7, [43, 9]] Loading Loading @@ -224,8 +220,7 @@ "BOOL", "INT", "BOOL", "BOOL", "INT" "BOOL" ], "code": [ [ Loading Loading @@ -265,8 +260,8 @@ ["BRANCH", "lbb", 7, 10, 9, [66, 13]] ], [ ["ADD_INT", "llc", 8, 0, 1, [70, 23]], ["COPY_VAL_INT", "ll", 0, 8, [70, 13]], ["ADD_INT", "llc", 0, 0, 1, [70, 23]], ["COPY_VAL_INT", "ll", 0, 0, [70, 13]], ["ADD_INT", "llc", 5, 5, 1, [64, 9]], ["LE_INT", "llp", 6, 5, 3, [64, 9]], ["BRANCH", "lbb", 6, 6, 7, [64, 9]] Loading
data/tests/scripts/bytecode/while.json +43 −49 Original line number Diff line number Diff line Loading @@ -27,8 +27,6 @@ ], "returns": true, "locals": [ "INT", "BOOL", "INT", "BOOL" ], Loading @@ -43,10 +41,10 @@ ["RET", "", [8, 5]] ], [ ["ADD_INT", "llc", 2, 0, 1, [6, 14]], ["COPY_VAL_INT", "ll", 0, 2, [6, 9]], ["LE_INT", "llp", 3, 0, 1, [4, 11]], ["BRANCH", "lbb", 3, 1, 2, [4, 5]] ["ADD_INT", "llc", 0, 0, 1, [6, 14]], ["COPY_VAL_INT", "ll", 0, 0, [6, 9]], ["LE_INT", "llp", 1, 0, 1, [4, 11]], ["BRANCH", "lbb", 1, 1, 2, [4, 5]] ] ] }, Loading @@ -63,8 +61,6 @@ "INT", "BOOL", "INT", "BOOL", "INT", "BOOL" ], "code": [ Loading @@ -84,18 +80,18 @@ ["BRANCH", "lbb", 4, 3, 4, [18, 9]] ], [ ["ADD_INT", "llc", 5, 1, 1, [23, 14]], ["COPY_VAL_INT", "ll", 1, 5, [23, 9]], ["LE_INT", "llp", 4, 1, 1, [15, 11]], ["BRANCH", "lbb", 4, 1, 2, [15, 5]] ["ADD_INT", "llc", 1, 1, 1, [23, 14]], ["COPY_VAL_INT", "ll", 1, 1, [23, 9]], ["LE_INT", "llp", 2, 1, 1, [15, 11]], ["BRANCH", "lbb", 2, 1, 2, [15, 5]] ], [ ["ADD_INT", "llc", 5, 3, 1, [20, 18]], ["COPY_VAL_INT", "ll", 3, 5, [20, 13]], ["ADD_INT", "llc", 5, 0, 1, [21, 23]], ["COPY_VAL_INT", "ll", 0, 5, [21, 13]], ["LE_INT", "llp", 6, 3, 2, [18, 15]], ["BRANCH", "lbb", 6, 3, 4, [18, 9]] ["ADD_INT", "llc", 3, 3, 1, [20, 18]], ["COPY_VAL_INT", "ll", 3, 3, [20, 13]], ["ADD_INT", "llc", 0, 0, 1, [21, 23]], ["COPY_VAL_INT", "ll", 0, 0, [21, 13]], ["LE_INT", "llp", 4, 3, 2, [18, 15]], ["BRANCH", "lbb", 4, 3, 4, [18, 9]] ] ] }, Loading @@ -114,8 +110,7 @@ "BOOL", "BOOL", "INT", "BOOL", "INT" "BOOL" ], "code": [ [ Loading Loading @@ -144,22 +139,22 @@ ["JUMP", "b", 3, [34, 9]] ], [ ["ADD_INT", "llc", 6, 1, 1, [48, 14]], ["COPY_VAL_INT", "ll", 1, 6, [48, 9]], ["LE_INT", "llp", 3, 1, 2, [32, 11]], ["BRANCH", "lbb", 3, 1, 2, [32, 5]] ["ADD_INT", "llc", 1, 1, 1, [48, 14]], ["COPY_VAL_INT", "ll", 1, 1, [48, 9]], ["LE_INT", "llp", 2, 1, 2, [32, 11]], ["BRANCH", "lbb", 2, 1, 2, [32, 5]] ], [ ["EQ_INT", "llp", 5, 4, 1, [41, 16]], ["BRANCH", "lbb", 5, 10, 9, [41, 13]] ], [ ["ADD_INT", "llc", 6, 0, 1, [45, 23]], ["COPY_VAL_INT", "ll", 0, 6, [45, 13]], ["ADD_INT", "llc", 6, 4, 1, [46, 18]], ["COPY_VAL_INT", "ll", 4, 6, [46, 13]], ["LE_INT", "llp", 5, 4, 3, [39, 15]], ["BRANCH", "lbb", 5, 6, 7, [39, 9]] ["ADD_INT", "llc", 0, 0, 1, [45, 23]], ["COPY_VAL_INT", "ll", 0, 0, [45, 13]], ["ADD_INT", "llc", 4, 4, 1, [46, 18]], ["COPY_VAL_INT", "ll", 4, 4, [46, 13]], ["LE_INT", "llp", 3, 4, 3, [39, 15]], ["BRANCH", "lbb", 3, 6, 7, [39, 9]] ], [ ["JUMP", "b", 6, [43, 17]] Loading @@ -184,7 +179,6 @@ "BOOL", "BOOL", "INT", "INT", "BOOL" ], "code": [ Loading @@ -203,39 +197,39 @@ ["BRANCH", "lbb", 3, 5, 4, [59, 9]] ], [ ["COPY_VAL_INT", "lc", 5, 0, [64, 9]], ["LE_INT", "llp", 3, 5, 3, [65, 15]], ["COPY_VAL_INT", "lc", 4, 0, [64, 9]], ["LE_INT", "llp", 3, 4, 3, [65, 15]], ["BRANCH", "lbb", 3, 6, 7, [65, 9]] ], [ ["ADD_INT", "llc", 4, 1, 1, [61, 18]], ["COPY_VAL_INT", "ll", 1, 4, [61, 13]], ["ADD_INT", "llc", 1, 1, 1, [61, 18]], ["COPY_VAL_INT", "ll", 1, 1, [61, 13]], ["BRANCH", "lbb", 2, 1, 2, [57, 5]] ], [ ["JUMP", "b", 3, [59, 9]] ], [ ["ADD_INT", "llc", 4, 1, 1, [75, 14]], ["COPY_VAL_INT", "ll", 1, 4, [75, 9]], ["LE_INT", "llp", 3, 1, 2, [57, 11]], ["BRANCH", "lbb", 3, 1, 2, [57, 5]] ["ADD_INT", "llc", 1, 1, 1, [75, 14]], ["COPY_VAL_INT", "ll", 1, 1, [75, 9]], ["LE_INT", "llp", 2, 1, 2, [57, 11]], ["BRANCH", "lbb", 2, 1, 2, [57, 5]] ], [ ["EQ_INT", "llp", 6, 5, 1, [67, 16]], ["BRANCH", "lbb", 6, 10, 9, [67, 13]] ["EQ_INT", "llp", 5, 4, 1, [67, 16]], ["BRANCH", "lbb", 5, 10, 9, [67, 13]] ], [ ["ADD_INT", "llc", 4, 0, 1, [72, 23]], ["COPY_VAL_INT", "ll", 0, 4, [72, 13]], ["ADD_INT", "llc", 4, 5, 1, [73, 18]], ["COPY_VAL_INT", "ll", 5, 4, [73, 13]], ["LE_INT", "llp", 6, 5, 3, [65, 15]], ["BRANCH", "lbb", 6, 6, 7, [65, 9]] ["ADD_INT", "llc", 0, 0, 1, [72, 23]], ["COPY_VAL_INT", "ll", 0, 0, [72, 13]], ["ADD_INT", "llc", 4, 4, 1, [73, 18]], ["COPY_VAL_INT", "ll", 4, 4, [73, 13]], ["LE_INT", "llp", 3, 4, 3, [65, 15]], ["BRANCH", "lbb", 3, 6, 7, [65, 9]] ], [ ["ADD_INT", "llc", 4, 5, 1, [69, 22]], ["COPY_VAL_INT", "ll", 5, 4, [69, 17]], ["ADD_INT", "llc", 4, 4, 1, [69, 22]], ["COPY_VAL_INT", "ll", 4, 4, [69, 17]], ["BRANCH", "lbb", 3, 6, 7, [65, 9]] ], [ Loading