meaoiu 0.1.6 → 0.1.8

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 (87) hide show
  1. package/README.md +11 -7
  2. package/dist/api/execution.d.ts +2 -2
  3. package/dist/api/execution.d.ts.map +1 -1
  4. package/dist/api/execution.js +6 -6
  5. package/dist/api/execution.js.map +1 -1
  6. package/dist/api/serviceState.d.ts +3 -3
  7. package/dist/api/serviceState.d.ts.map +1 -1
  8. package/dist/api/serviceState.js +2 -2
  9. package/dist/api/serviceState.js.map +1 -1
  10. package/dist/api/services/completions.d.ts.map +1 -1
  11. package/dist/api/services/completions.js.map +1 -1
  12. package/dist/api/services/formatting.js +2 -2
  13. package/dist/api/services/formatting.js.map +1 -1
  14. package/dist/api/services/search.d.ts +2 -2
  15. package/dist/api/services/search.d.ts.map +1 -1
  16. package/dist/api/utils/astUtils.d.ts +1 -1
  17. package/dist/api/utils/astUtils.d.ts.map +1 -1
  18. package/dist/api/utils/astUtils.js.map +1 -1
  19. package/dist/api/utils/symbolAnalyzer.d.ts.map +1 -1
  20. package/dist/api/utils/symbolAnalyzer.js +7 -16
  21. package/dist/api/utils/symbolAnalyzer.js.map +1 -1
  22. package/dist/api/utils/symbolTable.d.ts +2 -2
  23. package/dist/api/utils/symbolTable.d.ts.map +1 -1
  24. package/dist/cli/main.js +21 -25
  25. package/dist/cli/main.js.map +1 -1
  26. package/dist/cli/tools/toolUtils.d.ts.map +1 -1
  27. package/dist/cli/tools/toolUtils.js +4 -6
  28. package/dist/cli/tools/toolUtils.js.map +1 -1
  29. package/dist/core/ast.d.ts +4 -4
  30. package/dist/core/ast.d.ts.map +1 -1
  31. package/dist/core/builtIns.d.ts +2 -2
  32. package/dist/core/builtIns.d.ts.map +1 -1
  33. package/dist/core/builtIns.js +2 -2
  34. package/dist/core/builtIns.js.map +1 -1
  35. package/dist/core/engine/environment.d.ts +39 -0
  36. package/dist/core/engine/environment.d.ts.map +1 -0
  37. package/dist/core/engine/environment.js +168 -0
  38. package/dist/core/engine/environment.js.map +1 -0
  39. package/dist/core/{run/interpreter.d.ts → engine/evaluater.d.ts} +1 -1
  40. package/dist/core/engine/evaluater.d.ts.map +1 -0
  41. package/dist/core/{run/interpreter.js → engine/evaluater.js} +5 -6
  42. package/dist/core/engine/evaluater.js.map +1 -0
  43. package/dist/core/engine/io.d.ts.map +1 -0
  44. package/dist/core/{run → engine}/io.js +1 -1
  45. package/dist/core/engine/io.js.map +1 -0
  46. package/dist/core/engine/logger.d.ts.map +1 -0
  47. package/dist/core/{run → engine}/logger.js +1 -1
  48. package/dist/core/engine/logger.js.map +1 -0
  49. package/dist/core/{run → engine}/value.d.ts +3 -1
  50. package/dist/core/engine/value.d.ts.map +1 -0
  51. package/dist/core/{run → engine}/value.js +4 -1
  52. package/dist/core/engine/value.js.map +1 -0
  53. package/dist/core/parser/abstractor.d.ts +9 -0
  54. package/dist/core/parser/abstractor.d.ts.map +1 -0
  55. package/dist/core/parser/abstractor.js +428 -0
  56. package/dist/core/parser/abstractor.js.map +1 -0
  57. package/dist/core/parser/context.d.ts +55 -0
  58. package/dist/core/parser/context.d.ts.map +1 -0
  59. package/dist/core/parser/context.js +145 -0
  60. package/dist/core/parser/context.js.map +1 -0
  61. package/dist/core/typedef.d.ts +8 -4
  62. package/dist/core/typedef.d.ts.map +1 -1
  63. package/dist/core/typedef.js +1 -1
  64. package/dist/core/typedef.js.map +1 -1
  65. package/dist/index.d.ts +3 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +3 -0
  68. package/dist/index.js.map +1 -1
  69. package/package.json +2 -2
  70. package/dist/core/parser.d.ts +0 -13
  71. package/dist/core/parser.d.ts.map +0 -1
  72. package/dist/core/parser.js +0 -575
  73. package/dist/core/parser.js.map +0 -1
  74. package/dist/core/run/environment.d.ts +0 -48
  75. package/dist/core/run/environment.d.ts.map +0 -1
  76. package/dist/core/run/environment.js +0 -191
  77. package/dist/core/run/environment.js.map +0 -1
  78. package/dist/core/run/interpreter.d.ts.map +0 -1
  79. package/dist/core/run/interpreter.js.map +0 -1
  80. package/dist/core/run/io.d.ts.map +0 -1
  81. package/dist/core/run/io.js.map +0 -1
  82. package/dist/core/run/logger.d.ts.map +0 -1
  83. package/dist/core/run/logger.js.map +0 -1
  84. package/dist/core/run/value.d.ts.map +0 -1
  85. package/dist/core/run/value.js.map +0 -1
  86. /package/dist/core/{run → engine}/io.d.ts +0 -0
  87. /package/dist/core/{run → engine}/logger.d.ts +0 -0
