@lewin671/python-vm 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -56
- package/README_zh-CN.md +58 -57
- package/dist/common/string-token.d.ts +5 -0
- package/dist/common/string-token.d.ts.map +1 -0
- package/dist/common/string-token.js +23 -0
- package/dist/common/string-token.js.map +1 -0
- package/dist/compiler/cfg_builder.d.ts +48 -0
- package/dist/compiler/cfg_builder.d.ts.map +1 -0
- package/dist/compiler/cfg_builder.js +1462 -0
- package/dist/compiler/cfg_builder.js.map +1 -0
- package/dist/compiler/compiler.d.ts.map +1 -0
- package/dist/compiler/compiler.js +27 -0
- package/dist/compiler/compiler.js.map +1 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/compiler/linearizer.d.ts +7 -0
- package/dist/compiler/linearizer.d.ts.map +1 -0
- package/dist/compiler/linearizer.js +112 -0
- package/dist/compiler/linearizer.js.map +1 -0
- package/dist/compiler/serializer.d.ts +17 -0
- package/dist/compiler/serializer.d.ts.map +1 -0
- package/dist/compiler/serializer.js +70 -0
- package/dist/compiler/serializer.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -8
- package/dist/index.js.map +1 -1
- package/dist/lexer/lexer.d.ts.map +1 -1
- package/dist/lexer/lexer.js +25 -11
- package/dist/lexer/lexer.js.map +1 -1
- package/dist/parser/expressions.d.ts.map +1 -1
- package/dist/parser/expressions.js +5 -2
- package/dist/parser/expressions.js.map +1 -1
- package/dist/parser/parser.js +3 -3
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/statements.d.ts.map +1 -1
- package/dist/parser/statements.js +60 -22
- package/dist/parser/statements.js.map +1 -1
- package/dist/python_compiler.d.ts +32 -0
- package/dist/python_compiler.d.ts.map +1 -0
- package/dist/{compiler.js → python_compiler.js} +19 -6
- package/dist/python_compiler.js.map +1 -0
- package/dist/types/ast.d.ts +286 -44
- package/dist/types/ast.d.ts.map +1 -1
- package/dist/types/ast.js +43 -36
- package/dist/types/ast.js.map +1 -1
- package/dist/types/bytecode.d.ts +106 -21
- package/dist/types/bytecode.d.ts.map +1 -1
- package/dist/types/bytecode.js +111 -23
- package/dist/types/bytecode.js.map +1 -1
- package/dist/types/cfg.d.ts +20 -0
- package/dist/types/cfg.d.ts.map +1 -0
- package/dist/types/cfg.js +3 -0
- package/dist/types/cfg.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/vm/builtins.d.ts.map +1 -1
- package/dist/vm/builtins.js +23 -7
- package/dist/vm/builtins.js.map +1 -1
- package/dist/vm/callable.d.ts +6 -6
- package/dist/vm/callable.d.ts.map +1 -1
- package/dist/vm/callable.js +28 -7
- package/dist/vm/callable.js.map +1 -1
- package/dist/vm/execution-helpers.d.ts +17 -0
- package/dist/vm/execution-helpers.d.ts.map +1 -0
- package/dist/vm/execution-helpers.js +334 -0
- package/dist/vm/execution-helpers.js.map +1 -0
- package/dist/vm/execution.d.ts +4 -12
- package/dist/vm/execution.d.ts.map +1 -1
- package/dist/vm/execution.js +764 -255
- package/dist/vm/execution.js.map +1 -1
- package/dist/vm/expression-generator.d.ts +3 -1
- package/dist/vm/expression-generator.d.ts.map +1 -1
- package/dist/vm/expression-generator.js.map +1 -1
- package/dist/vm/expressions.d.ts +6 -6
- package/dist/vm/expressions.d.ts.map +1 -1
- package/dist/vm/expressions.js +29 -54
- package/dist/vm/expressions.js.map +1 -1
- package/dist/vm/imports.d.ts +4 -4
- package/dist/vm/imports.d.ts.map +1 -1
- package/dist/vm/imports.js.map +1 -1
- package/dist/vm/operations.d.ts +11 -10
- package/dist/vm/operations.d.ts.map +1 -1
- package/dist/vm/operations.js +83 -22
- package/dist/vm/operations.js.map +1 -1
- package/dist/vm/runtime-types.d.ts +64 -26
- package/dist/vm/runtime-types.d.ts.map +1 -1
- package/dist/vm/runtime-types.js +166 -19
- package/dist/vm/runtime-types.js.map +1 -1
- package/dist/vm/statements.d.ts +5 -5
- package/dist/vm/statements.d.ts.map +1 -1
- package/dist/vm/statements.js +95 -10
- package/dist/vm/statements.js.map +1 -1
- package/dist/vm/truthy.d.ts +2 -2
- package/dist/vm/truthy.d.ts.map +1 -1
- package/dist/vm/truthy.js +1 -1
- package/dist/vm/truthy.js.map +1 -1
- package/dist/vm/value-utils.d.ts +23 -25
- package/dist/vm/value-utils.d.ts.map +1 -1
- package/dist/vm/value-utils.js +216 -47
- package/dist/vm/value-utils.js.map +1 -1
- package/dist/vm/vm.d.ts +7 -3
- package/dist/vm/vm.d.ts.map +1 -1
- package/dist/vm/vm.js +3 -0
- package/dist/vm/vm.js.map +1 -1
- package/package.json +3 -3
- package/dist/compiler.d.ts +0 -20
- package/dist/compiler.d.ts.map +0 -1
- package/dist/compiler.js.map +0 -1
- package/dist/compiler_module/compiler.d.ts.map +0 -1
- package/dist/compiler_module/compiler.js +0 -22
- package/dist/compiler_module/compiler.js.map +0 -1
- package/dist/compiler_module/index.d.ts.map +0 -1
- package/dist/compiler_module/index.js.map +0 -1
- /package/dist/{compiler_module → compiler}/compiler.d.ts +0 -0
- /package/dist/{compiler_module → compiler}/index.d.ts +0 -0
- /package/dist/{compiler_module → compiler}/index.js +0 -0
package/dist/types/bytecode.js
CHANGED
|
@@ -1,35 +1,123 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OpCode = void 0;
|
|
3
|
+
exports.CompareOp = exports.OpCode = void 0;
|
|
4
4
|
var OpCode;
|
|
5
5
|
(function (OpCode) {
|
|
6
6
|
// Loading and storing
|
|
7
7
|
OpCode[OpCode["LOAD_CONST"] = 0] = "LOAD_CONST";
|
|
8
8
|
OpCode[OpCode["LOAD_NAME"] = 1] = "LOAD_NAME";
|
|
9
9
|
OpCode[OpCode["STORE_NAME"] = 2] = "STORE_NAME";
|
|
10
|
+
OpCode[OpCode["DELETE_NAME"] = 3] = "DELETE_NAME";
|
|
11
|
+
OpCode[OpCode["LOAD_FAST"] = 4] = "LOAD_FAST";
|
|
12
|
+
OpCode[OpCode["STORE_FAST"] = 5] = "STORE_FAST";
|
|
13
|
+
OpCode[OpCode["DELETE_FAST"] = 6] = "DELETE_FAST";
|
|
14
|
+
OpCode[OpCode["LOAD_GLOBAL"] = 7] = "LOAD_GLOBAL";
|
|
15
|
+
OpCode[OpCode["STORE_GLOBAL"] = 8] = "STORE_GLOBAL";
|
|
16
|
+
OpCode[OpCode["DELETE_GLOBAL"] = 9] = "DELETE_GLOBAL";
|
|
17
|
+
OpCode[OpCode["LOAD_ATTR"] = 10] = "LOAD_ATTR";
|
|
18
|
+
OpCode[OpCode["STORE_ATTR"] = 11] = "STORE_ATTR";
|
|
19
|
+
OpCode[OpCode["DELETE_ATTR"] = 12] = "DELETE_ATTR";
|
|
20
|
+
OpCode[OpCode["LOAD_SUBSCR"] = 13] = "LOAD_SUBSCR";
|
|
21
|
+
OpCode[OpCode["STORE_SUBSCR"] = 14] = "STORE_SUBSCR";
|
|
22
|
+
OpCode[OpCode["DELETE_SUBSCR"] = 15] = "DELETE_SUBSCR";
|
|
23
|
+
// Stack operations
|
|
24
|
+
OpCode[OpCode["POP_TOP"] = 16] = "POP_TOP";
|
|
25
|
+
OpCode[OpCode["DUP_TOP"] = 17] = "DUP_TOP";
|
|
26
|
+
OpCode[OpCode["DUP_TOP_TWO"] = 18] = "DUP_TOP_TWO";
|
|
27
|
+
OpCode[OpCode["ROT_TWO"] = 19] = "ROT_TWO";
|
|
28
|
+
OpCode[OpCode["ROT_THREE"] = 20] = "ROT_THREE";
|
|
10
29
|
// Binary operations
|
|
11
|
-
OpCode[OpCode["BINARY_ADD"] =
|
|
12
|
-
OpCode[OpCode["BINARY_SUBTRACT"] =
|
|
13
|
-
OpCode[OpCode["BINARY_MULTIPLY"] =
|
|
14
|
-
OpCode[OpCode["BINARY_DIVIDE"] =
|
|
15
|
-
OpCode[OpCode["
|
|
16
|
-
OpCode[OpCode["
|
|
30
|
+
OpCode[OpCode["BINARY_ADD"] = 21] = "BINARY_ADD";
|
|
31
|
+
OpCode[OpCode["BINARY_SUBTRACT"] = 22] = "BINARY_SUBTRACT";
|
|
32
|
+
OpCode[OpCode["BINARY_MULTIPLY"] = 23] = "BINARY_MULTIPLY";
|
|
33
|
+
OpCode[OpCode["BINARY_DIVIDE"] = 24] = "BINARY_DIVIDE";
|
|
34
|
+
OpCode[OpCode["BINARY_FLOOR_DIVIDE"] = 25] = "BINARY_FLOOR_DIVIDE";
|
|
35
|
+
OpCode[OpCode["BINARY_MODULO"] = 26] = "BINARY_MODULO";
|
|
36
|
+
OpCode[OpCode["BINARY_POWER"] = 27] = "BINARY_POWER";
|
|
37
|
+
OpCode[OpCode["BINARY_LSHIFT"] = 28] = "BINARY_LSHIFT";
|
|
38
|
+
OpCode[OpCode["BINARY_RSHIFT"] = 29] = "BINARY_RSHIFT";
|
|
39
|
+
OpCode[OpCode["BINARY_AND"] = 30] = "BINARY_AND";
|
|
40
|
+
OpCode[OpCode["BINARY_XOR"] = 31] = "BINARY_XOR";
|
|
41
|
+
OpCode[OpCode["BINARY_OR"] = 32] = "BINARY_OR";
|
|
42
|
+
// In-place operations
|
|
43
|
+
OpCode[OpCode["INPLACE_ADD"] = 33] = "INPLACE_ADD";
|
|
44
|
+
OpCode[OpCode["INPLACE_SUBTRACT"] = 34] = "INPLACE_SUBTRACT";
|
|
45
|
+
OpCode[OpCode["INPLACE_MULTIPLY"] = 35] = "INPLACE_MULTIPLY";
|
|
46
|
+
OpCode[OpCode["INPLACE_DIVIDE"] = 36] = "INPLACE_DIVIDE";
|
|
47
|
+
OpCode[OpCode["INPLACE_FLOOR_DIVIDE"] = 37] = "INPLACE_FLOOR_DIVIDE";
|
|
48
|
+
OpCode[OpCode["INPLACE_MODULO"] = 38] = "INPLACE_MODULO";
|
|
49
|
+
OpCode[OpCode["INPLACE_POWER"] = 39] = "INPLACE_POWER";
|
|
50
|
+
OpCode[OpCode["INPLACE_LSHIFT"] = 40] = "INPLACE_LSHIFT";
|
|
51
|
+
OpCode[OpCode["INPLACE_RSHIFT"] = 41] = "INPLACE_RSHIFT";
|
|
52
|
+
OpCode[OpCode["INPLACE_AND"] = 42] = "INPLACE_AND";
|
|
53
|
+
OpCode[OpCode["INPLACE_XOR"] = 43] = "INPLACE_XOR";
|
|
54
|
+
OpCode[OpCode["INPLACE_OR"] = 44] = "INPLACE_OR";
|
|
55
|
+
// Unary operations
|
|
56
|
+
OpCode[OpCode["UNARY_POSITIVE"] = 45] = "UNARY_POSITIVE";
|
|
57
|
+
OpCode[OpCode["UNARY_NEGATIVE"] = 46] = "UNARY_NEGATIVE";
|
|
58
|
+
OpCode[OpCode["UNARY_NOT"] = 47] = "UNARY_NOT";
|
|
59
|
+
OpCode[OpCode["UNARY_INVERT"] = 48] = "UNARY_INVERT";
|
|
17
60
|
// Comparison operations
|
|
18
|
-
OpCode[OpCode["
|
|
19
|
-
|
|
20
|
-
OpCode[OpCode["
|
|
21
|
-
OpCode[OpCode["
|
|
22
|
-
OpCode[OpCode["
|
|
23
|
-
OpCode[OpCode["
|
|
24
|
-
|
|
25
|
-
OpCode[OpCode["
|
|
26
|
-
|
|
27
|
-
OpCode[OpCode["
|
|
28
|
-
|
|
29
|
-
OpCode[OpCode["
|
|
30
|
-
OpCode[OpCode["
|
|
31
|
-
|
|
32
|
-
OpCode[OpCode["
|
|
33
|
-
OpCode[OpCode["
|
|
61
|
+
OpCode[OpCode["COMPARE_OP"] = 49] = "COMPARE_OP";
|
|
62
|
+
// Jump operations
|
|
63
|
+
OpCode[OpCode["JUMP_FORWARD"] = 50] = "JUMP_FORWARD";
|
|
64
|
+
OpCode[OpCode["JUMP_ABSOLUTE"] = 51] = "JUMP_ABSOLUTE";
|
|
65
|
+
OpCode[OpCode["POP_JUMP_IF_FALSE"] = 52] = "POP_JUMP_IF_FALSE";
|
|
66
|
+
OpCode[OpCode["POP_JUMP_IF_TRUE"] = 53] = "POP_JUMP_IF_TRUE";
|
|
67
|
+
OpCode[OpCode["JUMP_IF_FALSE_OR_POP"] = 54] = "JUMP_IF_FALSE_OR_POP";
|
|
68
|
+
OpCode[OpCode["JUMP_IF_TRUE_OR_POP"] = 55] = "JUMP_IF_TRUE_OR_POP";
|
|
69
|
+
// Collection literals
|
|
70
|
+
OpCode[OpCode["BUILD_LIST"] = 56] = "BUILD_LIST";
|
|
71
|
+
OpCode[OpCode["BUILD_TUPLE"] = 57] = "BUILD_TUPLE";
|
|
72
|
+
OpCode[OpCode["BUILD_SET"] = 58] = "BUILD_SET";
|
|
73
|
+
OpCode[OpCode["BUILD_MAP"] = 59] = "BUILD_MAP";
|
|
74
|
+
OpCode[OpCode["BUILD_SLICE"] = 60] = "BUILD_SLICE";
|
|
75
|
+
OpCode[OpCode["UNPACK_SEQUENCE"] = 61] = "UNPACK_SEQUENCE";
|
|
76
|
+
OpCode[OpCode["UNPACK_EX"] = 62] = "UNPACK_EX";
|
|
77
|
+
OpCode[OpCode["BUILD_CONST_KEY_MAP"] = 63] = "BUILD_CONST_KEY_MAP";
|
|
78
|
+
// Container operations
|
|
79
|
+
OpCode[OpCode["LIST_APPEND"] = 64] = "LIST_APPEND";
|
|
80
|
+
OpCode[OpCode["SET_ADD"] = 65] = "SET_ADD";
|
|
81
|
+
OpCode[OpCode["MAP_ADD"] = 66] = "MAP_ADD";
|
|
82
|
+
// Function calls and returns
|
|
83
|
+
OpCode[OpCode["CALL_FUNCTION"] = 67] = "CALL_FUNCTION";
|
|
84
|
+
OpCode[OpCode["CALL_FUNCTION_KW"] = 68] = "CALL_FUNCTION_KW";
|
|
85
|
+
OpCode[OpCode["CALL_FUNCTION_EX"] = 69] = "CALL_FUNCTION_EX";
|
|
86
|
+
OpCode[OpCode["MAKE_FUNCTION"] = 70] = "MAKE_FUNCTION";
|
|
87
|
+
OpCode[OpCode["RETURN_VALUE"] = 71] = "RETURN_VALUE";
|
|
88
|
+
OpCode[OpCode["YIELD_VALUE"] = 72] = "YIELD_VALUE";
|
|
89
|
+
// Iterators
|
|
90
|
+
OpCode[OpCode["GET_ITER"] = 73] = "GET_ITER";
|
|
91
|
+
OpCode[OpCode["FOR_ITER"] = 74] = "FOR_ITER";
|
|
92
|
+
// Exceptions and Context Managers
|
|
93
|
+
OpCode[OpCode["SETUP_FINALLY"] = 75] = "SETUP_FINALLY";
|
|
94
|
+
OpCode[OpCode["SETUP_WITH"] = 76] = "SETUP_WITH";
|
|
95
|
+
OpCode[OpCode["WITH_EXCEPT_START"] = 77] = "WITH_EXCEPT_START";
|
|
96
|
+
OpCode[OpCode["POP_BLOCK"] = 78] = "POP_BLOCK";
|
|
97
|
+
OpCode[OpCode["RAISE_VARARGS"] = 79] = "RAISE_VARARGS";
|
|
98
|
+
// Imports
|
|
99
|
+
OpCode[OpCode["IMPORT_NAME"] = 80] = "IMPORT_NAME";
|
|
100
|
+
OpCode[OpCode["IMPORT_FROM"] = 81] = "IMPORT_FROM";
|
|
101
|
+
OpCode[OpCode["IMPORT_STAR"] = 82] = "IMPORT_STAR";
|
|
102
|
+
// Classes
|
|
103
|
+
OpCode[OpCode["LOAD_BUILD_CLASS"] = 83] = "LOAD_BUILD_CLASS";
|
|
104
|
+
// Print (Legacy/Helper)
|
|
105
|
+
OpCode[OpCode["PRINT_ITEM"] = 84] = "PRINT_ITEM";
|
|
106
|
+
OpCode[OpCode["PRINT_NEWLINE"] = 85] = "PRINT_NEWLINE";
|
|
107
|
+
// Internal helpers
|
|
108
|
+
OpCode[OpCode["EVAL_AST"] = 86] = "EVAL_AST";
|
|
34
109
|
})(OpCode || (exports.OpCode = OpCode = {}));
|
|
110
|
+
var CompareOp;
|
|
111
|
+
(function (CompareOp) {
|
|
112
|
+
CompareOp[CompareOp["LT"] = 0] = "LT";
|
|
113
|
+
CompareOp[CompareOp["LE"] = 1] = "LE";
|
|
114
|
+
CompareOp[CompareOp["EQ"] = 2] = "EQ";
|
|
115
|
+
CompareOp[CompareOp["NE"] = 3] = "NE";
|
|
116
|
+
CompareOp[CompareOp["GT"] = 4] = "GT";
|
|
117
|
+
CompareOp[CompareOp["GE"] = 5] = "GE";
|
|
118
|
+
CompareOp[CompareOp["IN"] = 6] = "IN";
|
|
119
|
+
CompareOp[CompareOp["NOT_IN"] = 7] = "NOT_IN";
|
|
120
|
+
CompareOp[CompareOp["IS"] = 8] = "IS";
|
|
121
|
+
CompareOp[CompareOp["IS_NOT"] = 9] = "IS_NOT";
|
|
122
|
+
})(CompareOp || (exports.CompareOp = CompareOp = {}));
|
|
35
123
|
//# sourceMappingURL=bytecode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytecode.js","sourceRoot":"","sources":["../../src/types/bytecode.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"bytecode.js","sourceRoot":"","sources":["../../src/types/bytecode.ts"],"names":[],"mappings":";;;AAwBA,IAAY,MA2HX;AA3HD,WAAY,MAAM;IAChB,sBAAsB;IACtB,+CAAU,CAAA;IACV,6CAAS,CAAA;IACT,+CAAU,CAAA;IACV,iDAAW,CAAA;IAEX,6CAAS,CAAA;IACT,+CAAU,CAAA;IACV,iDAAW,CAAA;IAEX,iDAAW,CAAA;IACX,mDAAY,CAAA;IACZ,qDAAa,CAAA;IAEb,8CAAS,CAAA;IACT,gDAAU,CAAA;IACV,kDAAW,CAAA;IAEX,kDAAW,CAAA;IACX,oDAAY,CAAA;IACZ,sDAAa,CAAA;IAEb,mBAAmB;IACnB,0CAAO,CAAA;IACP,0CAAO,CAAA;IACP,kDAAW,CAAA;IACX,0CAAO,CAAA;IACP,8CAAS,CAAA;IAET,oBAAoB;IACpB,gDAAU,CAAA;IACV,0DAAe,CAAA;IACf,0DAAe,CAAA;IACf,sDAAa,CAAA;IACb,kEAAmB,CAAA;IACnB,sDAAa,CAAA;IACb,oDAAY,CAAA;IACZ,sDAAa,CAAA;IACb,sDAAa,CAAA;IACb,gDAAU,CAAA;IACV,gDAAU,CAAA;IACV,8CAAS,CAAA;IAET,sBAAsB;IACtB,kDAAW,CAAA;IACX,4DAAgB,CAAA;IAChB,4DAAgB,CAAA;IAChB,wDAAc,CAAA;IACd,oEAAoB,CAAA;IACpB,wDAAc,CAAA;IACd,sDAAa,CAAA;IACb,wDAAc,CAAA;IACd,wDAAc,CAAA;IACd,kDAAW,CAAA;IACX,kDAAW,CAAA;IACX,gDAAU,CAAA;IAEV,mBAAmB;IACnB,wDAAc,CAAA;IACd,wDAAc,CAAA;IACd,8CAAS,CAAA;IACT,oDAAY,CAAA;IAEZ,wBAAwB;IACxB,gDAAU,CAAA;IAEV,kBAAkB;IAClB,oDAAY,CAAA;IACZ,sDAAa,CAAA;IACb,8DAAiB,CAAA;IACjB,4DAAgB,CAAA;IAChB,oEAAoB,CAAA;IACpB,kEAAmB,CAAA;IAEnB,sBAAsB;IACtB,gDAAU,CAAA;IACV,kDAAW,CAAA;IACX,8CAAS,CAAA;IACT,8CAAS,CAAA;IACT,kDAAW,CAAA;IACX,0DAAe,CAAA;IACf,8CAAS,CAAA;IACT,kEAAmB,CAAA;IAEnB,uBAAuB;IACvB,kDAAW,CAAA;IACX,0CAAO,CAAA;IACP,0CAAO,CAAA;IAEP,6BAA6B;IAC7B,sDAAa,CAAA;IACb,4DAAgB,CAAA;IAChB,4DAAgB,CAAA;IAChB,sDAAa,CAAA;IACb,oDAAY,CAAA;IACZ,kDAAW,CAAA;IAEX,YAAY;IACZ,4CAAQ,CAAA;IACR,4CAAQ,CAAA;IAER,kCAAkC;IAClC,sDAAa,CAAA;IACb,gDAAU,CAAA;IACV,8DAAiB,CAAA;IACjB,8CAAS,CAAA;IACT,sDAAa,CAAA;IAEb,UAAU;IACV,kDAAW,CAAA;IACX,kDAAW,CAAA;IACX,kDAAW,CAAA;IAEX,UAAU;IACV,4DAAgB,CAAA;IAEhB,wBAAwB;IACxB,gDAAU,CAAA;IACV,sDAAa,CAAA;IAEb,mBAAmB;IACnB,4CAAQ,CAAA;AACV,CAAC,EA3HW,MAAM,sBAAN,MAAM,QA2HjB;AAED,IAAY,SAWX;AAXD,WAAY,SAAS;IACnB,qCAAM,CAAA;IACN,qCAAM,CAAA;IACN,qCAAM,CAAA;IACN,qCAAM,CAAA;IACN,qCAAM,CAAA;IACN,qCAAM,CAAA;IACN,qCAAM,CAAA;IACN,6CAAU,CAAA;IACV,qCAAM,CAAA;IACN,6CAAU,CAAA;AACZ,CAAC,EAXW,SAAS,yBAAT,SAAS,QAWpB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Instruction } from './bytecode';
|
|
2
|
+
/**
|
|
3
|
+
* 控制流图 (CFG) 相关类型定义
|
|
4
|
+
*/
|
|
5
|
+
export interface BasicBlock {
|
|
6
|
+
id: number;
|
|
7
|
+
instructions: Instruction[];
|
|
8
|
+
next?: BasicBlock;
|
|
9
|
+
jumpTarget?: BasicBlock;
|
|
10
|
+
jumpCondition?: 'if_true' | 'if_false' | 'always' | 'if_false_or_pop' | 'if_true_or_pop';
|
|
11
|
+
exceptionTarget?: BasicBlock;
|
|
12
|
+
isProcessed?: boolean;
|
|
13
|
+
reachable?: boolean;
|
|
14
|
+
offset?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface CFG {
|
|
17
|
+
entry: BasicBlock;
|
|
18
|
+
blocks: BasicBlock[];
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=cfg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cfg.d.ts","sourceRoot":"","sources":["../../src/types/cfg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;GAEG;AAEH,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;IAIzF,eAAe,CAAC,EAAE,UAAU,CAAC;IAG7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,GAAG;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cfg.js","sourceRoot":"","sources":["../../src/types/cfg.ts"],"names":[],"mappings":""}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC"}
|
package/dist/types/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./token"), exports);
|
|
18
18
|
__exportStar(require("./ast"), exports);
|
|
19
19
|
__exportStar(require("./bytecode"), exports);
|
|
20
|
+
__exportStar(require("./cfg"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,wCAAsB;AACtB,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,wCAAsB;AACtB,6CAA2B;AAC3B,wCAAsB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/vm/builtins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/vm/builtins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAiF,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGvH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,QAsPjE"}
|
package/dist/vm/builtins.js
CHANGED
|
@@ -24,7 +24,7 @@ function installBuiltins(scope) {
|
|
|
24
24
|
builtins.set('len', (value) => {
|
|
25
25
|
if (typeof value === 'string' || Array.isArray(value))
|
|
26
26
|
return value.length;
|
|
27
|
-
if (value instanceof runtime_types_1.PyDict || value instanceof
|
|
27
|
+
if (value instanceof runtime_types_1.PyDict || value instanceof runtime_types_1.PySet)
|
|
28
28
|
return value.size;
|
|
29
29
|
throw new runtime_types_1.PyException('TypeError', 'object has no len()');
|
|
30
30
|
});
|
|
@@ -60,7 +60,7 @@ function installBuiltins(scope) {
|
|
|
60
60
|
const listFn = (value) => {
|
|
61
61
|
if (Array.isArray(value))
|
|
62
62
|
return [...value];
|
|
63
|
-
if (value instanceof
|
|
63
|
+
if (value instanceof runtime_types_1.PySet)
|
|
64
64
|
return Array.from(value.values());
|
|
65
65
|
if (value && typeof value[Symbol.iterator] === 'function')
|
|
66
66
|
return Array.from(value);
|
|
@@ -76,13 +76,13 @@ function installBuiltins(scope) {
|
|
|
76
76
|
tupleFn.__typeName__ = 'tuple';
|
|
77
77
|
builtins.set('tuple', tupleFn);
|
|
78
78
|
const setFn = (value) => {
|
|
79
|
-
if (value instanceof
|
|
80
|
-
return new
|
|
79
|
+
if (value instanceof runtime_types_1.PySet)
|
|
80
|
+
return new runtime_types_1.PySet(value);
|
|
81
81
|
if (Array.isArray(value))
|
|
82
|
-
return new
|
|
82
|
+
return new runtime_types_1.PySet(value);
|
|
83
83
|
if (value && typeof value[Symbol.iterator] === 'function')
|
|
84
|
-
return new
|
|
85
|
-
return new
|
|
84
|
+
return new runtime_types_1.PySet(Array.from(value));
|
|
85
|
+
return new runtime_types_1.PySet();
|
|
86
86
|
};
|
|
87
87
|
setFn.__typeName__ = 'set';
|
|
88
88
|
builtins.set('set', setFn);
|
|
@@ -187,7 +187,17 @@ function installBuiltins(scope) {
|
|
|
187
187
|
boolFn.__typeName__ = 'bool';
|
|
188
188
|
builtins.set('bool', boolFn);
|
|
189
189
|
builtins.set('type', (value) => ({ __typeName__: (0, value_utils_1.pyTypeName)(value) }));
|
|
190
|
+
const isSubclass = (klass, target) => {
|
|
191
|
+
if (klass === target)
|
|
192
|
+
return true;
|
|
193
|
+
return klass.bases.some((base) => isSubclass(base, target));
|
|
194
|
+
};
|
|
190
195
|
builtins.set('isinstance', (value, typeObj) => {
|
|
196
|
+
if (typeObj instanceof runtime_types_1.PyClass) {
|
|
197
|
+
if (value instanceof runtime_types_1.PyInstance)
|
|
198
|
+
return isSubclass(value.klass, typeObj);
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
191
201
|
if (typeObj && typeObj.__typeName__) {
|
|
192
202
|
return (0, value_utils_1.pyTypeName)(value) === typeObj.__typeName__;
|
|
193
203
|
}
|
|
@@ -260,10 +270,16 @@ function installBuiltins(scope) {
|
|
|
260
270
|
const ExceptionBase = exceptionClass('Exception');
|
|
261
271
|
builtins.set('Exception', ExceptionBase);
|
|
262
272
|
builtins.set('AssertionError', exceptionClass('AssertionError', ExceptionBase));
|
|
273
|
+
builtins.set('AttributeError', exceptionClass('AttributeError', ExceptionBase));
|
|
274
|
+
const NameErrorBase = exceptionClass('NameError', ExceptionBase);
|
|
275
|
+
builtins.set('NameError', NameErrorBase);
|
|
276
|
+
builtins.set('UnboundLocalError', exceptionClass('UnboundLocalError', NameErrorBase));
|
|
263
277
|
builtins.set('ZeroDivisionError', exceptionClass('ZeroDivisionError', ExceptionBase));
|
|
264
278
|
builtins.set('ValueError', exceptionClass('ValueError', ExceptionBase));
|
|
265
279
|
builtins.set('TypeError', exceptionClass('TypeError', ExceptionBase));
|
|
266
280
|
builtins.set('FileNotFoundError', exceptionClass('FileNotFoundError', ExceptionBase));
|
|
281
|
+
builtins.set('StopIteration', exceptionClass('StopIteration', ExceptionBase));
|
|
267
282
|
scope.values = new Map([...builtins.entries()]);
|
|
283
|
+
// console.log('Installed builtins:', Array.from(scope.values.keys()));
|
|
268
284
|
}
|
|
269
285
|
//# sourceMappingURL=builtins.js.map
|
package/dist/vm/builtins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/vm/builtins.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/vm/builtins.ts"],"names":[],"mappings":"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"}
|
package/dist/vm/callable.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { VirtualMachine } from './vm';
|
|
2
|
-
import { Scope } from './runtime-types';
|
|
3
|
-
export declare function callFunction(this: VirtualMachine, func:
|
|
4
|
-
export declare function containsYield(this: VirtualMachine, body:
|
|
5
|
-
export declare function evaluateComprehension(this: VirtualMachine, node:
|
|
6
|
-
export declare function generateComprehension(this: VirtualMachine, node:
|
|
7
|
-
export declare function expressionHasYield(this: VirtualMachine, node:
|
|
2
|
+
import { PyValue, Scope } from './runtime-types';
|
|
3
|
+
export declare function callFunction(this: VirtualMachine, func: PyValue, args: PyValue[], scope: Scope, kwargs?: Record<string, PyValue>): PyValue;
|
|
4
|
+
export declare function containsYield(this: VirtualMachine, body: PyValue[]): boolean;
|
|
5
|
+
export declare function evaluateComprehension(this: VirtualMachine, node: PyValue, scope: Scope, emit: () => void, outerScope?: Scope): void;
|
|
6
|
+
export declare function generateComprehension(this: VirtualMachine, node: PyValue, scope: Scope, valueFactory: () => PyValue, outerScope?: Scope): Generator<PyValue, PyValue>;
|
|
7
|
+
export declare function expressionHasYield(this: VirtualMachine, node: PyValue): boolean;
|
|
8
8
|
//# sourceMappingURL=callable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callable.d.ts","sourceRoot":"","sources":["../../src/vm/callable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE3C,OAAO,EAAmF,KAAK,
|
|
1
|
+
{"version":3,"file":"callable.d.ts","sourceRoot":"","sources":["../../src/vm/callable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAmF,KAAK,EAAS,MAAM,iBAAiB,CAAC;AAEzI,wBAAgB,YAAY,CAC1B,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EAAE,EACf,KAAK,EAAE,KAAK,EACZ,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,OAAO,CAoFT;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAQ5E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,UAAU,CAAC,EAAE,KAAK,QAoB5H;AAED,wBAAiB,qBAAqB,CACpC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,OAAO,EAC3B,UAAU,CAAC,EAAE,KAAK,GACjB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAyB7B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAc/E"}
|
package/dist/vm/callable.js
CHANGED
|
@@ -8,11 +8,21 @@ exports.expressionHasYield = expressionHasYield;
|
|
|
8
8
|
const types_1 = require("../types");
|
|
9
9
|
const runtime_types_1 = require("./runtime-types");
|
|
10
10
|
function callFunction(func, args, scope, kwargs = {}) {
|
|
11
|
+
// console.log('Calling', func, 'with', args);
|
|
11
12
|
if (!kwargs) {
|
|
12
13
|
kwargs = {};
|
|
13
14
|
}
|
|
14
15
|
if (func instanceof runtime_types_1.PyFunction) {
|
|
15
16
|
const callScope = new runtime_types_1.Scope(func.closure);
|
|
17
|
+
callScope.locals = new Set(func.localNames);
|
|
18
|
+
if (func.bytecode) {
|
|
19
|
+
if (func.bytecode.globals) {
|
|
20
|
+
func.bytecode.globals.forEach((g) => callScope.globals.add(g));
|
|
21
|
+
}
|
|
22
|
+
if (func.bytecode.nonlocals) {
|
|
23
|
+
func.bytecode.nonlocals.forEach((n) => callScope.nonlocals.add(n));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
16
26
|
for (const param of func.params) {
|
|
17
27
|
if (param.type === 'Param') {
|
|
18
28
|
let argValue;
|
|
@@ -54,6 +64,14 @@ function callFunction(func, args, scope, kwargs = {}) {
|
|
|
54
64
|
const iterator = this.executeBlockGenerator(func.body, callScope);
|
|
55
65
|
return new runtime_types_1.PyGenerator(iterator);
|
|
56
66
|
}
|
|
67
|
+
if (func.bytecode && func.bytecode.instructions) {
|
|
68
|
+
const frame = new runtime_types_1.Frame(func.bytecode, callScope);
|
|
69
|
+
for (let i = 0; i < (func.bytecode.argcount || 0); i++) {
|
|
70
|
+
const varname = func.bytecode.varnames[i];
|
|
71
|
+
frame.locals[i] = callScope.values.get(varname);
|
|
72
|
+
}
|
|
73
|
+
return this.executeFrame(frame);
|
|
74
|
+
}
|
|
57
75
|
const result = this.executeBlock(func.body, callScope);
|
|
58
76
|
return result;
|
|
59
77
|
}
|
|
@@ -95,7 +113,7 @@ function containsYield(body) {
|
|
|
95
113
|
}
|
|
96
114
|
return false;
|
|
97
115
|
}
|
|
98
|
-
function evaluateComprehension(node, scope, emit) {
|
|
116
|
+
function evaluateComprehension(node, scope, emit, outerScope) {
|
|
99
117
|
const clauses = node.clauses || [];
|
|
100
118
|
const walk = (index) => {
|
|
101
119
|
if (index >= clauses.length) {
|
|
@@ -103,7 +121,8 @@ function evaluateComprehension(node, scope, emit) {
|
|
|
103
121
|
return;
|
|
104
122
|
}
|
|
105
123
|
const clause = clauses[index];
|
|
106
|
-
const
|
|
124
|
+
const iterScope = (index === 0 && outerScope) ? outerScope : scope;
|
|
125
|
+
const iterable = this.evaluateExpression(clause.iter, iterScope);
|
|
107
126
|
const items = Array.isArray(iterable) ? iterable : Array.from(iterable);
|
|
108
127
|
for (const item of items) {
|
|
109
128
|
this.assignTarget(clause.target, item, scope);
|
|
@@ -115,21 +134,23 @@ function evaluateComprehension(node, scope, emit) {
|
|
|
115
134
|
};
|
|
116
135
|
walk(0);
|
|
117
136
|
}
|
|
118
|
-
function* generateComprehension(node, scope, valueFactory) {
|
|
137
|
+
function* generateComprehension(node, scope, valueFactory, outerScope) {
|
|
119
138
|
const clauses = node.clauses || [];
|
|
139
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
140
|
+
const vm = this;
|
|
120
141
|
const walk = (index) => {
|
|
121
|
-
const self = this;
|
|
122
142
|
return (function* () {
|
|
123
143
|
if (index >= clauses.length) {
|
|
124
144
|
yield valueFactory();
|
|
125
145
|
return;
|
|
126
146
|
}
|
|
127
147
|
const clause = clauses[index];
|
|
128
|
-
const
|
|
148
|
+
const iterScope = (index === 0 && outerScope) ? outerScope : scope;
|
|
149
|
+
const iterable = vm.evaluateExpression(clause.iter, iterScope);
|
|
129
150
|
const items = Array.isArray(iterable) ? iterable : Array.from(iterable);
|
|
130
151
|
for (const item of items) {
|
|
131
|
-
|
|
132
|
-
const passes = clause.ifs.every((cond) =>
|
|
152
|
+
vm.assignTarget(clause.target, item, scope);
|
|
153
|
+
const passes = clause.ifs.every((cond) => vm.isTruthy(vm.evaluateExpression(cond, scope), scope));
|
|
133
154
|
if (passes) {
|
|
134
155
|
yield* walk(index + 1);
|
|
135
156
|
}
|
package/dist/vm/callable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callable.js","sourceRoot":"","sources":["../../src/vm/callable.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"callable.js","sourceRoot":"","sources":["../../src/vm/callable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { VirtualMachine } from './vm';
|
|
2
|
+
import { CompareOp } from '../types';
|
|
3
|
+
import { PyValue, Scope } from './runtime-types';
|
|
4
|
+
export declare function applyCompare(this: VirtualMachine, op: CompareOp, a: PyValue, b: PyValue): boolean;
|
|
5
|
+
export declare function iterableToArray(this: VirtualMachine, iterable: PyValue): PyValue[];
|
|
6
|
+
export declare function matchValueEquals(left: PyValue, right: PyValue): boolean;
|
|
7
|
+
export declare function applyBindings(bindings: Map<string, PyValue>, scope: Scope): void;
|
|
8
|
+
export declare function matchPattern(this: VirtualMachine, node: PyValue, value: PyValue, scope: Scope): {
|
|
9
|
+
matched: boolean;
|
|
10
|
+
bindings: Map<string, PyValue>;
|
|
11
|
+
};
|
|
12
|
+
export declare function evaluateExpression(this: VirtualMachine, _node: PyValue, _scope: Scope): PyValue;
|
|
13
|
+
export declare function executeStatement(this: VirtualMachine, _node: PyValue, _scope: Scope): PyValue;
|
|
14
|
+
export declare function executeBlockGenerator(this: VirtualMachine, body: PyValue[], scope: Scope): Generator<PyValue, PyValue>;
|
|
15
|
+
export declare function executeStatementGenerator(this: VirtualMachine, node: PyValue, scope: Scope): Generator<PyValue, PyValue>;
|
|
16
|
+
export declare function executeBlock(this: VirtualMachine, _body: PyValue[], _scope: Scope): PyValue;
|
|
17
|
+
//# sourceMappingURL=execution-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-helpers.d.ts","sourceRoot":"","sources":["../../src/vm/execution-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAe,SAAS,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,OAAO,EAA8F,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7I,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAyBjG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,EAAE,CAMlF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAgBvE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAIhF;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,KAAK,GACX;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAoCtD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO,CAE/F;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO,CAE7F;AAED,wBAAiB,qBAAqB,CACpC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,OAAO,EAAE,EACf,KAAK,EAAE,KAAK,GACX,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAK7B;AAED,wBAAiB,yBAAyB,CACxC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,KAAK,GACX,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CA+L7B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO,CAM3F"}
|