@lewin671/python-vm 0.1.1 → 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.
Files changed (119) hide show
  1. package/README.md +58 -57
  2. package/README_zh-CN.md +58 -57
  3. package/dist/common/string-token.d.ts +5 -0
  4. package/dist/common/string-token.d.ts.map +1 -0
  5. package/dist/common/string-token.js +23 -0
  6. package/dist/common/string-token.js.map +1 -0
  7. package/dist/compiler/cfg_builder.d.ts +48 -0
  8. package/dist/compiler/cfg_builder.d.ts.map +1 -0
  9. package/dist/compiler/cfg_builder.js +1462 -0
  10. package/dist/compiler/cfg_builder.js.map +1 -0
  11. package/dist/compiler/compiler.d.ts.map +1 -0
  12. package/dist/compiler/compiler.js +27 -0
  13. package/dist/compiler/compiler.js.map +1 -0
  14. package/dist/compiler/index.d.ts.map +1 -0
  15. package/dist/compiler/index.js.map +1 -0
  16. package/dist/compiler/linearizer.d.ts +7 -0
  17. package/dist/compiler/linearizer.d.ts.map +1 -0
  18. package/dist/compiler/linearizer.js +112 -0
  19. package/dist/compiler/linearizer.js.map +1 -0
  20. package/dist/compiler/serializer.d.ts +17 -0
  21. package/dist/compiler/serializer.d.ts.map +1 -0
  22. package/dist/compiler/serializer.js +70 -0
  23. package/dist/compiler/serializer.js.map +1 -0
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +58 -8
  27. package/dist/index.js.map +1 -1
  28. package/dist/lexer/lexer.d.ts.map +1 -1
  29. package/dist/lexer/lexer.js +25 -11
  30. package/dist/lexer/lexer.js.map +1 -1
  31. package/dist/parser/expressions.d.ts.map +1 -1
  32. package/dist/parser/expressions.js +5 -2
  33. package/dist/parser/expressions.js.map +1 -1
  34. package/dist/parser/parser.js +3 -3
  35. package/dist/parser/parser.js.map +1 -1
  36. package/dist/parser/statements.d.ts.map +1 -1
  37. package/dist/parser/statements.js +60 -22
  38. package/dist/parser/statements.js.map +1 -1
  39. package/dist/python_compiler.d.ts +32 -0
  40. package/dist/python_compiler.d.ts.map +1 -0
  41. package/dist/{compiler.js → python_compiler.js} +19 -6
  42. package/dist/python_compiler.js.map +1 -0
  43. package/dist/types/ast.d.ts +286 -44
  44. package/dist/types/ast.d.ts.map +1 -1
  45. package/dist/types/ast.js +43 -36
  46. package/dist/types/ast.js.map +1 -1
  47. package/dist/types/bytecode.d.ts +106 -21
  48. package/dist/types/bytecode.d.ts.map +1 -1
  49. package/dist/types/bytecode.js +111 -23
  50. package/dist/types/bytecode.js.map +1 -1
  51. package/dist/types/cfg.d.ts +20 -0
  52. package/dist/types/cfg.d.ts.map +1 -0
  53. package/dist/types/cfg.js +3 -0
  54. package/dist/types/cfg.js.map +1 -0
  55. package/dist/types/index.d.ts +1 -0
  56. package/dist/types/index.d.ts.map +1 -1
  57. package/dist/types/index.js +1 -0
  58. package/dist/types/index.js.map +1 -1
  59. package/dist/vm/builtins.d.ts.map +1 -1
  60. package/dist/vm/builtins.js +23 -7
  61. package/dist/vm/builtins.js.map +1 -1
  62. package/dist/vm/callable.d.ts +6 -6
  63. package/dist/vm/callable.d.ts.map +1 -1
  64. package/dist/vm/callable.js +28 -7
  65. package/dist/vm/callable.js.map +1 -1
  66. package/dist/vm/execution-helpers.d.ts +17 -0
  67. package/dist/vm/execution-helpers.d.ts.map +1 -0
  68. package/dist/vm/execution-helpers.js +334 -0
  69. package/dist/vm/execution-helpers.js.map +1 -0
  70. package/dist/vm/execution.d.ts +4 -12
  71. package/dist/vm/execution.d.ts.map +1 -1
  72. package/dist/vm/execution.js +764 -255
  73. package/dist/vm/execution.js.map +1 -1
  74. package/dist/vm/expression-generator.d.ts +3 -1
  75. package/dist/vm/expression-generator.d.ts.map +1 -1
  76. package/dist/vm/expression-generator.js.map +1 -1
  77. package/dist/vm/expressions.d.ts +6 -6
  78. package/dist/vm/expressions.d.ts.map +1 -1
  79. package/dist/vm/expressions.js +29 -54
  80. package/dist/vm/expressions.js.map +1 -1
  81. package/dist/vm/imports.d.ts +4 -4
  82. package/dist/vm/imports.d.ts.map +1 -1
  83. package/dist/vm/imports.js.map +1 -1
  84. package/dist/vm/operations.d.ts +11 -10
  85. package/dist/vm/operations.d.ts.map +1 -1
  86. package/dist/vm/operations.js +83 -22
  87. package/dist/vm/operations.js.map +1 -1
  88. package/dist/vm/runtime-types.d.ts +64 -26
  89. package/dist/vm/runtime-types.d.ts.map +1 -1
  90. package/dist/vm/runtime-types.js +166 -19
  91. package/dist/vm/runtime-types.js.map +1 -1
  92. package/dist/vm/statements.d.ts +5 -5
  93. package/dist/vm/statements.d.ts.map +1 -1
  94. package/dist/vm/statements.js +95 -10
  95. package/dist/vm/statements.js.map +1 -1
  96. package/dist/vm/truthy.d.ts +2 -2
  97. package/dist/vm/truthy.d.ts.map +1 -1
  98. package/dist/vm/truthy.js +1 -1
  99. package/dist/vm/truthy.js.map +1 -1
  100. package/dist/vm/value-utils.d.ts +23 -25
  101. package/dist/vm/value-utils.d.ts.map +1 -1
  102. package/dist/vm/value-utils.js +216 -47
  103. package/dist/vm/value-utils.js.map +1 -1
  104. package/dist/vm/vm.d.ts +7 -3
  105. package/dist/vm/vm.d.ts.map +1 -1
  106. package/dist/vm/vm.js +3 -0
  107. package/dist/vm/vm.js.map +1 -1
  108. package/package.json +3 -3
  109. package/dist/compiler.d.ts +0 -20
  110. package/dist/compiler.d.ts.map +0 -1
  111. package/dist/compiler.js.map +0 -1
  112. package/dist/compiler_module/compiler.d.ts.map +0 -1
  113. package/dist/compiler_module/compiler.js +0 -22
  114. package/dist/compiler_module/compiler.js.map +0 -1
  115. package/dist/compiler_module/index.d.ts.map +0 -1
  116. package/dist/compiler_module/index.js.map +0 -1
  117. /package/dist/{compiler_module → compiler}/compiler.d.ts +0 -0
  118. /package/dist/{compiler_module → compiler}/index.d.ts +0 -0
  119. /package/dist/{compiler_module → compiler}/index.js +0 -0
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyInPlaceBinary = applyInPlaceBinary;
3
4
  exports.applyBinary = applyBinary;