@@ -49,7 +49,7 @@ type AssignmentOperator = TokenKind.ASSIGNMENT_IS | UnaryOperator;
49
49
  type LogicalOperator = TokenKind.LOGIC_CLOSE_AND | TokenKind.LOGIC_CLOSE_OR | TokenKind.LOGIC_CLOSE_NAND | TokenKind.LOGIC_CLOSE_NOR;
50
50
  export interface VariableDeclaration extends AstNode<NodeKind.VariableDeclaration> {
51
51
  identifier: Identifier;
52
- initialization: AssignmentStatement | undefined;
52
+ initialization: Maybe<AssignmentStatement>;
53
53
  }
54
54
  export interface AssignmentStatement extends AstNode<NodeKind.AssignmentStatement> {
55
55
  assignee: Expression;
@@ -62,10 +62,10 @@ export interface FunctionDeclaration extends AstNode<NodeKind.FunctionDeclaratio
62
62
  body: BlockExpression;
63
63
  }
64
64
  export interface ReturnStatement extends AstNode<NodeKind.ReturnStatement> {
65
- argument: Expression | undefined;
65
+ argument: Maybe<Expression>;
66
66
  }
67
67
  export interface AmbushStatement extends AstNode<NodeKind.AmbushStatement> {
68
- argument: Expression | undefined;
68
+ argument: Maybe<Expression>;
69
69
  }
70
70
  export interface BreakStatement extends AstNode<NodeKind.BreakStatement> {
71
71
  }
