diff --git a/lib/src/compiler/ir/tests/testdata/1.no-folding.ir b/lib/src/compiler/ir/tests/testdata/1.no-folding.ir index 8daea6c2..7540de2a 100644 --- a/lib/src/compiler/ir/tests/testdata/1.no-folding.ir +++ b/lib/src/compiler/ir/tests/testdata/1.no-folding.ir @@ -1,102 +1,102 @@ RULE test_1 - 12: EQ -- hash: 0x65918958e229b41b -- parent: None - 10: SUB -- hash: 0xbb5b2d3c003a978d -- parent: 12 - 8: ADD -- hash: 0x32e284abcc26d05b -- parent: 10 + 12: EQ -- hash: 0x646256388a6d06d9 -- parent: None + 10: SUB -- hash: 0xd6cb4f000ea5e36e -- parent: 12 + 8: ADD -- hash: 0xb8a12af309b416cc -- parent: 10 6: CONST integer(1) -- parent: 8 7: CONST integer(1) -- parent: 8 9: CONST integer(1) -- parent: 10 11: CONST integer(1) -- parent: 12 RULE test_2 - 20: EQ -- hash: 0x435e2bc40faf0997 -- parent: None - 18: SUB -- hash: 0xcbbf8e838c34d7e1 -- parent: 20 - 14: ADD -- hash: 0x736c700ea5e3e841 -- parent: 18 - 12: FIELD_ACCESS -- hash: 0x33962d7e5c60ec68 -- parent: 14 + 20: EQ -- hash: 0xd78af103ebc265d0 -- parent: None + 18: SUB -- hash: 0xefe3a0e30d35f872 -- parent: 20 + 14: ADD -- hash: 0xdb1c03a978fa105c -- parent: 18 + 12: FIELD_ACCESS -- hash: 0xe58b5f97183b1a0c -- parent: 14 10: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 12 11: SYMBOL Field { index: 13, is_root: false, type_value: integer(unknown), acl: None } -- parent: 12 13: CONST integer(1) -- parent: 14 - 17: FIELD_ACCESS -- hash: 0x33962d7e5c60ec68 -- parent: 18 + 17: FIELD_ACCESS -- hash: 0xe58b5f97183b1a0c -- parent: 18 15: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 17 16: SYMBOL Field { index: 13, is_root: false, type_value: integer(unknown), acl: None } -- parent: 17 19: CONST integer(1) -- parent: 20 RULE test_3 - 6: GT -- hash: 0x931bcdb2c7afb608 -- parent: None - 4: DIV -- hash: 0xf2b3602767487d08 -- parent: 6 - 2: MUL -- hash: 0x23a380280d1b4f32 -- parent: 4 + 6: GT -- hash: 0xc6f36cb1ebed8224 -- parent: None + 4: DIV -- hash: 0xacd809d9d21f423c -- parent: 6 + 2: MUL -- hash: 0xe8e00a0346d3cc88 -- parent: 4 0: CONST integer(1) -- parent: 2 1: CONST integer(2) -- parent: 2 3: CONST integer(1) -- parent: 4 5: CONST integer(1) -- parent: 6 RULE test_4 - 6: LE -- hash: 0x63b2e857a1254c2b -- parent: None - 4: SHR -- hash: 0x8dd6307742aa2311 -- parent: 6 - 2: SHL -- hash: 0x48eeb57428a0dbf0 -- parent: 4 + 6: LE -- hash: 0xecba15e849530ad8 -- parent: None + 4: SHR -- hash: 0x758c1dd0aa88c463 -- parent: 6 + 2: SHL -- hash: 0x3bad5d0a2836fc12 -- parent: 4 0: CONST integer(1) -- parent: 2 1: CONST integer(2) -- parent: 2 3: CONST integer(1) -- parent: 4 5: CONST integer(2) -- parent: 6 RULE test_5 - 14: EQ -- hash: 0x2240111cff945ff5 -- parent: None - 12: SUB -- hash: 0xa076dada583953db -- parent: 14 + 14: EQ -- hash: 0x9004473fe517fd48 -- parent: None + 12: SUB -- hash: 0x1db6b6960e54f6e8 -- parent: 14 7: CONST integer(4) -- parent: 12 - 11: MUL -- hash: 0xd1635797e1f50589 -- parent: 12 - 9: MINUS -- hash: 0xb5577ca94105cb4b -- parent: 11 + 11: MUL -- hash: 0x58d5e5f87d416274 -- parent: 12 + 9: MINUS -- hash: 0x55df2a504172d2ed -- parent: 11 8: CONST integer(2) -- parent: 9 10: CONST integer(2) -- parent: 11 13: CONST integer(8) -- parent: 14 RULE test_6 - 18: EQ -- hash: 0xea1ddf3adc653142 -- parent: None - 11: BITWISE_XOR -- hash: 0xdd299ba912958ce8 -- parent: 18 + 18: EQ -- hash: 0x8777ceb7194c50ba -- parent: None + 11: BITWISE_XOR -- hash: 0x4a66ea44a5633a37 -- parent: 18 9: CONST integer(2) -- parent: 11 10: CONST integer(1) -- parent: 11 - 17: BITWISE_OR -- hash: 0xda5a8a244bcb673d -- parent: 18 - 15: BITWISE_AND -- hash: 0x22082a7fc27dabe1 -- parent: 17 - 13: BITWISE_NOT -- hash: 0x44d8a0dd009c8a5c -- parent: 15 + 17: BITWISE_OR -- hash: 0x96a28912f2d9cf76 -- parent: 18 + 15: BITWISE_AND -- hash: 0x820a9ff09f6af848 -- parent: 17 + 13: BITWISE_NOT -- hash: 0x3628374027229711 -- parent: 15 12: CONST integer(1) -- parent: 13 14: CONST integer(1) -- parent: 15 16: CONST integer(1) -- parent: 17 RULE test_7 - 12: AND -- hash: 0xe533ae780a09ff03 -- parent: None - 8: EQ -- hash: 0x22575eadeb0769cf -- parent: 12 - 6: FIELD_ACCESS -- hash: 0xd1ac9e3929a1ce9b -- parent: 8 + 12: AND -- hash: 0x4ceb9e02827fc0f9 -- parent: None + 8: EQ -- hash: 0x95d7ab7ac1da73c8 -- parent: 12 + 6: FIELD_ACCESS -- hash: 0x6b278e4a6873a6f4 -- parent: 8 4: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 6 5: SYMBOL Field { index: 1, is_root: false, type_value: integer(unknown), acl: None } -- parent: 6 7: CONST integer(0) -- parent: 8 9: CONST boolean(true) -- parent: 12 - 11: NOT -- hash: 0x2c3c4fda5217a5f3 -- parent: 12 + 11: NOT -- hash: 0xf13f69485e97ccb -- parent: 12 10: CONST boolean(false) -- parent: 11 RULE test_8 - 5: ADD -- hash: 0xc4e1a16fb19df223 -- parent: None - 2: FIELD_ACCESS -- hash: 0xd1ac9e3929a1ce9b -- parent: 5 + 5: ADD -- hash: 0x38685bec677c88f1 -- parent: None + 2: FIELD_ACCESS -- hash: 0x6b278e4a6873a6f4 -- parent: 5 0: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 2 1: SYMBOL Field { index: 1, is_root: false, type_value: integer(unknown), acl: None } -- parent: 2 3: CONST integer(1) -- parent: 5 4: CONST integer(2) -- parent: 5 RULE test_9 - 18: AND -- hash: 0xb21fa80def581aea -- parent: None - 2: CONTAINS -- hash: 0x702eaf70b18909ff -- parent: 18 + 18: AND -- hash: 0x87ea037bd606baac -- parent: None + 2: CONTAINS -- hash: 0xbabdc2c62427fdc -- parent: 18 0: CONST string("foobar") -- parent: 2 1: CONST string("bar") -- parent: 2 - 5: ICONTAINS -- hash: 0xe30a191883a20729 -- parent: 18 + 5: ICONTAINS -- hash: 0xc2864620e881ca78 -- parent: 18 3: CONST string("foobar") -- parent: 5 4: CONST string("BAR") -- parent: 5 - 8: STARTS_WITH -- hash: 0xc963b1bf1e8d9506 -- parent: 18 + 8: STARTS_WITH -- hash: 0x58ec6fc7a36541b2 -- parent: 18 6: CONST string("foobar") -- parent: 8 7: CONST string("foo") -- parent: 8 - 11: ISTARTS_WITH -- hash: 0x1ce5974aa4aaacaa -- parent: 18 + 11: ISTARTS_WITH -- hash: 0x3965d2a92aab2a87 -- parent: 18 9: CONST string("foobar") -- parent: 11 10: CONST string("FOO") -- parent: 11 - 14: ENDS_WITH -- hash: 0x4394dbecb8c89956 -- parent: 18 + 14: ENDS_WITH -- hash: 0xe536fb2e32265590 -- parent: 18 12: CONST string("foobar") -- parent: 14 13: CONST string("bar") -- parent: 14 - 17: IENDS_WITH -- hash: 0xb67045948ae19680 -- parent: 18 + 17: IENDS_WITH -- hash: 0x9c116522b865a02d -- parent: 18 15: CONST string("foobar") -- parent: 17 16: CONST string("BAR") -- parent: 17 diff --git a/lib/src/compiler/ir/tests/testdata/2.no-folding.ir b/lib/src/compiler/ir/tests/testdata/2.no-folding.ir index 8a3eb182..d5531e16 100644 --- a/lib/src/compiler/ir/tests/testdata/2.no-folding.ir +++ b/lib/src/compiler/ir/tests/testdata/2.no-folding.ir @@ -1,45 +1,45 @@ RULE test - 42: FOR_IN -- hash: 0x88c2a577129b8157 -- parent: None + 42: FOR_IN -- hash: 0x30a95dc4a6e055e2 -- parent: None 0: CONST integer(0) -- parent: 42 - 1: PATTERN_COUNT PatternIdx(0) -- hash: 0x2706f00cf1a9933a -- parent: 42 - 41: FOR_IN -- hash: 0x95843bda7f5a11bf -- parent: 42 + 1: PATTERN_COUNT PatternIdx(0) -- hash: 0xc1bc033c6a64ce89 -- parent: 42 + 41: FOR_IN -- hash: 0x610ef69fd6846fe5 -- parent: 42 2: CONST integer(0) -- parent: 41 - 3: PATTERN_COUNT PatternIdx(1) -- hash: 0xd9da66a80b3ad5b5 -- parent: 41 - 40: FOR_IN -- hash: 0x905e2b8ad1c19fc8 -- parent: 41 - 6: FIELD_ACCESS -- hash: 0x648af520f5c87b4e -- parent: 40 + 3: PATTERN_COUNT PatternIdx(1) -- hash: 0x7699aa02ceb56d76 -- parent: 41 + 40: FOR_IN -- hash: 0x178ae2b47067f224 -- parent: 41 + 6: FIELD_ACCESS -- hash: 0x22bd483d721ed399 -- parent: 40 4: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 6 5: SYMBOL Field { index: 19, is_root: false, type_value: array, acl: None } -- parent: 6 - 39: AND -- hash: 0x9ffc87ac49116a93 -- parent: 40 - 12: LE -- hash: 0xf86e7a8e638f2154 -- parent: 39 - 9: FIELD_ACCESS -- hash: 0x4a8febd1cb391875 -- parent: 12 + 39: AND -- hash: 0xff21eb12445aa4e7 -- parent: 40 + 12: LE -- hash: 0x1b9ea398e3c8553e -- parent: 39 + 9: FIELD_ACCESS -- hash: 0xa3faf472ce461d52 -- parent: 12 7: SYMBOL Var { var: Var { frame_id: 3, ty: struct, index: 19 }, type_value: struct } -- parent: 9 8: SYMBOL Field { index: 0, is_root: false, type_value: integer(unknown), acl: None } -- parent: 9 - 11: PATTERN_OFFSET PatternIdx(0) INDEX -- hash: 0x6df2db889a437dfc -- parent: 12 + 11: PATTERN_OFFSET PatternIdx(0) INDEX -- hash: 0x7cb6e22690df7f1b -- parent: 12 10: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 5 }, type_value: integer(unknown) } -- parent: 11 - 22: LE -- hash: 0x7983f5a8976cf11c -- parent: 39 - 14: PATTERN_OFFSET PatternIdx(0) INDEX -- hash: 0x6df2db889a437dfc -- parent: 22 + 22: LE -- hash: 0x60fd6a25db3c471e -- parent: 39 + 14: PATTERN_OFFSET PatternIdx(0) INDEX -- hash: 0x7cb6e22690df7f1b -- parent: 22 13: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 5 }, type_value: integer(unknown) } -- parent: 14 - 21: ADD -- hash: 0x1c92c641b2555524 -- parent: 22 - 17: FIELD_ACCESS -- hash: 0x4a8febd1cb391875 -- parent: 21 + 21: ADD -- hash: 0x24b1906c95554907 -- parent: 22 + 17: FIELD_ACCESS -- hash: 0xa3faf472ce461d52 -- parent: 21 15: SYMBOL Var { var: Var { frame_id: 3, ty: struct, index: 19 }, type_value: struct } -- parent: 17 16: SYMBOL Field { index: 0, is_root: false, type_value: integer(unknown), acl: None } -- parent: 17 - 20: FIELD_ACCESS -- hash: 0xfd63626ce4ca5af0 -- parent: 21 + 20: FIELD_ACCESS -- hash: 0x58d89b393296bc3f -- parent: 21 18: SYMBOL Var { var: Var { frame_id: 3, ty: struct, index: 19 }, type_value: struct } -- parent: 20 19: SYMBOL Field { index: 1, is_root: false, type_value: integer(unknown), acl: None } -- parent: 20 - 28: LE -- hash: 0x1d1777dfdc5c802f -- parent: 39 - 25: FIELD_ACCESS -- hash: 0x4a8febd1cb391875 -- parent: 28 + 28: LE -- hash: 0x45ddf7f717200bc7 -- parent: 39 + 25: FIELD_ACCESS -- hash: 0xa3faf472ce461d52 -- parent: 28 23: SYMBOL Var { var: Var { frame_id: 3, ty: struct, index: 19 }, type_value: struct } -- parent: 25 24: SYMBOL Field { index: 0, is_root: false, type_value: integer(unknown), acl: None } -- parent: 25 - 27: PATTERN_OFFSET PatternIdx(1) INDEX -- hash: 0x929bd8da1310dcd6 -- parent: 28 + 27: PATTERN_OFFSET PatternIdx(1) INDEX -- hash: 0xa6f63684c43735a4 -- parent: 28 26: SYMBOL Var { var: Var { frame_id: 2, ty: integer, index: 12 }, type_value: integer(unknown) } -- parent: 27 - 38: LE -- hash: 0xc24b449c327166c6 -- parent: 39 - 30: PATTERN_OFFSET PatternIdx(1) INDEX -- hash: 0x929bd8da1310dcd6 -- parent: 38 + 38: LE -- hash: 0x92d1270c9c59b1b0 -- parent: 39 + 30: PATTERN_OFFSET PatternIdx(1) INDEX -- hash: 0xa6f63684c43735a4 -- parent: 38 29: SYMBOL Var { var: Var { frame_id: 2, ty: integer, index: 12 }, type_value: integer(unknown) } -- parent: 30 - 37: ADD -- hash: 0x1c92c641b2555524 -- parent: 38 - 33: FIELD_ACCESS -- hash: 0x4a8febd1cb391875 -- parent: 37 + 37: ADD -- hash: 0x24b1906c95554907 -- parent: 38 + 33: FIELD_ACCESS -- hash: 0xa3faf472ce461d52 -- parent: 37 31: SYMBOL Var { var: Var { frame_id: 3, ty: struct, index: 19 }, type_value: struct } -- parent: 33 32: SYMBOL Field { index: 0, is_root: false, type_value: integer(unknown), acl: None } -- parent: 33 - 36: FIELD_ACCESS -- hash: 0xfd63626ce4ca5af0 -- parent: 37 + 36: FIELD_ACCESS -- hash: 0x58d89b393296bc3f -- parent: 37 34: SYMBOL Var { var: Var { frame_id: 3, ty: struct, index: 19 }, type_value: struct } -- parent: 36 35: SYMBOL Field { index: 1, is_root: false, type_value: integer(unknown), acl: None } -- parent: 36 diff --git a/lib/src/compiler/ir/tests/testdata/3.no-folding.ir b/lib/src/compiler/ir/tests/testdata/3.no-folding.ir index 6a24533d..c6329c27 100644 --- a/lib/src/compiler/ir/tests/testdata/3.no-folding.ir +++ b/lib/src/compiler/ir/tests/testdata/3.no-folding.ir @@ -1,12 +1,12 @@ RULE test - 22: OR -- hash: 0xa07189ef31bfe461 -- parent: None - 10: EQ -- hash: 0x96e6e80d013c07ae -- parent: 22 - 8: FN_CALL hash.md5@ii@su -- hash: 0xfaab2b87ecb65323 -- parent: 10 + 22: OR -- hash: 0x1c627bcc6ff91868 -- parent: None + 10: EQ -- hash: 0xb9ba03404f01eba5 -- parent: 22 + 8: FN_CALL hash.md5@ii@su -- hash: 0xaacae1fb2d94c8fe -- parent: 10 6: CONST integer(0) -- parent: 8 7: FILESIZE -- parent: 8 9: CONST string("feba6c919e3797e7778e8f2e85fa033d") -- parent: 10 - 21: EQ -- hash: 0x481e64f7e20840c4 -- parent: 22 - 19: FN_CALL hash.md5@ii@su -- hash: 0xfaab2b87ecb65323 -- parent: 21 + 21: EQ -- hash: 0x7993df882103112 -- parent: 22 + 19: FN_CALL hash.md5@ii@su -- hash: 0xaacae1fb2d94c8fe -- parent: 21 17: CONST integer(0) -- parent: 19 18: FILESIZE -- parent: 19 20: CONST string("275876e34cf609db118f3d84b799a790") -- parent: 21 diff --git a/lib/src/compiler/ir/tests/testdata/4.no-folding.ir b/lib/src/compiler/ir/tests/testdata/4.no-folding.ir index b7c2a8d7..31ed9049 100644 --- a/lib/src/compiler/ir/tests/testdata/4.no-folding.ir +++ b/lib/src/compiler/ir/tests/testdata/4.no-folding.ir @@ -1,40 +1,40 @@ RULE test - 60: WITH -- hash: 0x8b7ce5c8ded3fe86 -- parent: None - 2: FIELD_ACCESS -- hash: 0x80c2b6e342dfa9ec -- parent: 60 + 60: WITH -- hash: 0xdf397237b4ffa1a2 -- parent: None + 2: FIELD_ACCESS -- hash: 0x30adb8d0b7ea7b20 -- parent: 60 0: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 2 1: SYMBOL Field { index: 12, is_root: false, type_value: integer(unknown), acl: None } -- parent: 2 - 59: AND -- hash: 0x95b05d460bfc4f3a -- parent: 60 - 35: FOR_IN -- hash: 0x45a291bc2adba8eb -- parent: 59 + 59: AND -- hash: 0x6c175182ff13cea5 -- parent: 60 + 35: FOR_IN -- hash: 0x68a46f0ab6ea3ad1 -- parent: 59 3: CONST integer(0) -- parent: 35 4: CONST integer(1) -- parent: 35 - 34: AND -- hash: 0xbce47fd7b9d090b -- parent: 35 - 9: EQ -- hash: 0xe2a19a870d8dfb71 -- parent: 34 + 34: AND -- hash: 0xf391ff5ee74242c2 -- parent: 35 + 9: EQ -- hash: 0xa866a1c3637edc78 -- parent: 34 7: SYMBOL Var { var: Var { frame_id: 2, ty: integer, index: 6 }, type_value: integer(unknown) } -- parent: 9 8: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 0 }, type_value: integer(unknown) } -- parent: 9 - 20: EQ -- hash: 0x48b293a840425fdc -- parent: 34 - 18: FN_CALL test_proto2.add@ii@i -- hash: 0xf798bcca1a3f3e3a -- parent: 20 + 20: EQ -- hash: 0x2ca4ea101097f712 -- parent: 34 + 18: FN_CALL test_proto2.add@ii@i -- hash: 0xe62f32868fcf8ebd -- parent: 20 16: CONST integer(1) -- parent: 18 17: CONST integer(2) -- parent: 18 19: CONST integer(3) -- parent: 20 - 33: EQ -- hash: 0x1dbb26e61da1eb70 -- parent: 34 - 31: ADD -- hash: 0xd171978cdc3d3d19 -- parent: 33 - 29: FIELD_ACCESS -- hash: 0x1b1bc9ad0fbd24f5 -- parent: 31 + 33: EQ -- hash: 0x6ec9b987687adc07 -- parent: 34 + 31: ADD -- hash: 0x5c65e3370f4f4674 -- parent: 33 + 29: FIELD_ACCESS -- hash: 0xc6f26b43ef493d46 -- parent: 31 27: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 29 28: SYMBOL Field { index: 10, is_root: false, type_value: float(unknown), acl: None } -- parent: 29 30: CONST integer(1) -- parent: 31 32: CONST float(1.0) -- parent: 33 - 58: FOR_IN -- hash: 0xbb24539280f64817 -- parent: 59 + 58: FOR_IN -- hash: 0xc914e4a03d9205ee -- parent: 59 36: CONST integer(0) -- parent: 58 37: CONST integer(1) -- parent: 58 - 57: AND -- hash: 0x2ba6eaf5b8be6882 -- parent: 58 - 43: NE -- hash: 0x15b068c266aa15d7 -- parent: 57 - 41: FN_CALL test_proto2.add@ii@i -- hash: 0xf798bcca1a3f3e3a -- parent: 43 + 57: AND -- hash: 0xe9babd6e2f9a208a -- parent: 58 + 43: NE -- hash: 0x6c1a3099aa8575c5 -- parent: 57 + 41: FN_CALL test_proto2.add@ii@i -- hash: 0xe62f32868fcf8ebd -- parent: 43 39: CONST integer(1) -- parent: 41 40: CONST integer(2) -- parent: 41 42: CONST integer(0) -- parent: 43 - 56: EQ -- hash: 0x1dbb26e61da1eb70 -- parent: 57 - 54: ADD -- hash: 0xd171978cdc3d3d19 -- parent: 56 - 52: FIELD_ACCESS -- hash: 0x1b1bc9ad0fbd24f5 -- parent: 54 + 56: EQ -- hash: 0x6ec9b987687adc07 -- parent: 57 + 54: ADD -- hash: 0x5c65e3370f4f4674 -- parent: 56 + 52: FIELD_ACCESS -- hash: 0xc6f26b43ef493d46 -- parent: 54 50: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 52 51: SYMBOL Field { index: 10, is_root: false, type_value: float(unknown), acl: None } -- parent: 52 53: CONST integer(1) -- parent: 54 diff --git a/lib/src/compiler/ir/tests/testdata/5.no-folding.ir b/lib/src/compiler/ir/tests/testdata/5.no-folding.ir index f59bd473..88326c07 100644 --- a/lib/src/compiler/ir/tests/testdata/5.no-folding.ir +++ b/lib/src/compiler/ir/tests/testdata/5.no-folding.ir @@ -1,35 +1,35 @@ RULE test_1 - 67: AND -- hash: 0xaa18aa1ffb9bc4da -- parent: None - 16: EQ -- hash: 0x93b1c71319c67c45 -- parent: 67 - 14: FIELD_ACCESS -- hash: 0xc08bb67c00e069a1 -- parent: 16 - 12: LOOKUP -- hash: 0xe890ce911748f1a -- parent: 14 - 10: FIELD_ACCESS -- hash: 0x5952db4df4ae45cd -- parent: 12 + 67: AND -- hash: 0x862a87fee6f136aa -- parent: None + 16: EQ -- hash: 0xec71c4c6719f1164 -- parent: 67 + 14: FIELD_ACCESS -- hash: 0x22ed9f00381a6870 -- parent: 16 + 12: LOOKUP -- hash: 0xa2433a445d23c683 -- parent: 14 + 10: FIELD_ACCESS -- hash: 0x54b6d37d2b917356 -- parent: 12 8: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 10 9: SYMBOL Field { index: 49, is_root: false, type_value: array, acl: None } -- parent: 10 11: CONST integer(0) -- parent: 12 13: SYMBOL Field { index: 0, is_root: false, type_value: integer(unknown), acl: None } -- parent: 14 15: CONST integer(0) -- parent: 16 - 33: EQ -- hash: 0xfa0af2e7b98f6221 -- parent: 67 - 31: FIELD_ACCESS -- hash: 0x85e35017435691aa -- parent: 33 - 29: LOOKUP -- hash: 0xbd2bf313adc3a271 -- parent: 31 - 27: FIELD_ACCESS -- hash: 0x5952db4df4ae45cd -- parent: 29 + 33: EQ -- hash: 0x82bcb9ee63d8887e -- parent: 67 + 31: FIELD_ACCESS -- hash: 0x78d405d0d5a46aa1 -- parent: 33 + 29: LOOKUP -- hash: 0x4afcc4eb70e89c6f -- parent: 31 + 27: FIELD_ACCESS -- hash: 0x54b6d37d2b917356 -- parent: 29 25: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 27 26: SYMBOL Field { index: 49, is_root: false, type_value: array, acl: None } -- parent: 27 28: CONST integer(1) -- parent: 29 30: SYMBOL Field { index: 2, is_root: false, type_value: integer(unknown), acl: None } -- parent: 31 32: CONST integer(1) -- parent: 33 - 66: EQ -- hash: 0x514ddc8f2868e6d9 -- parent: 67 - 64: ADD -- hash: 0x3a2f0e741d3c6613 -- parent: 66 - 56: FIELD_ACCESS -- hash: 0x203c62e110340cb3 -- parent: 64 - 54: LOOKUP -- hash: 0xbd2bf313adc3a271 -- parent: 56 - 52: FIELD_ACCESS -- hash: 0x5952db4df4ae45cd -- parent: 54 + 66: EQ -- hash: 0x537723ca1a39b654 -- parent: 67 + 64: ADD -- hash: 0x8bc39d074f1984ce -- parent: 66 + 56: FIELD_ACCESS -- hash: 0xf18b8440d032cc8 -- parent: 64 + 54: LOOKUP -- hash: 0x4afcc4eb70e89c6f -- parent: 56 + 52: FIELD_ACCESS -- hash: 0x54b6d37d2b917356 -- parent: 54 50: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 52 51: SYMBOL Field { index: 49, is_root: false, type_value: array, acl: None } -- parent: 52 53: CONST integer(1) -- parent: 54 55: SYMBOL Field { index: 0, is_root: false, type_value: integer(unknown), acl: None } -- parent: 56 - 63: FIELD_ACCESS -- hash: 0x38b6c6b25ce7d426 -- parent: 64 - 61: LOOKUP -- hash: 0xbd2bf313adc3a271 -- parent: 63 - 59: FIELD_ACCESS -- hash: 0x5952db4df4ae45cd -- parent: 61 + 63: FIELD_ACCESS -- hash: 0x2db1ac9739f5098e -- parent: 64 + 61: LOOKUP -- hash: 0x4afcc4eb70e89c6f -- parent: 63 + 59: FIELD_ACCESS -- hash: 0x54b6d37d2b917356 -- parent: 61 57: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 59 58: SYMBOL Field { index: 49, is_root: false, type_value: array, acl: None } -- parent: 59 60: CONST integer(1) -- parent: 61 @@ -37,37 +37,37 @@ RULE test_1 65: CONST integer(1) -- parent: 66 RULE test_2 - 67: AND -- hash: 0x4b8ac6078f93a052 -- parent: None - 32: EQ -- hash: 0x514ddc8f2868e6d9 -- parent: 67 - 30: ADD -- hash: 0x3a2f0e741d3c6613 -- parent: 32 - 22: FIELD_ACCESS -- hash: 0x203c62e110340cb3 -- parent: 30 - 20: LOOKUP -- hash: 0xbd2bf313adc3a271 -- parent: 22 - 18: FIELD_ACCESS -- hash: 0x5952db4df4ae45cd -- parent: 20 + 67: AND -- hash: 0xe2b181e3e4e81492 -- parent: None + 32: EQ -- hash: 0x537723ca1a39b654 -- parent: 67 + 30: ADD -- hash: 0x8bc39d074f1984ce -- parent: 32 + 22: FIELD_ACCESS -- hash: 0xf18b8440d032cc8 -- parent: 30 + 20: LOOKUP -- hash: 0x4afcc4eb70e89c6f -- parent: 22 + 18: FIELD_ACCESS -- hash: 0x54b6d37d2b917356 -- parent: 20 16: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 18 17: SYMBOL Field { index: 49, is_root: false, type_value: array, acl: None } -- parent: 18 19: CONST integer(1) -- parent: 20 21: SYMBOL Field { index: 0, is_root: false, type_value: integer(unknown), acl: None } -- parent: 22 - 29: FIELD_ACCESS -- hash: 0x38b6c6b25ce7d426 -- parent: 30 - 27: LOOKUP -- hash: 0xbd2bf313adc3a271 -- parent: 29 - 25: FIELD_ACCESS -- hash: 0x5952db4df4ae45cd -- parent: 27 + 29: FIELD_ACCESS -- hash: 0x2db1ac9739f5098e -- parent: 30 + 27: LOOKUP -- hash: 0x4afcc4eb70e89c6f -- parent: 29 + 25: FIELD_ACCESS -- hash: 0x54b6d37d2b917356 -- parent: 27 23: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 25 24: SYMBOL Field { index: 49, is_root: false, type_value: array, acl: None } -- parent: 25 26: CONST integer(1) -- parent: 27 28: SYMBOL Field { index: 3, is_root: false, type_value: integer(unknown), acl: None } -- parent: 29 31: CONST integer(1) -- parent: 32 - 49: EQ -- hash: 0x93b1c71319c67c45 -- parent: 67 - 47: FIELD_ACCESS -- hash: 0xc08bb67c00e069a1 -- parent: 49 - 45: LOOKUP -- hash: 0xe890ce911748f1a -- parent: 47 - 43: FIELD_ACCESS -- hash: 0x5952db4df4ae45cd -- parent: 45 + 49: EQ -- hash: 0xec71c4c6719f1164 -- parent: 67 + 47: FIELD_ACCESS -- hash: 0x22ed9f00381a6870 -- parent: 49 + 45: LOOKUP -- hash: 0xa2433a445d23c683 -- parent: 47 + 43: FIELD_ACCESS -- hash: 0x54b6d37d2b917356 -- parent: 45 41: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 43 42: SYMBOL Field { index: 49, is_root: false, type_value: array, acl: None } -- parent: 43 44: CONST integer(0) -- parent: 45 46: SYMBOL Field { index: 0, is_root: false, type_value: integer(unknown), acl: None } -- parent: 47 48: CONST integer(0) -- parent: 49 - 66: EQ -- hash: 0xfa0af2e7b98f6221 -- parent: 67 - 64: FIELD_ACCESS -- hash: 0x85e35017435691aa -- parent: 66 - 62: LOOKUP -- hash: 0xbd2bf313adc3a271 -- parent: 64 - 60: FIELD_ACCESS -- hash: 0x5952db4df4ae45cd -- parent: 62 + 66: EQ -- hash: 0x82bcb9ee63d8887e -- parent: 67 + 64: FIELD_ACCESS -- hash: 0x78d405d0d5a46aa1 -- parent: 66 + 62: LOOKUP -- hash: 0x4afcc4eb70e89c6f -- parent: 64 + 60: FIELD_ACCESS -- hash: 0x54b6d37d2b917356 -- parent: 62 58: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 60 59: SYMBOL Field { index: 49, is_root: false, type_value: array, acl: None } -- parent: 60 61: CONST integer(1) -- parent: 62 @@ -75,34 +75,34 @@ RULE test_2 65: CONST integer(1) -- parent: 66 RULE test_3 - 55: WITH -- hash: 0x1598fc85070cfaed -- parent: None - 2: FIELD_ACCESS -- hash: 0x5952db4df4ae45cd -- parent: 55 + 55: WITH -- hash: 0x663f2141c33ebb45 -- parent: None + 2: FIELD_ACCESS -- hash: 0x54b6d37d2b917356 -- parent: 55 0: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 2 1: SYMBOL Field { index: 49, is_root: false, type_value: array, acl: None } -- parent: 2 - 54: AND -- hash: 0x8def6b3d8a9b6588 -- parent: 55 - 27: EQ -- hash: 0x848b3d8e72292fb5 -- parent: 54 - 25: ADD -- hash: 0x5d560631c0f8397f -- parent: 27 - 19: FIELD_ACCESS -- hash: 0xc99de083bcdffdb2 -- parent: 25 - 17: LOOKUP -- hash: 0x2de453564269708e -- parent: 19 + 54: AND -- hash: 0x7bdacf62a6d96223 -- parent: 55 + 27: EQ -- hash: 0x22cf639c8a4bed61 -- parent: 54 + 25: ADD -- hash: 0x55818c703e0e5fd7 -- parent: 27 + 19: FIELD_ACCESS -- hash: 0x677820ef37ff6cb2 -- parent: 25 + 17: LOOKUP -- hash: 0x7914d5909a5c238b -- parent: 19 15: SYMBOL Var { var: Var { frame_id: 1, ty: array, index: 0 }, type_value: array } -- parent: 17 16: CONST integer(1) -- parent: 17 18: SYMBOL Field { index: 0, is_root: false, type_value: integer(unknown), acl: None } -- parent: 19 - 24: FIELD_ACCESS -- hash: 0xe21844550983c525 -- parent: 25 - 22: LOOKUP -- hash: 0x2de453564269708e -- parent: 24 + 24: FIELD_ACCESS -- hash: 0x8611154260f14978 -- parent: 25 + 22: LOOKUP -- hash: 0x7914d5909a5c238b -- parent: 24 20: SYMBOL Var { var: Var { frame_id: 1, ty: array, index: 0 }, type_value: array } -- parent: 22 21: CONST integer(1) -- parent: 22 23: SYMBOL Field { index: 3, is_root: false, type_value: integer(unknown), acl: None } -- parent: 24 26: CONST integer(1) -- parent: 27 - 40: EQ -- hash: 0xa5afb0ccd569e5b2 -- parent: 54 - 38: FIELD_ACCESS -- hash: 0x69ed341ead8c5aa1 -- parent: 40 - 36: LOOKUP -- hash: 0x7f416d2ba61a5d36 -- parent: 38 + 40: EQ -- hash: 0x6bec33355a796ca9 -- parent: 54 + 38: FIELD_ACCESS -- hash: 0x7b4d07ab6316a85a -- parent: 40 + 36: LOOKUP -- hash: 0xd05b4ae986974d9f -- parent: 38 34: SYMBOL Var { var: Var { frame_id: 1, ty: array, index: 0 }, type_value: array } -- parent: 36 35: CONST integer(0) -- parent: 36 37: SYMBOL Field { index: 0, is_root: false, type_value: integer(unknown), acl: None } -- parent: 38 39: CONST integer(0) -- parent: 40 - 53: EQ -- hash: 0xc08dca17522cb8f -- parent: 54 - 51: FIELD_ACCESS -- hash: 0x2f44cdb9eff282aa -- parent: 53 - 49: LOOKUP -- hash: 0x2de453564269708e -- parent: 51 + 53: EQ -- hash: 0x237285d48b2e3c3 -- parent: 54 + 51: FIELD_ACCESS -- hash: 0xd1336e7bfca0aa8b -- parent: 53 + 49: LOOKUP -- hash: 0x7914d5909a5c238b -- parent: 51 47: SYMBOL Var { var: Var { frame_id: 1, ty: array, index: 0 }, type_value: array } -- parent: 49 48: CONST integer(1) -- parent: 49 50: SYMBOL Field { index: 2, is_root: false, type_value: integer(unknown), acl: None } -- parent: 51 diff --git a/lib/src/compiler/ir/tests/testdata/6.no-folding.ir b/lib/src/compiler/ir/tests/testdata/6.no-folding.ir index 54b17648..cb85332e 100644 --- a/lib/src/compiler/ir/tests/testdata/6.no-folding.ir +++ b/lib/src/compiler/ir/tests/testdata/6.no-folding.ir @@ -1,22 +1,22 @@ RULE test - 29: OR -- hash: 0xb735ce774b0e7111 -- parent: None - 16: AND -- hash: 0x83571261f643aa93 -- parent: 29 - 6: EQ -- hash: 0x4cf0e59271cb5292 -- parent: 16 - 4: FN_CALL uint16@i@iu -- hash: 0xda0e21252116eba3 -- parent: 6 + 29: OR -- hash: 0xcd739dd2c39c446d -- parent: None + 16: AND -- hash: 0xd5c4987d90eaa4e0 -- parent: 29 + 6: EQ -- hash: 0x3c39649c72d4a493 -- parent: 16 + 4: FN_CALL uint16@i@iu -- hash: 0x8388494845bae8f6 -- parent: 6 3: CONST integer(0) -- parent: 4 5: CONST integer(23117) -- parent: 6 - 15: EQ -- hash: 0x65a614459391c0a7 -- parent: 16 - 13: FN_CALL uint32@i@iu -- hash: 0x34c0621a2d7bd78a -- parent: 15 - 12: FN_CALL uint32@i@iu -- hash: 0xf847af9eff49a4aa -- parent: 13 + 15: EQ -- hash: 0x69851164e47029d9 -- parent: 16 + 13: FN_CALL uint32@i@iu -- hash: 0x3018868b5ef5e28d -- parent: 15 + 12: FN_CALL uint32@i@iu -- hash: 0x11ebe7bfd2692abe -- parent: 13 11: CONST integer(60) -- parent: 12 14: CONST integer(17744) -- parent: 15 - 28: AND -- hash: 0x8f4035502c840567 -- parent: 29 - 23: EQ -- hash: 0x316a67c055d910c5 -- parent: 28 - 21: FN_CALL uint32@i@iu -- hash: 0xa19bda25c811c1e -- parent: 23 + 28: AND -- hash: 0xd00d540b210159e3 -- parent: 29 + 23: EQ -- hash: 0x5a99f0157644314c -- parent: 28 + 21: FN_CALL uint32@i@iu -- hash: 0x866f689720470782 -- parent: 23 20: CONST integer(0) -- parent: 21 22: CONST integer(1179403647) -- parent: 23 - 27: NE -- hash: 0x148970aaa804a2e -- parent: 28 - 25: FN_CALL uint16@i@iu -- hash: 0xda0e21252116eba3 -- parent: 27 + 27: NE -- hash: 0x5225c2aaa0128b80 -- parent: 28 + 25: FN_CALL uint16@i@iu -- hash: 0x8388494845bae8f6 -- parent: 27 24: CONST integer(0) -- parent: 25 26: CONST integer(0) -- parent: 27 diff --git a/lib/src/compiler/ir/tests/testdata/7.no-folding.ir b/lib/src/compiler/ir/tests/testdata/7.no-folding.ir index 616da5ee..976970a9 100644 --- a/lib/src/compiler/ir/tests/testdata/7.no-folding.ir +++ b/lib/src/compiler/ir/tests/testdata/7.no-folding.ir @@ -1,44 +1,44 @@ RULE test_1 - 23: FOR_IN -- hash: 0xef4c0b57ba1aaa76 -- parent: None + 23: FOR_IN -- hash: 0xd302d5ee86aa9dbb -- parent: None 0: CONST integer(0) -- parent: 23 1: CONST integer(1) -- parent: 23 - 22: EQ -- hash: 0x8508dabdc4d94780 -- parent: 23 - 20: FIELD_ACCESS -- hash: 0xadbe6fb45c7e355b -- parent: 22 - 16: LOOKUP -- hash: 0x992444e3cb9cae7d -- parent: 20 - 14: FIELD_ACCESS -- hash: 0x5952db4df4ae45cd -- parent: 16 + 22: EQ -- hash: 0x4236af713651e021 -- parent: 23 + 20: FIELD_ACCESS -- hash: 0x6f9bed171f8d56eb -- parent: 22 + 16: LOOKUP -- hash: 0x491138f2e72b9f66 -- parent: 20 + 14: FIELD_ACCESS -- hash: 0x54b6d37d2b917356 -- parent: 16 12: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 14 13: SYMBOL Field { index: 49, is_root: false, type_value: array, acl: None } -- parent: 14 15: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 5 }, type_value: integer(unknown) } -- parent: 16 - 19: LOOKUP -- hash: 0x7132a2dfe7856f7e -- parent: 20 + 19: LOOKUP -- hash: 0x4ca8b7f9e15bdf9c -- parent: 20 17: SYMBOL Field { index: 6, is_root: false, type_value: array, acl: None } -- parent: 19 18: CONST integer(0) -- parent: 19 21: CONST integer(0) -- parent: 22 RULE test_2 - 10: DEFINED -- hash: 0xa9c934d5341dd128 -- parent: None - 9: FOR_IN -- hash: 0x47af473e5ce6edf4 -- parent: 10 + 10: DEFINED -- hash: 0x724d354d07744a2a -- parent: None + 9: FOR_IN -- hash: 0xebd1cf9739bb7d11 -- parent: 10 0: CONST integer(0) -- parent: 9 1: CONST integer(10) -- parent: 9 - 8: EQ -- hash: 0xc505f68cf1115633 -- parent: 9 - 6: FN_CALL test_proto2.undef_i64@@iu -- hash: 0x683a6ff805737265 -- parent: 8 + 8: EQ -- hash: 0x417da33c44558cf1 -- parent: 9 + 6: FN_CALL test_proto2.undef_i64@@iu -- hash: 0xe9bfe015cdc995a -- parent: 8 7: CONST integer(0) -- parent: 8 RULE test_3 - 18: OR -- hash: 0x5b00eca50ef1d2b1 -- parent: None - 5: CONTAINS -- hash: 0xce6cd281a970511c -- parent: 18 - 3: FIELD_ACCESS -- hash: 0xce9a3bd1f5fa7c6f -- parent: 5 + 18: OR -- hash: 0xc03b2943bc74ac56 -- parent: None + 5: CONTAINS -- hash: 0x9b34a06a5c144733 -- parent: 18 + 3: FIELD_ACCESS -- hash: 0xa68ef47d7e9f1bf3 -- parent: 5 0: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 3 1: SYMBOL Field { index: 44, is_root: false, type_value: struct, acl: None } -- parent: 3 2: SYMBOL Field { index: 5, is_root: false, type_value: string(unknown), acl: None } -- parent: 3 4: CONST string("foo") -- parent: 5 - 11: CONTAINS -- hash: 0xce6cd281a970511c -- parent: 18 - 9: FIELD_ACCESS -- hash: 0xce9a3bd1f5fa7c6f -- parent: 11 + 11: CONTAINS -- hash: 0x9b34a06a5c144733 -- parent: 18 + 9: FIELD_ACCESS -- hash: 0xa68ef47d7e9f1bf3 -- parent: 11 6: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 9 7: SYMBOL Field { index: 44, is_root: false, type_value: struct, acl: None } -- parent: 9 8: SYMBOL Field { index: 5, is_root: false, type_value: string(unknown), acl: None } -- parent: 9 10: CONST string("foo") -- parent: 11 - 17: CONTAINS -- hash: 0xdeeae671401b8dc0 -- parent: 18 - 15: FIELD_ACCESS -- hash: 0xce9a3bd1f5fa7c6f -- parent: 17 + 17: CONTAINS -- hash: 0xbab99c5006e37037 -- parent: 18 + 15: FIELD_ACCESS -- hash: 0xa68ef47d7e9f1bf3 -- parent: 17 12: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None } -- parent: 15 13: SYMBOL Field { index: 44, is_root: false, type_value: struct, acl: None } -- parent: 15 14: SYMBOL Field { index: 5, is_root: false, type_value: string(unknown), acl: None } -- parent: 15 diff --git a/lib/src/compiler/ir/tests/testdata/8.no-folding.ir b/lib/src/compiler/ir/tests/testdata/8.no-folding.ir index 9ce1eee1..f96967ef 100644 --- a/lib/src/compiler/ir/tests/testdata/8.no-folding.ir +++ b/lib/src/compiler/ir/tests/testdata/8.no-folding.ir @@ -1,27 +1,27 @@ RULE test_1 - 18: FOR_IN -- hash: 0x192489d900bf373f -- parent: None + 18: FOR_IN -- hash: 0x492276402fcdcfc6 -- parent: None 0: CONST integer(0) -- parent: 18 1: CONST integer(1) -- parent: 18 - 17: FOR_IN -- hash: 0xb2301f1d307980cb -- parent: 18 + 17: FOR_IN -- hash: 0x8c07c74c1e6032ec -- parent: 18 2: CONST integer(0) -- parent: 17 3: CONST integer(1) -- parent: 17 - 16: EQ -- hash: 0xacd18d8693341b8c -- parent: 17 - 14: MUL -- hash: 0x2cb822013d7bc775 -- parent: 16 - 12: ADD -- hash: 0xaa6ef31fb0888f3e -- parent: 14 + 16: EQ -- hash: 0x346361a4cd06e32b -- parent: 17 + 14: MUL -- hash: 0x2e08804f5ef1dd4b -- parent: 16 + 12: ADD -- hash: 0x9bbcc7ec2223cfaa -- parent: 14 10: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 5 }, type_value: integer(unknown) } -- parent: 12 11: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 5 }, type_value: integer(unknown) } -- parent: 12 13: CONST integer(2) -- parent: 14 15: SYMBOL Var { var: Var { frame_id: 2, ty: integer, index: 12 }, type_value: integer(unknown) } -- parent: 16 RULE test_2 - 14: FOR_IN -- hash: 0x68f6d372c2eb9908 -- parent: None + 14: FOR_IN -- hash: 0x3db4dcb0bae6421a -- parent: None 0: CONST integer(0) -- parent: 14 1: CONST integer(1) -- parent: 14 - 13: FOR_IN -- hash: 0xcd944daa44ab7663 -- parent: 14 + 13: FOR_IN -- hash: 0x65136a912add98f3 -- parent: 14 2: CONST integer(0) -- parent: 13 3: CONST integer(1) -- parent: 13 - 12: EQ -- hash: 0x3b6692b7a162389b -- parent: 13 - 10: ADD -- hash: 0xaa6ef31fb0888f3e -- parent: 12 + 12: EQ -- hash: 0xd9a4ade8588e26ce -- parent: 13 + 10: ADD -- hash: 0x9bbcc7ec2223cfaa -- parent: 12 8: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 5 }, type_value: integer(unknown) } -- parent: 10 9: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 5 }, type_value: integer(unknown) } -- parent: 10 11: CONST integer(0) -- parent: 12 diff --git a/lib/src/compiler/ir/tests/testdata/9.no-folding.ir b/lib/src/compiler/ir/tests/testdata/9.no-folding.ir index 6633c6a3..6675f748 100644 --- a/lib/src/compiler/ir/tests/testdata/9.no-folding.ir +++ b/lib/src/compiler/ir/tests/testdata/9.no-folding.ir @@ -1,23 +1,23 @@ RULE test_1 - 11: AND -- hash: 0xc2a770f728278b62 -- parent: None - 0: PATTERN_MATCH PatternIdx(0) -- hash: 0x33ca4b577a0ea8af -- parent: 11 - 5: EQ -- hash: 0xe037667fbed74cb4 -- parent: 11 - 3: PATTERN_COUNT PatternIdx(0) -- hash: 0x2706f00cf1a9933a -- parent: 5 + 11: AND -- hash: 0xa9dc3dca09e2d8b0 -- parent: None + 0: PATTERN_MATCH PatternIdx(0) -- hash: 0xf292d5de83aa2bcc -- parent: 11 + 5: EQ -- hash: 0xdd99fefb5d32d38 -- parent: 11 + 3: PATTERN_COUNT PatternIdx(0) -- hash: 0xc1bc033c6a64ce89 -- parent: 5 4: CONST integer(1) -- parent: 5 - 10: EQ -- hash: 0xfac13fee1024fdba -- parent: 11 - 8: PATTERN_OFFSET PatternIdx(0) -- hash: 0x1a4394c269447dc5 -- parent: 10 + 10: EQ -- hash: 0xb04ffb84093f6ebe -- parent: 11 + 8: PATTERN_OFFSET PatternIdx(0) -- hash: 0x90e5309a511f7146 -- parent: 10 9: CONST integer(0) -- parent: 10 RULE test_2 - 1: PATTERN_MATCH PatternIdx(0) AT -- hash: 0x6c1af84ea5255e33 -- parent: None + 1: PATTERN_MATCH PatternIdx(0) AT -- hash: 0x6be13a949578cdb -- parent: None 0: CONST integer(0) -- parent: 1 RULE test_3 - 6: FOR_OF -- hash: 0x6757d113ddb8b088 -- parent: None - 5: OR -- hash: 0xcc445c4db8b32aa4 -- parent: 6 - 1: PATTERN_MATCH Var { var: Var { frame_id: 1, ty: integer, index: 4 }, type_value: integer(unknown) } AT -- hash: 0xa701186afbdbc10d -- parent: 5 + 6: FOR_OF -- hash: 0xd5f444f76e2c2219 -- parent: None + 5: OR -- hash: 0x1117136e2ccaa933 -- parent: 6 + 1: PATTERN_MATCH Var { var: Var { frame_id: 1, ty: integer, index: 4 }, type_value: integer(unknown) } AT -- hash: 0xc0461abef6f04369 -- parent: 5 0: CONST integer(0) -- parent: 1 - 4: GT -- hash: 0xb49e5d335feb77cf -- parent: 5 - 2: PATTERN_COUNT Var { var: Var { frame_id: 1, ty: integer, index: 4 }, type_value: integer(unknown) } -- hash: 0xd2940cad4d24a56 -- parent: 4 + 4: GT -- hash: 0x27974cd7faddf3ed -- parent: 5 + 2: PATTERN_COUNT Var { var: Var { frame_id: 1, ty: integer, index: 4 }, type_value: integer(unknown) } -- hash: 0x4a5032b534929583 -- parent: 4 3: CONST integer(0) -- parent: 4