4
5
  exports.formatPercent = formatPercent;
5
6
  exports.getSubscript = getSubscript;
@@ -12,6 +13,13 @@ exports.findClassAttribute = findClassAttribute;
12
13
  const types_1 = require("../types");
13
14
  const runtime_types_1 = require("./runtime-types");
14
15
  const value_utils_1 = require("./value-utils");
16
+ function applyInPlaceBinary(op, left, right) {
17
+ if (op === '+' && Array.isArray(left) && !left.__tuple__ && Array.isArray(right)) {
18
+ left.push(...right);
19
+ return left;
20
+ }
21
+ return this.applyBinary(op, left, right);
22
+ }
15
23
  function applyBinary(op, left, right) {
16
24
  if ((0, value_utils_1.isComplex)(left) || (0, value_utils_1.isComplex)(right)) {
17
25
  const a = (0, value_utils_1.toComplex)(left);
@@ -48,8 +56,8 @@ function applyBinary(op, left, right) {
48
56
  }
49
57
  return left + right;
50
58
  case '-':
51
- if (left instanceof Set && right instanceof Set) {
52
- const result = new Set(left);
59
+ if (left instanceof runtime_types_1.PySet && right instanceof runtime_types_1.PySet) {
60
+ const result = new runtime_types_1.PySet(left);
53
61
  for (const item of right.values())
54
62
  result.delete(item);
55
63
  return result;
@@ -134,8 +142,8 @@ function applyBinary(op, left, right) {
134
142
  }
135
143
  return Math.pow((0, value_utils_1.toNumber)(left), (0, value_utils_1.toNumber)(right));
136
144
  case '&':
137
- if (left instanceof Set && right instanceof Set) {
138
- const result = new Set();
145
+ if (left instanceof runtime_types_1.PySet && right instanceof runtime_types_1.PySet) {
146
+ const result = new runtime_types_1.PySet();
139
147
  for (const item of left.values()) {
140
148
  if (right.has(item))
141
149
  result.add(item);
@@ -147,8 +155,8 @@ function applyBinary(op, left, right) {
147
155
  }
148
156
  return left & right;
149
157
  case '|':
150
- if (left instanceof Set && right instanceof Set) {
151
- const result = new Set(left);
158
+ if (left instanceof runtime_types_1.PySet && right instanceof runtime_types_1.PySet) {
159
+ const result = new runtime_types_1.PySet(left);
152
160
  for (const item of right.values())
153
161
  result.add(item);
154
162
  return result;
@@ -158,8 +166,8 @@ function applyBinary(op, left, right) {
158
166
  }
159
167
  return left | right;
160
168
  case '^':
161
- if (left instanceof Set && right instanceof Set) {
162
- const result = new Set();
169
+ if (left instanceof runtime_types_1.PySet && right instanceof runtime_types_1.PySet) {
170
+ const result = new runtime_types_1.PySet();
163
171
  for (const item of left.values()) {
164
172
  if (!right.has(item))
165
173
  result.add(item);
@@ -201,10 +209,11 @@ function formatPercent(format, value) {
201
209
  });
202
210
  }
203
211
  function getSubscript(obj, index) {
204
- if (index && index.type === types_1.ASTNodeType.SLICE) {
205
- const start = index.start !== null && index.start !== undefined ? index.start : null;
206
- const end = index.end !== null && index.end !== undefined ? index.end : null;
207
- const step = index.step !== null && index.step !== undefined ? index.step : 1;
212
+ // Check if index is a slice object (created by BUILD_SLICE opcode or AST node)
213
+ if (index && (index.type === types_1.ASTNodeType.SLICE || index.__slice__)) {
214
+ const start = index.start !== undefined ? index.start : null;
215
+ const end = index.end !== undefined ? index.end : null;
216
+ const step = index.step !== undefined ? index.step : 1;
208
217
  const indices = this.computeSliceIndices(obj.length, start, end, step);
209
218
  const result = [];
210
219
  for (const idx of indices)
@@ -302,6 +311,11 @@ function getAttribute(obj, name, scope) {
302
311
  if (typeof obj === 'string') {
303
312
  if (name === 'upper')
304
313
  return () => obj.toUpperCase();
314
+ if (name === 'join')
315
+ return (iterable) => {
316
+ const arr = Array.isArray(iterable) ? iterable : Array.from(iterable);
317
+ return arr.map(item => (0, value_utils_1.pyStr)(item)).join(obj);
318
+ };
305
319
  if (name === 'replace')
306
320
  return (a, b) => {
307
321
  return obj.replace(a, b);
@@ -334,10 +348,35 @@ function getAttribute(obj, name, scope) {
334
348
  };
335
349
  if (name === 'count')
336
350
  return (ch) => obj.split(ch).length - 1;
351
+ if (name === 'split')
352
+ return (sep = ' ') => obj.split(sep);
353
+ if (name === 'strip')
354
+ return () => obj.trim();
355
+ if (name === 'lower')
356
+ return () => obj.toLowerCase();
357
+ if (name === 'startswith')
358
+ return (prefix) => obj.startsWith(prefix);
359
+ if (name === 'endswith')
360
+ return (suffix) => obj.endsWith(suffix);
337
361
  }
338
362
  if (Array.isArray(obj)) {
339
363
  if (name === 'append')
340
- return (value) => obj.push(value);
364
+ return (value) => {
365
+ obj.push(value);
366
+ return null;
367
+ };
368
+ if (name === 'pop')
369
+ return (index) => {
370
+ if (index === undefined)
371
+ return obj.pop();
372
+ return obj.splice(index, 1)[0];
373
+ };
374
+ if (name === 'extend')
375
+ return (iterable) => {
376
+ const arr = Array.isArray(iterable) ? iterable : Array.from(iterable);
377
+ obj.push(...arr);
378
+ return null;
379
+ };
341
380
  if (name === 'count')
342
381
  return (value) => obj.filter((item) => item === value).length;
343
382
  if (name === 'index')
@@ -354,27 +393,42 @@ function getAttribute(obj, name, scope) {
354
393
  }
355
394
  let keyFn = args.length > 0 ? args[0] : null;
356
395
  if ('key' in kwargs)
357
- keyFn = kwargs.key;
358
- const reverse = 'reverse' in kwargs ? Boolean(kwargs.reverse) : false;
396
+ keyFn = kwargs['key'];
397
+ const reverse = 'reverse' in kwargs ? Boolean(kwargs['reverse']) : false;
398
+ const initialLength = obj.length;
359
399
  if (keyFn) {
360
- const keyed = obj.map((item) => ({
361
- item,
362
- key: this.callFunction(keyFn, [item], scope),
363
- }));
400
+ const keyed = [];
401
+ for (let i = 0; i < initialLength; i++) {
402
+ const item = obj[i];
403
+ const key = this.callFunction(keyFn, [item], scope);
404
+ if (obj.length !== initialLength) {
405
+ throw new runtime_types_1.PyException('ValueError', 'list modified during sort');
406
+ }
407
+ keyed.push({ item, key });
408
+ }
364
409
  keyed.sort((a, b) => {
365
410
  if ((0, value_utils_1.isNumericLike)(a.key) && (0, value_utils_1.isNumericLike)(b.key)) {
366
411
  return (0, value_utils_1.toNumber)(a.key) - (0, value_utils_1.toNumber)(b.key);
367
412
  }
368
413
  return String(a.key).localeCompare(String(b.key));
369
414
  });
415
+ if (obj.length !== initialLength) {
416
+ throw new runtime_types_1.PyException('ValueError', 'list modified during sort');
417
+ }
370
418
  obj.length = 0;
371
419
  obj.push(...keyed.map((entry) => entry.item));
372
420
  }
373
421
  else if (obj.every((value) => (0, value_utils_1.isNumericLike)(value))) {
374
422
  obj.sort((a, b) => (0, value_utils_1.toNumber)(a) - (0, value_utils_1.toNumber)(b));
423
+ if (obj.length !== initialLength) {
424
+ throw new runtime_types_1.PyException('ValueError', 'list modified during sort');
425
+ }
375
426
  }
376
427
  else {
377
428
  obj.sort();
429
+ if (obj.length !== initialLength) {
430
+ throw new runtime_types_1.PyException('ValueError', 'list modified during sort');
431
+ }
378
432
  }
379
433
  if (reverse)
380
434
  obj.reverse();
@@ -394,17 +448,24 @@ function getAttribute(obj, name, scope) {
394
448
  return value.bind(obj);
395
449
  return value;
396
450
  }
397
- if (obj instanceof Set) {
451
+ if (obj instanceof runtime_types_1.PySet) {
398
452
  if (name === 'add')
399
- return (value) => obj.add(value);
453
+ return (value) => {
454
+ obj.add(value);
455
+ return null;
456
+ };
400
457
  if (name === 'update')
401
458
  return (values) => {
402
459
  const items = Array.isArray(values) ? values : Array.from(values);
403
460
  for (const item of items)
404
461
  obj.add(item);
462
+ return null;
405
463
  };
406
464
  if (name === 'remove')
407
- return (value) => obj.delete(value);
465
+ return (value) => {
466
+ obj.delete(value);
467
+ return null;
468
+ };
408
469
  }
409
470
  if (obj && typeof obj === 'object' && obj.__typeName__) {
410
471
  if (name === '__name__')
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/vm/operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/vm/operations.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,12 @@
1
- export type ScopeValue = any;
1
+ import { ByteCode } from '../types';
2
+ /**
3
+ * Represents any Python value in the VM.
4
+ */
5
+ export type PyValue = any;
6
+ export type ScopeValue = PyValue;
2
7
  export declare class ReturnSignal {
3
- value: any;
4
- constructor(value: any);
8
+ value: PyValue;
9
+ constructor(value: PyValue);
5
10
  }
6
11
  export declare class BreakSignal {
7
12
  }
@@ -9,66 +14,99 @@ export declare class ContinueSignal {
9
14
  }
10
15
  export declare class PyException extends Error {
11
16
  pyType: string;
12
- pyValue: any;
13
- constructor(pyType: string, message?: string, pyValue?: any);
17
+ pyValue: PyValue;
18
+ constructor(pyType: string, message?: string, pyValue?: PyValue);
19
+ }
20
+ export declare class Frame {
21
+ stack: PyValue[];
22
+ pc: number;
23
+ scope: Scope;
24
+ bytecode: ByteCode;
25
+ locals: PyValue[];
26
+ blockStack: Array<{
27
+ handler: number;
28
+ stackHeight: number;
29
+ }>;
30
+ constructor(bytecode: ByteCode, scope: Scope);
14
31
  }
15
32
  export declare class Scope {
16
33
  values: Map<string, ScopeValue>;
17
34
  parent: Scope | null;
18
35
  globals: Set<string>;
19
36
  nonlocals: Set<string>;
20
- constructor(parent?: Scope | null);
37
+ locals: Set<string>;
38
+ isClassScope: boolean;
39
+ constructor(parent?: Scope | null, isClassScope?: boolean);
21
40
  get(name: string): ScopeValue;
22
41
  set(name: string, value: ScopeValue): void;
23
42
  root(): Scope;
24
- findScopeWith(name: string): Scope | null;
43
+ findScopeWith(name: string, skipBase?: boolean): Scope | null;
25
44
  }
26
45
  export declare class PyFunction {
27
46
  name: string;
28
- params: any[];
29
- body: any[];
47
+ params: PyValue[];
48
+ body: PyValue[];
30
49
  closure: Scope;
50
+ closure_shared_values?: Map<string, PyValue>;
31
51
  isGenerator: boolean;
32
- constructor(name: string, params: any[], body: any[], closure: Scope, isGenerator: boolean);
52
+ bytecode?: ByteCode;
53
+ localNames: Set<string>;
54
+ constructor(name: string, params: PyValue[], body: PyValue[], closure: Scope, isGenerator: boolean, localNames?: Set<string>, bytecode?: ByteCode);
33
55
  }
34
56
  export declare class PyClass {
35
57
  name: string;
36
58
  bases: PyClass[];
37
- attributes: Map<string, any>;
59
+ attributes: Map<string, PyValue>;
38
60
  isException: boolean;
39
- constructor(name: string, bases: PyClass[], attributes: Map<string, any>, isException?: boolean);
61
+ constructor(name: string, bases: PyClass[], attributes: Map<string, PyValue>, isException?: boolean);
40
62
  }
41
63
  export declare class PyInstance {
42
64
  klass: PyClass;
43
- attributes: Map<string, any>;
65
+ attributes: Map<string, PyValue>;
44
66
  constructor(klass: PyClass);
45
67
  }
46
68
  export declare class PyGenerator {
47
69
  private iterator;
48
- constructor(iterator: Generator<any, any, any>);
49
- next(value?: any): any;
50
- send(value?: any): any;
70
+ constructor(iterator: Generator<PyValue>);
71
+ next(value?: PyValue): any;
72
+ send(value?: PyValue): any;
73
+ throw(exc: PyValue): any;
74
+ close(): null;
51
75
  [Symbol.iterator](): Generator<any, any, any>;
52
76
  }
53
77
  export type DictEntry = {
54
- key: any;
55
- value: any;
78
+ key: PyValue;
79
+ value: PyValue;
56
80
  };
57
81
  export declare class PyDict {
58
82
  private primitiveStore;
59
83
  private objectStore;
60
84
  get size(): number;
61
- set(key: any, value: any): this;
62
- get(key: any): any;
63
- has(key: any): boolean;
64
- delete(key: any): boolean;
65
- entries(): IterableIterator<[any, any]>;
66
- keys(): IterableIterator<any>;
67
- values(): IterableIterator<any>;
68
- [Symbol.iterator](): IterableIterator<[any, any]>;
85
+ set(key: PyValue, value: PyValue): this;
86
+ get(key: PyValue): PyValue;
87
+ has(key: PyValue): boolean;
88
+ delete(key: PyValue): boolean;
89
+ entries(): IterableIterator<[PyValue, PyValue]>;
90
+ keys(): IterableIterator<PyValue>;
91
+ values(): IterableIterator<PyValue>;
92
+ [Symbol.iterator](): IterableIterator<PyValue>;
69
93
  private keyInfo;
70
94
  private normalizeNumericKey;
71
95
  }
96
+ export declare class PySet {
97
+ private primitiveStore;
98
+ private objectStore;
99
+ constructor(iterable?: Iterable<PyValue>);
100
+ get size(): number;
101
+ add(value: PyValue): this;
102
+ has(value: PyValue): boolean;
103
+ delete(value: PyValue): boolean;
104
+ clear(): void;
105
+ values(): IterableIterator<PyValue>;
106
+ [Symbol.iterator](): IterableIterator<PyValue>;
107
+ private valueInfo;
108
+ private normalizeNumeric;
109
+ }
72
110
  export declare class PyFile {
73
111
  path: string;
74
112
  mode: string;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-types.d.ts","sourceRoot":"","sources":["../../src/vm/runtime-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-types.d.ts","sourceRoot":"","sources":["../../src/vm/runtime-types.ts"],"names":[],"mappings":"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"}