@@ -94,7 +94,7 @@ export interface BlockExpression extends AstNode<NodeKind.BlockExpression> {
94
94
  export interface IfExpression extends AstNode<NodeKind.IfExpression> {
95
95
  condition: Expression;
96
96
  consequent: BlockExpression;
97
- alternate: BlockExpression | IfExpression | undefined;
97
+ alternate: Maybe<BlockExpression | IfExpression>;
98
98
  }
99
99
  export interface LoopExpression extends AstNode<NodeKind.LoopExpression> {
100
100
  body: BlockExpression;
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/core/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/core/ast.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type MeaoiuRuntimeIO } from './run/io.js';
1
+ import { type MeaoiuRuntimeIO } from './engine/io.js';
2
2
  import { MeaoiuType, type MeaoiuValue } from './typedef.js';
3
3
  export declare const meaoiuBuiltInNames: readonly ['喵', '祈求', '呼噜', '磨爪', '变摸数', '喵译', '嗅嗅', '才怪', '理直气壮', '差不多', '抢大的', '吃剩的', '摸余', '找尾巴', '喵语连珠', '咬文嚼字', '打盹', '添乱', '猫咪艺术', '哈气'];
4
4
  type BuiltInName = (typeof meaoiuBuiltInNames)[number];
@@ -11,6 +11,6 @@ export type MeaoiuBuiltIns = Record<BuiltInName, {
11
11
  export declare const builtInNameSet: ReadonlySet<BuiltInName>;
12
12
  export declare const isBuiltInFunctionName: (name: string) => name is BuiltInName;
13
13
  export declare const createBuiltInFunctions: (io: MeaoiuRuntimeIO) => MeaoiuBuiltIns;
14
- export declare function checkArgsForBuiltIn(builtIn: MeaoiuBuiltIns[BuiltInName], args: MeaoiuValue[]): string | undefined;
14
+ export declare function checkArgsForBuiltIn(builtIn: MeaoiuBuiltIns[BuiltInName], args: MeaoiuValue[]): Maybe<string>;
15
15
  export {};
16
16
  //# sourceMappingURL=builtIns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtIns.d.ts","sourceRoot":"","sources":["../../src/core/builtIns.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAiB,UAAU,EAAa,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtF,eAAO,MAAM,kBAAkB,YAC9B,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,CACK,CAAC;AACX,KAAK,WAAW,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AACvD,KAAK,eAAe,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEnF,MAAM,MAAM,cAAc,GAAG,MAAM,CAClC,WAAW,EACX;IACC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;IAC3B,QAAQ,EAAE,eAAe,CAAC;CAC1B,CACD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,WAAW,CAA+B,CAAC;AACpF,eAAO,MAAM,qBAAqB,SAAU,MAAM,KAAG,IAAI,IAAI,WAAwD,CAAC;AAEtH,eAAO,MAAM,sBAAsB,OAAQ,eAAe,KAAG,cAgJ3D,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,SAAS,CAkBjH"}
1
+ {"version":3,"file":"builtIns.d.ts","sourceRoot":"","sources":["../../src/core/builtIns.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAiB,UAAU,EAAa,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtF,eAAO,MAAM,kBAAkB,YAC9B,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,CACK,CAAC;AACX,KAAK,WAAW,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AACvD,KAAK,eAAe,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEnF,MAAM,MAAM,cAAc,GAAG,MAAM,CAClC,WAAW,EACX;IACC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;IAC3B,QAAQ,EAAE,eAAe,CAAC;CAC1B,CACD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,WAAW,CAA+B,CAAC;AACpF,eAAO,MAAM,qBAAqB,SAAU,MAAM,KAAG,IAAI,IAAI,WAAwD,CAAC;AAEtH,eAAO,MAAM,sBAAsB,OAAQ,eAAe,KAAG,cAgJ3D,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAkB5G"}
@@ -1,6 +1,6 @@
1
1
  // src/core/builtIns.ts
2
- import { Environment } from './run/environment.js';
3
- import { toMeaoiuString } from './run/io.js';
2
+ import { Environment } from './engine/environment.js';
3
+ import { toMeaoiuString } from './engine/io.js';
4
4
  import { getMeaoiuType, typeNames } from './typedef.js';
5
5
  export const meaoiuBuiltInNames = [
6
6
  '喵',
@@ -1 +1 @@
1
- {"version":3,"file":"builtIns.js","sourceRoot":"","sources":["../../src/core/builtIns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtIns.js","sourceRoot":"","sources":["../../src/core/builtIns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type * as AST from '../ast.js';
2
+ import { type MeaoiuValue } from '../typedef.js';
3
+ import { type Evaluated, type ReferenceLink, type VarKey } from './value.js';
4
+ export declare class Environment {
5
+ readonly id: number;
6
+ private static idCounter;
7
+ private parent;
8
+ private readonly variables;
9
+ private readonly functions;
10
+ readonly orderedVariableKeys: VarKey[];
11
+ constructor(parent?: Environment);
12
+ static markReferenceMoved({ scope, key }: ReferenceLink): void;
13
+ static resolveValue(this: void, value: Evaluated): MeaoiuValue;
14
+ /** 剥离层级关系,避免从纸箱往外摸 */
15
+ isolate(): this;
16
+ /** 清空作用域 */
17
+ clear(): void;
18
+ hasVariable(key: VarKey): boolean;
19
+ /** 检查当前环境是否在边界内 */
20
+ isInsideOf(boundary: Maybe<Environment>): boolean;
21
+ declareFunction(name: string, func: AST.FunctionDeclaration): void;
22
+ findFunction(name: string): Maybe<AST.FunctionDeclaration>;
23
+ lookup(key: VarKey, movedSensitive?: boolean, throwUndeclared?: boolean): ReferenceLink;
24
+ /** 声明全新空变量 */
25
+ declare(key: VarKey): ReferenceLink;
26
+ /** 为已有变量赋值 */
27
+ assign(key: VarKey, value: Evaluated, operator: AST.AssignmentStatement['operator']): ReferenceLink;
28
+ addMember(key: VarKey, value: Evaluated): ReferenceLink;
29
+ createShallowCopy(): Environment;
30
+ /**
31
+ * 创建一个「合并视图」。
32
+ * 将创建一个新纸箱,该纸箱按顺序包含来自 A (this) 和 B (other) 的所有引用。
33
+ * 自动生成的键会被重命名以保证顺序,用户定义的键如果冲突,A 优先。
34
+ */
35
+ createMergedView(other: Environment): Environment;
36
+ toString(): string;
37
+ get length(): number;
38
+ }
39
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/core/engine/environment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAKN,KAAK,SAAS,EACd,KAAK,aAAa,EAElB,KAAK,MAAM,EACX,MAAM,YAAY,CAAC;AAgBpB,qBAAa,WAAW;IACvB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAK;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmD;IAC7E,SAAgB,mBAAmB,EAAE,MAAM,EAAE,CAAM;IAEnD,YAAY,MAAM,CAAC,EAAE,WAAW,EAI/B;IAED,OAAc,kBAAkB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,aAAa,GAAG,IAAI,CAEpE;IACD,OAAc,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,CAIpE;IAED,sBAAsB;IACf,OAAO,IAAI,IAAI,CAErB;IACD,YAAY;IACL,KAAK,IAAI,IAAI,CAKnB;IAEM,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvC;IAED,mBAAmB;IACZ,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,OAAO,CAIvD;IAEM,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAExE;IACM,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAIhE;IAEM,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,UAAO,EAAE,eAAe,UAAQ,GAAG,aAAa,CAqBxF;IAED,cAAc;IACP,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAMzC;IAED,cAAc;IACP,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,aAAa,CAyBzG;IAEM,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,aAAa,CAE7D;IAEM,iBAAiB,IAAI,WAAW,CAItC;IAED;;;;OAIG;IACI,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAevD;IAEM,QAAQ,IAAI,MAAM,CAIxB;IACD,IAAW,MAAM,IAAI,MAAM,CAE1B;CACD"}
@@ -0,0 +1,168 @@
1
+ // src/core/engine/environment.ts
2
+ import logger from './logger.js';
3
+ import { isReferenceLink, isSignal, referenceLinkTo, } from './value.js';
4
+ // 防碰撞自动变量名
5
+ const isAutoKey = (key) => typeof key === 'number';
6
+ const DO_NOTHING = () => { };
7
+ const throwIfMoved = (env, key, originalKey, moved) => {
8
+ if (!moved)
9
+ return;
10
+ const errorMessage = isAutoKey(key)
11
+ ? `纸箱里的「${env.orderedVariableKeys.indexOf(key) + 1}」号玩具不见了,一定是被谁拿走了喵!`
12
+ : key === originalKey
13
+ ? `藏在「${key}」里的东西被拿走了,现在是只空碗喵!`
14
+ : `碰不到「${key}」,因为它的本体「${originalKey}」被拿走了喵!`;
15
+ throw new Error(`喵呜!${errorMessage}`);
16
+ };
17
+ export class Environment {
18
+ id;
19
+ static idCounter = 0;
20
+ parent;
21
+ variables = new Map();
22
+ functions = new Map();
23
+ orderedVariableKeys = [];
24
+ constructor(parent) {
25
+ this.parent = parent;
26
+ this.id = Environment.idCounter++;
27
+ logger.debug(`[ENV] 新建环境 #${this.id} (上级: ${this.parent?.id ?? '无'})`);
28
+ }
29
+ static markReferenceMoved({ scope, key }) {
30
+ scope.variables.get(key).moved = true;
31
+ }
32
+ static resolveValue(value) {
33
+ if (isSignal(value))
34
+ throw new Error(`不能在这里发送神秘信号喵!`);
35
+ while (isReferenceLink(value))
36
+ value = value.scope.variables.get(value.key).value;
37
+ return value;
38
+ }
39
+ /** 剥离层级关系,避免从纸箱往外摸 */
40
+ isolate() {
41
+ return ((this.parent = undefined), this);
42
+ }
43
+ /** 清空作用域 */
44
+ clear() {
45
+ this.variables.clear();
46
+ this.functions.clear();
47
+ this.orderedVariableKeys.length = 0;
48
+ logger.debug(`[ENV #${this.id}] 清空环境`);
49
+ }
50
+ hasVariable(key) {
51
+ return this.variables.has(key);
52
+ }
53
+ /** 检查当前环境是否在边界内 */
54
+ isInsideOf(boundary) {
55
+ if (!boundary)
56
+ return false;
57
+ for (let current = this; current; current = current.parent)
58
+ if (current === boundary)
59
+ return true;
60
+ return false;
61
+ }
62
+ declareFunction(name, func) {
63
+ this.functions.set(name, func);
64
+ }
65
+ findFunction(name) {
66
+ let func;
67
+ for (let scope = this; scope && !(func = scope.functions.get(name)); scope = scope.parent)
68
+ ;
69
+ return func;
70
+ }
71
+ lookup(key, movedSensitive = true, throwUndeclared = false) {
72
+ let scope = this; // 把 let originalScope 放这 TS 会懵
73
+ while (!scope.variables.has(key)) {
74
+ if ((scope = scope.parent))
75
+ continue;
76
+ if (throwUndeclared)
77
+ throw new Error(`还不认识「${key}」喵!要先“蹭”一下喵!`);
78
+ const notFunctionName = isAutoKey(key) || !this.findFunction(key);
79
+ const errorMessage = notFunctionName
80
+ ? `没找到叫做「${key}」的玩具,是不是被你藏起来了`
81
+ : `是不是想把${"\u8BA1\u8C0B" /* TypeName.FUNCTION */}「${key}」当成玩具`;
82
+ throw new Error(`咦?${errorMessage}喵?`);
83
+ }
84
+ // 引用链循环追踪
85
+ const checkMoved = movedSensitive ? throwIfMoved : DO_NOTHING;
86
+ for (let originalScope = scope, originalKey = key;;) {
87
+ const { value, moved } = originalScope.variables.get(originalKey);
88
+ checkMoved(this, key, originalKey, moved);
89
+ logger.debug(`[ENV #${this.id}] 查找: 在环境 #${originalScope.id} 中找到「${originalKey}」`);
90
+ if (!isReferenceLink(value))
91
+ return referenceLinkTo(originalScope, originalKey);
92
+ ({ scope: originalScope, key: originalKey } = value);
93
+ }
94
+ }
95
+ /** 声明全新空变量 */
96
+ declare(key) {
97
+ if (this.variables.has(key))
98
+ throw new Error(`变量「${key}」已经被“蹭”过一次了喵!`);
99
+ logger.debug(`[ENV #${this.id}] 声明: 变量「${key}」`);
100
+ this.variables.set(key, { value: null, moved: false });
101
+ this.orderedVariableKeys.push(key);
102
+ return referenceLinkTo(this, key);
103
+ }
104
+ /** 为已有变量赋值 */
105
+ assign(key, value, operator) {
106
+ // 查找目标,找到真正的「碗」
107
+ const referenceLink = this.lookup(key, false, true);
108
+ const { scope: targetScope, key: targetKey } = referenceLink;
109
+ // 在最终位置赋值
110
+ let finalValue;
111
+ if (operator === 6 /* TokenKind.ASSIGNMENT_IS */) {
112
+ finalValue =
113
+ isReferenceLink(value) && (targetScope !== value.scope || targetKey !== value.key) /* 防御循环引用 */
114
+ ? value
115
+ : Environment.resolveValue(value);
116
+ }
117
+ else {
118
+ finalValue = Environment.resolveValue(value);
119
+ if (operator === 7 /* TokenKind.ASSIGNMENT_LIKE */) {
120
+ if (finalValue instanceof Environment)
121
+ finalValue = finalValue.createShallowCopy(); // 复制纸箱即创建「视图」
122
+ }
123
+ else if (operator === 8 /* TokenKind.ASSIGNMENT_ONLY */ && isReferenceLink(value))
124
+ Environment.markReferenceMoved(value); // 引用被移动,打上标记
125
+ }
126
+ targetScope.variables.set(targetKey, { value: finalValue, moved: false });
127
+ logger.debug(`[ENV #${this.id}] 赋值: 环境 #${targetScope.id} 中的「${targetKey}」被赋予 (方式: ${operator}) 值:`, finalValue);
128
+ return referenceLink;
129
+ }
130
+ addMember(key, value) {
131
+ return (this.declare(key), this.assign(key, value, 6 /* TokenKind.ASSIGNMENT_IS */));
132
+ }
133
+ createShallowCopy() {
134
+ const newEnv = new Environment();
135
+ for (const key of this.orderedVariableKeys)
136
+ newEnv.addMember(key, this.lookup(key, false));
137
+ return newEnv;
138
+ }
139
+ /**
140
+ * 创建一个「合并视图」。
141
+ * 将创建一个新纸箱,该纸箱按顺序包含来自 A (this) 和 B (other) 的所有引用。
142
+ * 自动生成的键会被重命名以保证顺序,用户定义的键如果冲突,A 优先。
143
+ */
144
+ createMergedView(other) {
145
+ const newEnv = new Environment();
146
+ let autoIndexCounter = 0; // 为新视图创建全新的自动索引
147
+ // 1. 添加来自 A (this) 的所有引用。用户键直接用
148
+ for (const key of this.orderedVariableKeys) {
149
+ newEnv.addMember(isAutoKey(key) ? autoIndexCounter++ : key, this.lookup(key, false));
150
+ }
151
+ // 2. 添加来自 B (other) 的引用。用户键弃重复
152
+ for (const key of other.orderedVariableKeys) {
153
+ const targetKey = isAutoKey(key) ? autoIndexCounter++ : newEnv.hasVariable(key) ? null : key;
154
+ if (targetKey !== null)
155
+ newEnv.addMember(targetKey, other.lookup(key, false));
156
+ }
157
+ return newEnv;
158
+ }
159
+ toString() {
160
+ return `[= ${this.orderedVariableKeys
161
+ .map((key, index) => (isAutoKey(key) ? `(${index + 1})` : `{${key}}`))
162
+ .join(', ')} =]`;
163
+ }
164
+ get length() {
165
+ return this.orderedVariableKeys.length;
166
+ }
167
+ }
168
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/core/engine/environment.ts"],"names":[],"mappings":"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"}
@@ -10,4 +10,4 @@ declare const enum NewEnvMode {
10
10
  }
11
11
  export declare function evaluate(node: AST.Node, env: Environment, builtIns: MeaoiuBuiltIns, boundaryEnv: BoundaryEnv, newEnvMode?: NewEnvMode): Promise<Evaluated>;
12
12
  export {};
13
- //# sourceMappingURL=interpreter.d.ts.map
13
+ //# sourceMappingURL=evaluater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluater.d.ts","sourceRoot":"","sources":["../../../src/core/engine/evaluater.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AAEtC,OAAO,EAA8C,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAWjG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAIN,KAAK,SAAS,EAQd,MAAM,YAAY,CAAC;AAEpB,KAAK,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AACrG,mBAAW,UAAU;IACpB,MAAM,IAAA;IACN,IAAI,IAAA;IACJ,IAAI,IAAA;CACJ;AAmBD,wBAAsB,QAAQ,CAC7B,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,WAAW,EACxB,UAAU,GAAE,UAA8B,GACxC,OAAO,CAAC,SAAS,CAAC,CAgYpB"}
@@ -1,10 +1,10 @@
1
- // src/core/run/interpreter.ts
1
+ // src/core/engine/evaluater.ts
2
2
  import { checkArgsForBuiltIn, isBuiltInFunctionName } from '../builtIns.js';
3
3
  import { errorFrom, MeaoiuError } from '../error.js';
4
4
  import { checkArithmeticOperation, checkComparisonOperation, getMeaoiuType, } from '../typedef.js';
5
5
  import { Environment } from './environment.js';
6
6
  import logger from './logger.js';
7
- import { BREAK_SIGNAL, CONTINUE_SIGNAL, isReferenceLink, isSignal, LoopValue, ReturnValue, } from './value.js';
7
+ import { BREAK_SIGNAL, CONTINUE_SIGNAL, isReferenceLink, isSignal, LoopValue, referenceLinkTo, ReturnValue, } from './value.js';
8
8
  const ReturnOrAmbush = {
9
9
  [5 /* NodeKind.ReturnStatement */]: {
10
10
  emptySignal: new ReturnValue(null),
@@ -238,8 +238,7 @@ export async function evaluate(node, env, builtIns, boundaryEnv, newEnvMode = 0
238
238
  }
239
239
  case 16 /* NodeKind.LoopExpression */: {
240
240
  const { body } = node;
241
- loop: for (;;) {
242
- const loopEnv = new Environment(env);
241
+ loop: for (const loopEnv = new Environment(env);; loopEnv.clear()) {
243
242
  const result = await evaluate(body, loopEnv, builtIns, { ...boundaryEnv, [6 /* NodeKind.AmbushStatement */]: loopEnv }, 2 /* NewEnvMode.LOOP */);
244
243
  if (!isSignal(result))
245
244
  continue;
@@ -298,7 +297,7 @@ export async function evaluate(node, env, builtIns, boundaryEnv, newEnvMode = 0
298
297
  const paramName = paramNames[i];
299
298
  const argVarKey = argsCollection.orderedVariableKeys[i];
300
299
  // 创建从“函数参数名”到“调用纸箱中变量”的引用
301
- functionEnv.declareReference(paramName, argsCollection, argVarKey);
300
+ functionEnv.addMember(paramName, referenceLinkTo(argsCollection, argVarKey));
302
301
  }
303
302
  const result = await evaluate(func.body, functionEnv, builtIns, { ...boundaryEnv, [5 /* NodeKind.ReturnStatement */]: functionEnv }, 1 /* NewEnvMode.FUNC */);
304
303
  if (result instanceof ReturnValue)
@@ -417,4 +416,4 @@ async function _evaluateMemberKey(prop, env, builtIns, boundaryEnv, collection,
417
416
  }
418
417
  throw runtimeErrorFrom(prop, `${"\u7EB8\u7BB1" /* TypeName.COLLECTION */}的索引必须是${"\u6478\u6570" /* TypeName.NUMBER */}或${"\u95F2\u8BDD" /* TypeName.STRING */}喵!`);
419
418
  }
420
- //# sourceMappingURL=interpreter.js.map
419
+ //# sourceMappingURL=evaluater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluater.js","sourceRoot":"","sources":["../../../src/core/engine/evaluater.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../../src/core/engine/io.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C,CAAC;AAEF,KAAK,SAAS,GAAG,OAAO,QAAQ,CAAC;AACjC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CAC/B,CAAC;AAWF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQrD;AAGD,iBAAS,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY1D;AAGD,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAe,EAAE,EAAE,QAAQ,GAAG,eAAe,CAIjG"}
@@ -1,4 +1,4 @@
1
- // src/core/run/io.ts
1
+ // src/core/engine/io.ts
2
2
  // Meaoiu 字符串转换器
3
3
  export function toMeaoiuString(value) {
4
4
  if (value === true)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../../../src/core/engine/io.ts"],"names":[],"mappings":"AAAA,wBAAwB;AA2BxB,gBAAgB;AAChB,MAAM,UAAU,cAAc,CAAC,KAAc;IAC5C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACtC,IAAI,KAAK,KAAK,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;IACvC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,KAAK;AACL,SAAS,QAAQ,CAAC,KAAc,EAAE,QAAgB;IACjD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,GAAG,2BAAS,GAAG,QAAQ,GAAG,6BAAW,EAAE,CAAC;IAElE,QAAQ,OAAO,KAAK,EAAE,CAAC;QACtB,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACb,OAAO,GAAG,+BAAY,GAAG,QAAQ,GAAG,6BAAW,EAAE,CAAC;QACnD,KAAK,QAAQ;YACZ,OAAO,GAAG,8BAAW,GAAG,QAAQ,GAAG,6BAAW,EAAE,CAAC;QAClD;YACC,OAAO,QAAQ,CAAC;IAClB,CAAC;AACF,CAAC;AAED,WAAW;AACX,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAY;IAC/E,MAAM,SAAS,GAAsB,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7E,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IACvG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACtF,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/core/engine/logger.ts"],"names":[],"mappings":"AAEA,0BAAkB,QAAQ;IACzB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACT;AACD,KAAK,QAAQ,GAAG,SAAS,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEjD,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAK1D,CAAC;AAEF,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAKjD;wBAGwB,QAAQ,CAAC,OAAO,MAAM,CAAC"}
@@ -1,4 +1,4 @@
1
- // src/core/run/logger.ts
1
+ // src/core/engine/logger.ts
2
2
  const DO_NOTHING = () => { };
3
3
  const logger = {
4
4
  debug: DO_NOTHING,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/core/engine/logger.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAS5B,MAAM,UAAU,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAC5B,MAAM,MAAM,GAAmD;IAC9D,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;CACjB,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,KAAe;IAC1C,MAAM,CAAC,KAAK,GAAG,KAAK,0BAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACrG,MAAM,CAAC,IAAI,GAAG,KAAK,yBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACjG,MAAM,CAAC,IAAI,GAAG,KAAK,yBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACjG,MAAM,CAAC,KAAK,GAAG,KAAK,0BAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AACtG,CAAC;AACD,WAAW,uBAAe,CAAC;AAE3B,eAAe,MAAiC,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import type { MeaoiuValue } from '../typedef.js';
2
2
  import type { Environment } from './environment.js';
3
+ export type VarKey = string | number;
3
4
  export type ReferenceLink = {
4
5
  isReference: true;
5
6
  scope: Environment;
6
- key: string | number;
7
+ key: VarKey;
7
8
  };
8
9
  export type VariableValue = ReferenceLink | MeaoiuValue;
9
10
  export type EnvVariable = {
@@ -35,6 +36,7 @@ export declare const BREAK_SIGNAL: EmptySignal<SignalKind.BREAK>;
35
36
  export declare const CONTINUE_SIGNAL: EmptySignal<SignalKind.CONTINUE>;
36
37
  type ControlSignal = ReturnValue | LoopValue | EmptySignal<SignalKind.BREAK> | EmptySignal<SignalKind.CONTINUE>;
37
38
  export type Evaluated = VariableValue | ControlSignal;
39
+ export declare function referenceLinkTo(scope: Environment, key: VarKey): ReferenceLink;
38
40
  export declare function isReferenceLink(value: Evaluated): value is ReferenceLink;
39
41
  export declare function isSignal(value: Evaluated): value is ControlSignal;
40
42
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../../src/core/engine/value.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AACrC,MAAM,MAAM,aAAa,GAAG;IAAE,WAAW,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AACnF,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnE,0BAAkB,UAAU;IAC3B,MAAM,IAAA;IACN,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,QAAQ,IAAA;CACR;AACD,uBAAe,MAAM,CAAC,CAAC,SAAS,UAAU;aACb,UAAU,EAAE,CAAC;IAAzC,YAA4B,UAAU,EAAE,CAAC,EAAI;CAC7C;AAED,qBAAa,WAAY,SAAQ,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;aAC7B,KAAK,EAAE,SAAS;IAA5C,YAA4B,KAAK,EAAE,SAAS,EAE3C;CACD;AAED,qBAAa,SAAU,SAAQ,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;aACzB,KAAK,EAAE,SAAS;IAA5C,YAA4B,KAAK,EAAE,SAAS,EAE3C;CACD;AACD,qBAAa,WAAW,CAAC,CAAC,SAAS,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC3F,YAAY,IAAI,EAAE,CAAC,EAElB;CACD;AACD,eAAO,MAAM,YAAY,+BAAoC,CAAC;AAC9D,eAAO,MAAM,eAAe,kCAAuC,CAAC;AAEpE,KAAK,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAChH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC;AAEtD,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAE9E;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,aAAa,CAExE;AACD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,aAAa,CAEjE"}
@@ -1,4 +1,4 @@
1
- // src/core/run/value.ts
1
+ // src/core/engine/value.ts
2
2
  class Signal {
3
3
  signalKind;
4
4
  constructor(signalKind) {
@@ -28,6 +28,9 @@ export class EmptySignal extends Signal {
28
28
  }
29
29
  export const BREAK_SIGNAL = new EmptySignal(2 /* SignalKind.BREAK */); // '累了~'
30
30
  export const CONTINUE_SIGNAL = new EmptySignal(3 /* SignalKind.CONTINUE */); //'偷袭~'
31
+ export function referenceLinkTo(scope, key) {
32
+ return { isReference: true, scope, key };
33
+ }
31
34
  export function isReferenceLink(value) {
32
35
  return !!value?.isReference;
33
36
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../src/core/engine/value.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAgB3B,MAAe,MAAM;IACQ,UAAU;IAAtC,YAA4B,UAAa;0BAAb,UAAU;IAAM,CAAC;CAC7C;AACD,aAAa;AACb,MAAM,OAAO,WAAY,SAAQ,MAAyB;IAC7B,KAAK;IAAjC,YAA4B,KAAgB;QAC3C,KAAK,2BAAmB,CAAC;qBADE,KAAK;IAEjC,CAAC;CACD;AACD,YAAY;AACZ,MAAM,OAAO,SAAU,SAAQ,MAAuB;IACzB,KAAK;IAAjC,YAA4B,KAAgB;QAC3C,KAAK,yBAAiB,CAAC;qBADI,KAAK;IAEjC,CAAC;CACD;AACD,MAAM,OAAO,WAA8D,SAAQ,MAAS;IAC3F,YAAY,IAAO;QAClB,KAAK,CAAC,IAAI,CAAC,CAAC;IACb,CAAC;CACD;AACD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,WAAW,0BAAkB,CAAC,CAAC,QAAQ;AACvE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,WAAW,6BAAqB,CAAC,CAAC,OAAO;AAK5E,MAAM,UAAU,eAAe,CAAC,KAAkB,EAAE,GAAW;IAC9D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAC1C,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,KAAgB;IAC/C,OAAO,CAAC,CAAE,KAAiC,EAAE,WAAW,CAAC;AAC1D,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,KAAgB;IACxC,OAAO,KAAK,YAAY,MAAM,CAAC;AAChC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type * as AST from '../ast.js';
2
+ import { MeaoiuError } from '../error.js';
3
+ import { type Token } from '../lexer/token.js';
4
+ export type ParseResult = {
5
+ program: AST.Program;
6
+ errors: MeaoiuError[];
7
+ };
8
+ export declare function abstractify(tokens: Token[], isTolerant?: boolean): ParseResult;
9
+ //# sourceMappingURL=abstractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstractor.d.ts","sourceRoot":"","sources":["../../../src/core/parser/abstractor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAoB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAa,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1D,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrB,MAAM,EAAE,WAAW,EAAE,CAAC;CACtB,CAAC;AAUF,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,GAAE,OAAe,GAAG,WAAW,CAiBrF"}