meaoiu 0.1.6 → 0.1.7
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 +2 -5
- package/dist/api/serviceState.d.ts +2 -2
- package/dist/api/serviceState.d.ts.map +1 -1
- package/dist/api/services/completions.d.ts.map +1 -1
- package/dist/api/services/completions.js.map +1 -1
- package/dist/api/services/formatting.js.map +1 -1
- package/dist/api/services/search.d.ts +2 -2
- package/dist/api/services/search.d.ts.map +1 -1
- package/dist/api/utils/astUtils.d.ts +1 -1
- package/dist/api/utils/astUtils.d.ts.map +1 -1
- package/dist/api/utils/astUtils.js.map +1 -1
- package/dist/api/utils/symbolAnalyzer.d.ts.map +1 -1
- package/dist/api/utils/symbolAnalyzer.js +4 -5
- package/dist/api/utils/symbolAnalyzer.js.map +1 -1
- package/dist/api/utils/symbolTable.d.ts +2 -2
- package/dist/api/utils/symbolTable.d.ts.map +1 -1
- package/dist/cli/main.js +20 -24
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/tools/toolUtils.d.ts.map +1 -1
- package/dist/cli/tools/toolUtils.js +4 -6
- package/dist/cli/tools/toolUtils.js.map +1 -1
- package/dist/core/ast.d.ts +4 -4
- package/dist/core/ast.d.ts.map +1 -1
- package/dist/core/builtIns.d.ts +1 -1
- package/dist/core/builtIns.d.ts.map +1 -1
- package/dist/core/builtIns.js.map +1 -1
- package/dist/core/run/environment.d.ts +15 -26
- package/dist/core/run/environment.d.ts.map +1 -1
- package/dist/core/run/environment.js +80 -110
- package/dist/core/run/environment.js.map +1 -1
- package/dist/core/run/interpreter.d.ts.map +1 -1
- package/dist/core/run/interpreter.js +2 -2
- package/dist/core/run/interpreter.js.map +1 -1
- package/dist/core/run/value.d.ts +3 -1
- package/dist/core/run/value.d.ts.map +1 -1
- package/dist/core/run/value.js +3 -0
- package/dist/core/run/value.js.map +1 -1
- package/dist/core/typedef.d.ts +7 -3
- package/dist/core/typedef.d.ts.map +1 -1
- package/dist/core/typedef.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,47 +1,36 @@
|
|
|
1
1
|
import type * as AST from '../ast.js';
|
|
2
2
|
import { type MeaoiuValue } from '../typedef.js';
|
|
3
|
-
import { type Evaluated, type ReferenceLink } from './value.js';
|
|
3
|
+
import { type Evaluated, type ReferenceLink, type VarKey } from './value.js';
|
|
4
4
|
export declare class Environment {
|
|
5
5
|
readonly id: number;
|
|
6
6
|
private static idCounter;
|
|
7
7
|
private parent;
|
|
8
8
|
private readonly variables;
|
|
9
9
|
private readonly functions;
|
|
10
|
-
readonly orderedVariableKeys:
|
|
10
|
+
readonly orderedVariableKeys: VarKey[];
|
|
11
11
|
constructor(parent?: Environment);
|
|
12
|
-
static markReferenceMoved(
|
|
12
|
+
static markReferenceMoved({ scope, key }: ReferenceLink): void;
|
|
13
13
|
static resolveValue(this: void, value: Evaluated): MeaoiuValue;
|
|
14
|
-
/**
|
|
15
|
-
* 剥离层级关系,避免从纸箱往外摸
|
|
16
|
-
*/
|
|
14
|
+
/** 剥离层级关系,避免从纸箱往外摸 */
|
|
17
15
|
isolate(): this;
|
|
18
|
-
hasVariable(key:
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
*/
|
|
22
|
-
declare(key: string | number): ReferenceLink;
|
|
23
|
-
/**
|
|
24
|
-
* 为已存在的变量赋值。
|
|
25
|
-
*/
|
|
26
|
-
assign(key: string | number, value: Evaluated, operator: AST.AssignmentStatement['operator']): ReferenceLink;
|
|
27
|
-
lookup(key: string | number, originalKey?: string | number, checkMoved?: boolean): ReferenceLink;
|
|
28
|
-
private findVariableScope;
|
|
16
|
+
hasVariable(key: VarKey): boolean;
|
|
17
|
+
/** 检查当前环境是否在边界内 */
|
|
18
|
+
isInsideOf(boundary: Maybe<Environment>): boolean;
|
|
29
19
|
declareFunction(name: string, func: AST.FunctionDeclaration): void;
|
|
30
|
-
findFunction(name: string): AST.FunctionDeclaration
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
findFunction(name: string): Maybe<AST.FunctionDeclaration>;
|
|
21
|
+
lookup(key: VarKey, movedSensitive?: boolean, throwUndeclared?: boolean): ReferenceLink;
|
|
22
|
+
/** 声明全新空变量 */
|
|
23
|
+
declare(key: VarKey): ReferenceLink;
|
|
24
|
+
/** 为已有变量赋值 */
|
|
25
|
+
assign(key: VarKey, value: Evaluated, operator: AST.AssignmentStatement['operator']): ReferenceLink;
|
|
26
|
+
addMember(key: VarKey, value: Evaluated): ReferenceLink;
|
|
33
27
|
createShallowCopy(): Environment;
|
|
34
28
|
/**
|
|
35
29
|
* 创建一个「合并视图」。
|
|
36
30
|
* 将创建一个新纸箱,该纸箱按顺序包含来自 A (this) 和 B (other) 的所有引用。
|
|
37
|
-
*
|
|
38
|
-
* 用户定义的键如果冲突,A 优先。
|
|
31
|
+
* 自动生成的键会被重命名以保证顺序,用户定义的键如果冲突,A 优先。
|
|
39
32
|
*/
|
|
40
33
|
createMergedView(other: Environment): Environment;
|
|
41
|
-
/**
|
|
42
|
-
* 检查当前环境是否严格位于 ancestor 的「内部」。
|
|
43
|
-
*/
|
|
44
|
-
isInsideOf(ancestor: Environment | undefined): boolean;
|
|
45
34
|
toString(): string;
|
|
46
35
|
get length(): number;
|
|
47
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/core/run/environment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/core/run/environment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3D,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,SAEb;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"}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
// src/core/run/environment.ts
|
|
2
2
|
import logger from '../run/logger.js';
|
|
3
|
-
import { isReferenceLink, isSignal, } from './value.js';
|
|
3
|
+
import { isReferenceLink, isSignal, referenceLinkTo, } from './value.js';
|
|
4
4
|
// 防碰撞自动变量名
|
|
5
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
|
+
};
|
|
6
17
|
export class Environment {
|
|
7
18
|
id;
|
|
8
19
|
static idCounter = 0;
|
|
@@ -15,8 +26,8 @@ export class Environment {
|
|
|
15
26
|
this.id = Environment.idCounter++;
|
|
16
27
|
logger.debug(`[ENV] 新建环境 #${this.id} (上级: ${this.parent?.id ?? '无'})`);
|
|
17
28
|
}
|
|
18
|
-
static markReferenceMoved(
|
|
19
|
-
|
|
29
|
+
static markReferenceMoved({ scope, key }) {
|
|
30
|
+
scope.variables.get(key).moved = true;
|
|
20
31
|
}
|
|
21
32
|
static resolveValue(value) {
|
|
22
33
|
if (isSignal(value))
|
|
@@ -25,37 +36,69 @@ export class Environment {
|
|
|
25
36
|
value = value.scope.variables.get(value.key).value;
|
|
26
37
|
return value;
|
|
27
38
|
}
|
|
28
|
-
/**
|
|
29
|
-
* 剥离层级关系,避免从纸箱往外摸
|
|
30
|
-
*/
|
|
39
|
+
/** 剥离层级关系,避免从纸箱往外摸 */
|
|
31
40
|
isolate() {
|
|
32
41
|
return ((this.parent = undefined), this);
|
|
33
42
|
}
|
|
34
43
|
hasVariable(key) {
|
|
35
44
|
return this.variables.has(key);
|
|
36
45
|
}
|
|
37
|
-
/**
|
|
38
|
-
|
|
39
|
-
|
|
46
|
+
/** 检查当前环境是否在边界内 */
|
|
47
|
+
isInsideOf(boundary) {
|
|
48
|
+
if (!boundary)
|
|
49
|
+
return false;
|
|
50
|
+
for (let current = this; current; current = current.parent)
|
|
51
|
+
if (current === boundary)
|
|
52
|
+
return true;
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
declareFunction(name, func) {
|
|
56
|
+
this.functions.set(name, func);
|
|
57
|
+
}
|
|
58
|
+
findFunction(name) {
|
|
59
|
+
let func;
|
|
60
|
+
for (let scope = this; scope && !(func = scope.functions.get(name)); scope = scope.parent)
|
|
61
|
+
;
|
|
62
|
+
return func;
|
|
63
|
+
}
|
|
64
|
+
lookup(key, movedSensitive = true, throwUndeclared = false) {
|
|
65
|
+
let scope = this; // 把 let originalScope 放这 TS 会懵
|
|
66
|
+
while (!scope.variables.has(key)) {
|
|
67
|
+
if ((scope = scope.parent))
|
|
68
|
+
continue;
|
|
69
|
+
if (throwUndeclared)
|
|
70
|
+
throw new Error(`还不认识「${key}」喵!要先“蹭”一下喵!`);
|
|
71
|
+
const notFunctionName = isAutoKey(key) || !this.findFunction(key);
|
|
72
|
+
const errorMessage = notFunctionName
|
|
73
|
+
? `没找到叫做「${key}」的玩具,是不是被你藏起来了`
|
|
74
|
+
: `是不是想把${"\u8BA1\u8C0B" /* TypeName.FUNCTION */}「${key}」当成玩具`;
|
|
75
|
+
throw new Error(`咦?${errorMessage}喵?`);
|
|
76
|
+
}
|
|
77
|
+
// 引用链循环追踪
|
|
78
|
+
const checkMoved = movedSensitive ? throwIfMoved : DO_NOTHING;
|
|
79
|
+
for (let originalScope = scope, originalKey = key;;) {
|
|
80
|
+
const { value, moved } = originalScope.variables.get(originalKey);
|
|
81
|
+
checkMoved(this, key, originalKey, moved);
|
|
82
|
+
logger.debug(`[ENV #${this.id}] 查找: 在环境 #${originalScope.id} 中找到「${originalKey}」`);
|
|
83
|
+
if (!isReferenceLink(value))
|
|
84
|
+
return referenceLinkTo(originalScope, originalKey);
|
|
85
|
+
({ scope: originalScope, key: originalKey } = value);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/** 声明全新空变量 */
|
|
40
89
|
declare(key) {
|
|
41
90
|
if (this.variables.has(key))
|
|
42
91
|
throw new Error(`变量「${key}」已经被“蹭”过一次了喵!`);
|
|
43
92
|
logger.debug(`[ENV #${this.id}] 声明: 变量「${key}」`);
|
|
44
93
|
this.variables.set(key, { value: null, moved: false });
|
|
45
94
|
this.orderedVariableKeys.push(key);
|
|
46
|
-
return this
|
|
95
|
+
return referenceLinkTo(this, key);
|
|
47
96
|
}
|
|
48
|
-
/**
|
|
49
|
-
* 为已存在的变量赋值。
|
|
50
|
-
*/
|
|
97
|
+
/** 为已有变量赋值 */
|
|
51
98
|
assign(key, value, operator) {
|
|
52
|
-
//
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
throw new Error(`还不认识「${key}」喵!要先“蹭”一下喵!`);
|
|
56
|
-
// 顺着引用链一直往下找,找到真正的「碗」
|
|
57
|
-
for (let targetVar; (targetVar = targetScope.variables.get(targetKey)) && isReferenceLink(targetVar.value); { scope: targetScope, key: targetKey } = targetVar.value)
|
|
58
|
-
;
|
|
99
|
+
// 查找目标,找到真正的「碗」
|
|
100
|
+
const referenceLink = this.lookup(key, false, true);
|
|
101
|
+
const { scope: targetScope, key: targetKey } = referenceLink;
|
|
59
102
|
// 在最终位置赋值
|
|
60
103
|
let finalValue;
|
|
61
104
|
if (operator === 6 /* TokenKind.ASSIGNMENT_IS */) {
|
|
@@ -66,119 +109,46 @@ export class Environment {
|
|
|
66
109
|
}
|
|
67
110
|
else {
|
|
68
111
|
finalValue = Environment.resolveValue(value);
|
|
69
|
-
if (operator ===
|
|
70
|
-
if (
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
else if (operator === 7 /* TokenKind.ASSIGNMENT_LIKE */ && finalValue instanceof Environment) {
|
|
74
|
-
finalValue = finalValue.createShallowCopy(); // 复制一个纸箱,实际上是创建一个「视图」
|
|
112
|
+
if (operator === 7 /* TokenKind.ASSIGNMENT_LIKE */) {
|
|
113
|
+
if (finalValue instanceof Environment)
|
|
114
|
+
finalValue = finalValue.createShallowCopy(); // 复制纸箱即创建「视图」
|
|
75
115
|
}
|
|
116
|
+
else if (operator === 8 /* TokenKind.ASSIGNMENT_ONLY */ && isReferenceLink(value))
|
|
117
|
+
Environment.markReferenceMoved(value); // 引用被移动,打上标记
|
|
76
118
|
}
|
|
77
119
|
targetScope.variables.set(targetKey, { value: finalValue, moved: false });
|
|
78
120
|
logger.debug(`[ENV #${this.id}] 赋值: 环境 #${targetScope.id} 中的「${targetKey}」被赋予 (方式: ${operator}) 值:`, finalValue);
|
|
79
|
-
return
|
|
80
|
-
}
|
|
81
|
-
lookup(key, originalKey = key /* 未定源时为第一环查询 */, checkMoved = true) {
|
|
82
|
-
// 查找符号
|
|
83
|
-
const scope = this.findVariableScope(key);
|
|
84
|
-
if (!scope) {
|
|
85
|
-
const errorMessage = !isAutoKey(key) && this.findFunction(key)
|
|
86
|
-
? `是不是想把${"\u8BA1\u8C0B" /* TypeName.FUNCTION */}「${key}」当成玩具喵?`
|
|
87
|
-
: `没找到叫做「${key}」的玩具,是不是被你藏起来了喵?`;
|
|
88
|
-
throw new Error(`咦?${errorMessage}`);
|
|
89
|
-
}
|
|
90
|
-
const { value, moved } = scope.variables.get(key);
|
|
91
|
-
// 检查「已移动」状态
|
|
92
|
-
if (moved && checkMoved) {
|
|
93
|
-
const errorMessage = isAutoKey(originalKey)
|
|
94
|
-
? `纸箱里的「${this.orderedVariableKeys.indexOf(originalKey) + 1}」号玩具不见了,一定是被谁拿走了喵!`
|
|
95
|
-
: originalKey === key
|
|
96
|
-
? `藏在「${originalKey}」里的东西被拿走了,现在是只空碗喵!`
|
|
97
|
-
: `碰不到「${originalKey}」,因为它的本体「${key}」被拿走了喵!`; // 起终点不一致,报告起终点
|
|
98
|
-
throw new Error(`喵呜!${errorMessage}`);
|
|
99
|
-
}
|
|
100
|
-
logger.debug(`[ENV #${this.id}] 查找: 在环境 #${scope.id} 中找到「${key}」`);
|
|
101
|
-
// 递归查找(继续传递 originalKey)
|
|
102
|
-
if (isReferenceLink(value))
|
|
103
|
-
return value.scope.lookup(value.key, originalKey, checkMoved);
|
|
104
|
-
return { isReference: true, scope, key };
|
|
105
|
-
}
|
|
106
|
-
findVariableScope(key) {
|
|
107
|
-
return this.variables.has(key) ? this : this.parent?.findVariableScope(key);
|
|
108
|
-
}
|
|
109
|
-
declareFunction(name, func) {
|
|
110
|
-
this.functions.set(name, func);
|
|
111
|
-
}
|
|
112
|
-
findFunction(name) {
|
|
113
|
-
return this.functions.get(name) ?? this.parent?.findFunction(name);
|
|
114
|
-
}
|
|
115
|
-
declareReference(key, targetScope, targetKey) {
|
|
116
|
-
if (this.variables.has(key))
|
|
117
|
-
throw new Error(`已经“蹭”过一次「${key}」了喵!`);
|
|
118
|
-
this.variables.set(key, { value: { isReference: true, scope: targetScope, key: targetKey }, moved: false });
|
|
119
|
-
this.orderedVariableKeys.push(key); // 确保引用也被添加到有序列表中
|
|
121
|
+
return referenceLink;
|
|
120
122
|
}
|
|
121
123
|
addMember(key, value) {
|
|
122
124
|
return (this.declare(key), this.assign(key, value, 6 /* TokenKind.ASSIGNMENT_IS */));
|
|
123
125
|
}
|
|
124
126
|
createShallowCopy() {
|
|
125
127
|
const newEnv = new Environment();
|
|
126
|
-
for (const
|
|
127
|
-
|
|
128
|
-
newEnv.declareReference(varKey, originalScope, originalKey);
|
|
129
|
-
}
|
|
128
|
+
for (const key of this.orderedVariableKeys)
|
|
129
|
+
newEnv.addMember(key, this.lookup(key, false));
|
|
130
130
|
return newEnv;
|
|
131
131
|
}
|
|
132
132
|
/**
|
|
133
133
|
* 创建一个「合并视图」。
|
|
134
134
|
* 将创建一个新纸箱,该纸箱按顺序包含来自 A (this) 和 B (other) 的所有引用。
|
|
135
|
-
*
|
|
136
|
-
* 用户定义的键如果冲突,A 优先。
|
|
135
|
+
* 自动生成的键会被重命名以保证顺序,用户定义的键如果冲突,A 优先。
|
|
137
136
|
*/
|
|
138
137
|
createMergedView(other) {
|
|
139
138
|
const newEnv = new Environment();
|
|
140
|
-
const addedKeys = new Set();
|
|
141
139
|
let autoIndexCounter = 0; // 为新视图创建全新的自动索引
|
|
142
|
-
// 1. 添加来自 A (this)
|
|
143
|
-
for (const
|
|
144
|
-
|
|
145
|
-
if (isAutoKey(varKey)) {
|
|
146
|
-
// 重命名自动键
|
|
147
|
-
newEnv.declareReference(autoIndexCounter++, originalScope, originalKey);
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
// 添加用户定义的键
|
|
151
|
-
newEnv.declareReference(varKey, originalScope, originalKey);
|
|
152
|
-
addedKeys.add(varKey);
|
|
153
|
-
}
|
|
140
|
+
// 1. 添加来自 A (this) 的所有引用。用户键直接用
|
|
141
|
+
for (const key of this.orderedVariableKeys) {
|
|
142
|
+
newEnv.addMember(isAutoKey(key) ? autoIndexCounter++ : key, this.lookup(key, false));
|
|
154
143
|
}
|
|
155
|
-
// 2. 添加来自 B (other)
|
|
156
|
-
for (const
|
|
157
|
-
const
|
|
158
|
-
if (
|
|
159
|
-
|
|
160
|
-
newEnv.declareReference(autoIndexCounter++, originalScope, originalKey);
|
|
161
|
-
}
|
|
162
|
-
else if (!addedKeys.has(varKey)) {
|
|
163
|
-
// 用户定义的键,检查冲突
|
|
164
|
-
newEnv.declareReference(varKey, originalScope, originalKey);
|
|
165
|
-
addedKeys.add(varKey);
|
|
166
|
-
}
|
|
144
|
+
// 2. 添加来自 B (other) 的引用。用户键弃重复
|
|
145
|
+
for (const key of other.orderedVariableKeys) {
|
|
146
|
+
const targetKey = isAutoKey(key) ? autoIndexCounter++ : newEnv.hasVariable(key) ? null : key;
|
|
147
|
+
if (targetKey !== null)
|
|
148
|
+
newEnv.addMember(targetKey, other.lookup(key, false));
|
|
167
149
|
}
|
|
168
150
|
return newEnv;
|
|
169
151
|
}
|
|
170
|
-
/**
|
|
171
|
-
* 检查当前环境是否严格位于 ancestor 的「内部」。
|
|
172
|
-
*/
|
|
173
|
-
isInsideOf(ancestor) {
|
|
174
|
-
if (!ancestor)
|
|
175
|
-
return false;
|
|
176
|
-
for (let current = this; current; current = current.parent) {
|
|
177
|
-
if (current === ancestor)
|
|
178
|
-
return true;
|
|
179
|
-
}
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
152
|
toString() {
|
|
183
153
|
return `[= ${this.orderedVariableKeys
|
|
184
154
|
.map((key, index) => (isAutoKey(key) ? `(${index + 1})` : `{${key}}`))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/core/run/environment.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAI9B,OAAO,MAAM,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EACN,eAAe,EACf,QAAQ,
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/core/run/environment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../../src/core/run/interpreter.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,
|
|
1
|
+
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../../src/core/run/interpreter.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,CAiYpB"}
|
|
@@ -4,7 +4,7 @@ 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),
|
|
@@ -298,7 +298,7 @@ export async function evaluate(node, env, builtIns, boundaryEnv, newEnvMode = 0
|
|
|
298
298
|
const paramName = paramNames[i];
|
|
299
299
|
const argVarKey = argsCollection.orderedVariableKeys[i];
|
|
300
300
|
// 创建从“函数参数名”到“调用纸箱中变量”的引用
|
|
301
|
-
functionEnv.
|
|
301
|
+
functionEnv.addMember(paramName, referenceLinkTo(argsCollection, argVarKey));
|
|
302
302
|
}
|
|
303
303
|
const result = await evaluate(func.body, functionEnv, builtIns, { ...boundaryEnv, [5 /* NodeKind.ReturnStatement */]: functionEnv }, 1 /* NewEnvMode.FUNC */);
|
|
304
304
|
if (result instanceof ReturnValue)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../../src/core/run/interpreter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../../src/core/run/interpreter.ts"],"names":[],"mappings":"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"}
|
package/dist/core/run/value.d.ts
CHANGED
|
@@ -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:
|
|
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 {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../../src/core/run/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,aAAa,GAAG;IAAE,WAAW,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../../src/core/run/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"}
|
package/dist/core/run/value.js
CHANGED
|
@@ -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
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value.js","sourceRoot":"","sources":["../../../src/core/run/value.ts"],"names":[],"mappings":"AAAA,wBAAwB;
|
|
1
|
+
{"version":3,"file":"value.js","sourceRoot":"","sources":["../../../src/core/run/value.ts"],"names":[],"mappings":"AAAA,wBAAwB;AAgBxB,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"}
|
package/dist/core/typedef.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type ArithmeticTokenKind, type ComparisonTokenKind, type Token } from './lexer/token.js';
|
|
2
2
|
import { Environment } from './run/environment.js';
|
|
3
|
-
|
|
3
|
+
declare global {
|
|
4
|
+
type Maybe<T> = T | undefined;
|
|
5
|
+
type Nullable<T> = T | null;
|
|
6
|
+
}
|
|
7
|
+
export type MeaoiuValue = Nullable<number | string | boolean | Environment>;
|
|
4
8
|
export declare const enum MeaoiuType {
|
|
5
9
|
NUMBER = 0,// 摸数
|
|
6
10
|
STRING = 1,// 闲话
|
|
@@ -33,10 +37,10 @@ export declare function getMeaoiuType(v: unknown): MeaoiuType;
|
|
|
33
37
|
* 检查算术运算的类型是否合法
|
|
34
38
|
* @returns 错误信息,如果合法则返回 undefined
|
|
35
39
|
*/
|
|
36
|
-
export declare function checkArithmeticOperation(op: Token<ArithmeticTokenKind>, leftType: MeaoiuType, rightType: MeaoiuType): string
|
|
40
|
+
export declare function checkArithmeticOperation(op: Token<ArithmeticTokenKind>, leftType: MeaoiuType, rightType: MeaoiuType): Maybe<string>;
|
|
37
41
|
/**
|
|
38
42
|
* 检查比较运算的类型是否合法
|
|
39
43
|
* @returns 错误信息,如果合法则返回 undefined
|
|
40
44
|
*/
|
|
41
|
-
export declare function checkComparisonOperation(op: Token<ComparisonTokenKind>, leftType: MeaoiuType, rightType: MeaoiuType): string
|
|
45
|
+
export declare function checkComparisonOperation(op: Token<ComparisonTokenKind>, leftType: MeaoiuType, rightType: MeaoiuType): Maybe<string>;
|
|
42
46
|
//# sourceMappingURL=typedef.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedef.d.ts","sourceRoot":"","sources":["../../src/core/typedef.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC7G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"typedef.d.ts","sourceRoot":"","sources":["../../src/core/typedef.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC7G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,CAAC,MAAM,CAAC;IACd,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC9B,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAE5B;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC;AAE5E,0BAAkB,UAAU;IAC3B,MAAM,IAAA,CAAE,KAAK;IACb,MAAM,IAAA,CAAE,KAAK;IACb,OAAO,IAAA,CAAE,KAAK;IACd,IAAI,IAAA,CAAE,KAAK;IACX,QAAQ,IAAA,CAAE,KAAK;IACf,UAAU,IAAA,CAAE,KAAK;IACjB,OAAO,IAAA;CACP;AAED,0BAAkB,QAAQ;IACzB,MAAM,iBAAO;IACb,MAAM,iBAAO;IACb,OAAO,iBAAO;IACd,IAAI,iBAAO;IACX,QAAQ,iBAAO;IACf,UAAU,iBAAO;IACjB,OAAO,iBAAO;CACd;AAED,eAAO,MAAM,SAAS;;;;;;;;CAQ2B,CAAC;AAalD,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,UAAU,CAKpD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACvC,EAAE,EAAE,KAAK,CAAC,mBAAmB,CAAC,EAC9B,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,UAAU,GACnB,KAAK,CAAC,MAAM,CAAC,CAmBf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACvC,EAAE,EAAE,KAAK,CAAC,mBAAmB,CAAC,EAC9B,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,UAAU,GACnB,KAAK,CAAC,MAAM,CAAC,CAgBf"}
|
package/dist/core/typedef.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedef.js","sourceRoot":"","sources":["../../src/core/typedef.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAGtB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"typedef.js","sourceRoot":"","sources":["../../src/core/typedef.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAGtB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AA8BnD,MAAM,CAAC,MAAM,SAAS,GAAG;IACxB,2BAAmB,sCAAiB;IACpC,2BAAmB,sCAAiB;IACpC,4BAAoB,uCAAkB;IACtC,yBAAiB,oCAAe;IAChC,6BAAqB,wCAAmB;IACxC,+BAAuB,0CAAqB;IAC5C,4BAAoB,uCAAkB;CACU,CAAC;AAGlD,MAAM,OAAO,GAAG;IACf,MAAM,2BAAmB;IACzB,MAAM,2BAAmB;IACzB,OAAO,4BAAoB;IAC3B,IAAI,yBAAiB;IACrB,QAAQ,6BAAqB;IAC7B,UAAU,+BAAuB;IACjC,OAAO,4BAAoB;CACuB,CAAC;AAEpD,MAAM,UAAU,aAAa,CAAC,CAAU;IACvC,IAAI,CAAC,IAAI,IAAI;QAAE,+BAAuB;IACtC,IAAI,CAAC,YAAY,WAAW;QAAE,qCAA6B;IAC3D,IAAI,CAAC,KAAK,CAAC;QAAE,kCAA0B;IACvC,OAAO,OAAO,CAAC,OAAO,CAAe,CAAC,8BAAsB,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACvC,EAA8B,EAC9B,QAAoB,EACpB,SAAqB;IAErB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,EAAE,CAAC,KAAK,gBAAgB,SAAS,CAAC,QAAQ,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC1F,CAAC;IAED,IAAI,QAAQ,8BAAsB;QAAE,OAAO,SAAS,CAAC,CAAC,YAAY;IAElE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACjB;YACC,IAAI,QAAQ,8BAAsB,IAAI,QAAQ,kCAA0B;gBAAE,OAAO,SAAS,CAAC;YAC3F,OAAO,IAAI,EAAE,CAAC,KAAK,YAAY,oCAAe,MAAM,oCAAe,MAAM,wCAAmB,MAAM,CAAC;QACpG,yCAAgC;QAChC,4CAAmC;QACnC;YACC,OAAO,IAAI,EAAE,CAAC,KAAK,cAAc,oCAAe,OAAO,CAAC;QACzD;YACC,MAAM,EAAE,GAAU,EAAE,CAAC;YACrB,OAAO,IAAI,EAAE,YAAY,CAAC;IAC5B,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACvC,EAA8B,EAC9B,QAAoB,EACpB,SAAqB;IAErB,qBAAqB;IACrB,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;IACvB,IAAI,MAAM,wCAA+B,IAAI,MAAM,4CAAmC;QAAE,OAAO,SAAS,CAAC,CAAC,KAAK;IAE/G,YAAY;IACZ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,EAAE,CAAC,KAAK,gBAAgB,SAAS,CAAC,QAAQ,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC1F,CAAC;IAED,aAAa;IACb,IAAI,QAAQ,8BAAsB,IAAI,QAAQ,8BAAsB,EAAE,CAAC;QACtE,OAAO,IAAI,EAAE,CAAC,KAAK,YAAY,oCAAe,MAAM,oCAAe,MAAM,CAAC;IAC3E,CAAC;IAED,OAAO,SAAS,CAAC,CAAC,KAAK;AACxB,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,uBAAuB,CAAC;AAE5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,MAAM,CAAC,MAAM,OAAO,GAAG,oBAAoB,CAAC;AAE5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC"}
|