meaoiu 0.1.2 → 0.1.4
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/LANGUAGE_GUIDE.md +1 -0
- package/README.md +385 -336
- package/dist/api/serviceState.d.ts +1 -1
- package/dist/api/serviceState.d.ts.map +1 -1
- package/dist/api/serviceState.js +1 -1
- package/dist/api/serviceState.js.map +1 -1
- package/dist/api/services/completions.d.ts.map +1 -1
- package/dist/api/services/completions.js +4 -3
- package/dist/api/services/completions.js.map +1 -1
- package/dist/api/services/formatting.d.ts +6 -1
- package/dist/api/services/formatting.d.ts.map +1 -1
- package/dist/api/services/formatting.js +156 -146
- package/dist/api/services/formatting.js.map +1 -1
- package/dist/api/services/highlight.d.ts.map +1 -1
- package/dist/api/services/highlight.js +28 -38
- package/dist/api/services/highlight.js.map +1 -1
- package/dist/api/services/inlayHints.d.ts +1 -1
- package/dist/api/services/inlayHints.d.ts.map +1 -1
- package/dist/api/services/inlayHints.js +4 -8
- package/dist/api/services/inlayHints.js.map +1 -1
- package/dist/api/services/search.d.ts.map +1 -1
- package/dist/api/services/search.js +7 -3
- package/dist/api/services/search.js.map +1 -1
- package/dist/api/utils/astUtils.d.ts.map +1 -1
- package/dist/api/utils/astUtils.js +18 -12
- package/dist/api/utils/astUtils.js.map +1 -1
- package/dist/api/utils/symbolAnalyzer.d.ts +1 -1
- package/dist/api/utils/symbolAnalyzer.d.ts.map +1 -1
- package/dist/api/utils/symbolAnalyzer.js +60 -63
- package/dist/api/utils/symbolAnalyzer.js.map +1 -1
- package/dist/cli/main.d.ts +0 -1
- package/dist/cli/main.js +3 -9
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/tools/formatter.d.ts.map +1 -1
- package/dist/cli/tools/formatter.js +13 -3
- package/dist/cli/tools/formatter.js.map +1 -1
- package/dist/cli/tools/searcher.js +1 -1
- package/dist/cli/tools/searcher.js.map +1 -1
- package/dist/cli/tools/starter.d.ts +1 -2
- package/dist/cli/tools/starter.d.ts.map +1 -1
- package/dist/cli/tools/starter.js +5 -3
- package/dist/cli/tools/starter.js.map +1 -1
- package/dist/cli/tools/toolUtils.d.ts.map +1 -1
- package/dist/cli/tools/toolUtils.js +9 -13
- package/dist/cli/tools/toolUtils.js.map +1 -1
- package/dist/core/ast.d.ts +3 -2
- package/dist/core/ast.d.ts.map +1 -1
- package/dist/core/builtIns.d.ts.map +1 -1
- package/dist/core/builtIns.js +3 -1
- package/dist/core/builtIns.js.map +1 -1
- package/dist/core/error.d.ts +1 -0
- package/dist/core/error.d.ts.map +1 -1
- package/dist/core/error.js +4 -11
- package/dist/core/error.js.map +1 -1
- package/dist/core/lexer/preprocessor.d.ts.map +1 -1
- package/dist/core/lexer/preprocessor.js +30 -57
- package/dist/core/lexer/preprocessor.js.map +1 -1
- package/dist/core/lexer/tokenizer.d.ts +52 -52
- package/dist/core/lexer/tokenizer.d.ts.map +1 -1
- package/dist/core/lexer/tokenizer.js +59 -52
- package/dist/core/lexer/tokenizer.js.map +1 -1
- package/dist/core/parser.d.ts.map +1 -1
- package/dist/core/parser.js +194 -209
- package/dist/core/parser.js.map +1 -1
- package/dist/core/run/environment.js +3 -3
- package/dist/core/run/interpreter.d.ts.map +1 -1
- package/dist/core/run/interpreter.js +152 -158
- package/dist/core/run/interpreter.js.map +1 -1
- package/dist/core/run/io.d.ts.map +1 -1
- package/dist/core/run/io.js +4 -0
- package/dist/core/run/io.js.map +1 -1
- package/dist/core/typedef.js +5 -5
- package/package.json +3 -3
|
@@ -20,7 +20,7 @@ export function references(sourceCode, filePath, posRaw) {
|
|
|
20
20
|
}
|
|
21
21
|
export function hover(sourceCode, posRaw) {
|
|
22
22
|
const pos = parsePosition(posRaw);
|
|
23
|
-
const hoverInfo = getHoverInfo(new ServiceState(0, sourceCode), pos);
|
|
23
|
+
const hoverInfo = getHoverInfo(new ServiceState(0, sourceCode), pos, 'plaintext');
|
|
24
24
|
if (!hoverInfo)
|
|
25
25
|
return console.log(`[悬停] 在 '${posRaw}' 位置找不到可显示的信息。`);
|
|
26
26
|
console.log('---- 悬停信息 ----');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searcher.js","sourceRoot":"","sources":["../../../src/cli/tools/searcher.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAE5B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,UAAU,UAAU,CAAC,UAAkB,EAAE,QAAgB,EAAE,MAAc;IAC9E,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;IAE5E,MAAM,OAAO,GAAG,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,YAAY,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,WAAW,cAAc,CAAC,IAAI,OAAO,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAAkB,EAAE,QAAgB,EAAE,MAAc;IAC9E,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;IACxE,IAAI,CAAC,UAAU,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,YAAY,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,SAAS,UAAU,CAAC,MAAM,OAAO,CAAC,CAAC;IACnE,KAAK,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,UAAU;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,UAAkB,EAAE,MAAc;IACvD,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"searcher.js","sourceRoot":"","sources":["../../../src/cli/tools/searcher.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAE5B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,UAAU,UAAU,CAAC,UAAkB,EAAE,QAAgB,EAAE,MAAc;IAC9E,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;IAE5E,MAAM,OAAO,GAAG,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,YAAY,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,WAAW,cAAc,CAAC,IAAI,OAAO,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAAkB,EAAE,QAAgB,EAAE,MAAc;IAC9E,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;IACxE,IAAI,CAAC,UAAU,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,YAAY,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,SAAS,UAAU,CAAC,MAAM,OAAO,CAAC,CAAC;IACnE,KAAK,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,UAAU;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,UAAkB,EAAE,MAAc;IACvD,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAClF,IAAI,CAAC,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,gBAAgB,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function run(sourceCode: string, ioConfig: IOConfig, filePath: string, debug: boolean): Promise<void>;
|
|
1
|
+
export declare function run(sourceCode: string, filePath: string, debug: boolean): Promise<void>;
|
|
3
2
|
//# sourceMappingURL=starter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starter.d.ts","sourceRoot":"","sources":["../../../src/cli/tools/starter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"starter.d.ts","sourceRoot":"","sources":["../../../src/cli/tools/starter.ts"],"names":[],"mappings":"AAKA,wBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB7F"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
// src/cli/tools/starter.ts
|
|
2
2
|
import { execute } from '../../index.js';
|
|
3
|
-
import { formatError } from './toolUtils.js';
|
|
4
|
-
export async function run(sourceCode,
|
|
3
|
+
import { formatError, prompt } from './toolUtils.js';
|
|
4
|
+
export async function run(sourceCode, filePath, debug) {
|
|
5
5
|
if (/^\s*$/.test(sourceCode))
|
|
6
6
|
return console.error('没有字喵!');
|
|
7
|
+
const ioConfig = { onPrint: console.log, onPrompt: prompt, styleize: true };
|
|
8
|
+
const runOptions = { logLevel: debug ? 0 /* LogLevel.DEBUG */ : 2 /* LogLevel.WARN */ };
|
|
7
9
|
let start = 0, end = 0;
|
|
8
10
|
console.log('=============================');
|
|
9
11
|
console.log('执行 Meaoiu 代码...');
|
|
10
12
|
console.log('=============================');
|
|
11
13
|
try {
|
|
12
14
|
start = performance.now();
|
|
13
|
-
await execute(sourceCode, ioConfig,
|
|
15
|
+
await execute(sourceCode, ioConfig, runOptions);
|
|
14
16
|
end = performance.now();
|
|
15
17
|
}
|
|
16
18
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starter.js","sourceRoot":"","sources":["../../../src/cli/tools/starter.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"starter.js","sourceRoot":"","sources":["../../../src/cli/tools/starter.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B,OAAO,EAAE,OAAO,EAAY,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,UAAkB,EAAE,QAAgB,EAAE,KAAc;IAC7E,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5E,MAAM,UAAU,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,wBAAgB,CAAC,sBAAc,EAAE,CAAC;IAExE,IAAI,KAAK,GAAG,CAAC,EACZ,GAAG,GAAG,CAAC,CAAC;IACT,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,IAAI,CAAC;QACJ,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAChD,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,IAAI,GAAG,GAAG,KAAK;QAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,KAAK,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;AACvG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolUtils.d.ts","sourceRoot":"","sources":["../../../src/cli/tools/toolUtils.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"toolUtils.d.ts","sourceRoot":"","sources":["../../../src/cli/tools/toolUtils.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAO3F;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAkCxF;AAED,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKxD"}
|
|
@@ -4,14 +4,13 @@ import readline from 'node:readline';
|
|
|
4
4
|
import stringWidth from 'string-width';
|
|
5
5
|
import { MeaoiuError, parseError } from '../../index.js';
|
|
6
6
|
export function parsePosition(pos) {
|
|
7
|
-
const
|
|
8
|
-
if (
|
|
7
|
+
const match = /^(\d+):(\d+)$/.exec(pos);
|
|
8
|
+
if (!match)
|
|
9
9
|
throw parseError("位置参数格式错误,应为 '行:列',如 '2:3'");
|
|
10
|
-
const line =
|
|
11
|
-
const col =
|
|
12
|
-
if (
|
|
10
|
+
const line = +match[1];
|
|
11
|
+
const col = +match[2];
|
|
12
|
+
if (line <= 0 || col <= 0)
|
|
13
13
|
throw parseError('位置参数格式错误,行和列必须为正整数');
|
|
14
|
-
}
|
|
15
14
|
return { line, col, character: col };
|
|
16
15
|
}
|
|
17
16
|
export function formatError(error, sourceCode, filePath) {
|
|
@@ -40,13 +39,10 @@ export function formatError(error, sourceCode, filePath) {
|
|
|
40
39
|
].join('\n');
|
|
41
40
|
return formattedMessage;
|
|
42
41
|
}
|
|
43
|
-
export
|
|
42
|
+
export function prompt(question) {
|
|
44
43
|
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
resolve(answer);
|
|
49
|
-
});
|
|
50
|
-
});
|
|
44
|
+
const { promise, resolve } = Promise.withResolvers();
|
|
45
|
+
rl.question(question, answer => (rl.close(), resolve(answer)));
|
|
46
|
+
return promise;
|
|
51
47
|
}
|
|
52
48
|
//# sourceMappingURL=toolUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolUtils.js","sourceRoot":"","sources":["../../../src/cli/tools/toolUtils.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAE7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,UAAU,aAAa,CAAC,GAAW;IACxC,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"toolUtils.js","sourceRoot":"","sources":["../../../src/cli/tools/toolUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/core/ast.d.ts
CHANGED
|
@@ -26,14 +26,15 @@ export declare const enum NodeKind {
|
|
|
26
26
|
LogicalExpression = 23
|
|
27
27
|
}
|
|
28
28
|
export type Node = Statement | Expression | Program | ErrorNode;
|
|
29
|
+
export type Comments = Token<TokenKind.COMMENT>[];
|
|
29
30
|
export interface AstNode<T extends NodeKind = NodeKind> {
|
|
30
31
|
kind: T;
|
|
31
32
|
line: number;
|
|
32
33
|
col: number;
|
|
33
34
|
endLine: number;
|
|
34
35
|
endCol: number;
|
|
35
|
-
leadingComments?:
|
|
36
|
-
trailingComments?:
|
|
36
|
+
leadingComments?: Comments;
|
|
37
|
+
trailingComments?: Comments;
|
|
37
38
|
}
|
|
38
39
|
export interface ErrorNode extends AstNode<NodeKind.ErrorNode> {
|
|
39
40
|
message: string;
|
package/dist/core/ast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/core/ast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE1H,0BAAkB,QAAQ;IAEzB,SAAS,IAAA;IACT,OAAO,IAAA;IAGP,mBAAmB,IAAA;IACnB,mBAAmB,IAAA;IACnB,mBAAmB,IAAA;IACnB,eAAe,IAAA;IACf,eAAe,IAAA;IACf,cAAc,IAAA;IACd,mBAAmB,IAAA;IAGnB,cAAc,IAAA;IACd,aAAa,KAAA;IACb,cAAc,KAAA;IACd,WAAW,KAAA;IACX,UAAU,KAAA;IACV,eAAe,KAAA;IACf,YAAY,KAAA;IACZ,cAAc,KAAA;IACd,cAAc,KAAA;IACd,sBAAsB,KAAA;IACtB,eAAe,KAAA;IACf,oBAAoB,KAAA;IACpB,oBAAoB,KAAA;IACpB,kBAAkB,KAAA;IAClB,iBAAiB,KAAA;CACjB;AAED,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAMhE,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACrD,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/core/ast.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtIns.d.ts","sourceRoot":"","sources":["../../src/core/builtIns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAiB,UAAU,EAAa,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtF,eAAO,MAAM,kBAAkB,uIAoBrB,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,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,WAAwD,CAAC;AAEtH,eAAO,MAAM,sBAAsB,GAAI,IAAI,eAAe,KAAG,
|
|
1
|
+
{"version":3,"file":"builtIns.d.ts","sourceRoot":"","sources":["../../src/core/builtIns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAiB,UAAU,EAAa,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtF,eAAO,MAAM,kBAAkB,uIAoBrB,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,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,WAAwD,CAAC;AAEtH,eAAO,MAAM,sBAAsB,GAAI,IAAI,eAAe,KAAG,cAmI3D,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,SAAS,CAkBjH"}
|
package/dist/core/builtIns.js
CHANGED
|
@@ -33,7 +33,7 @@ export const createBuiltInFunctions = (io) => ({
|
|
|
33
33
|
祈求: {
|
|
34
34
|
paramLimit: 0,
|
|
35
35
|
paramTypes: [[1 /* MeaoiuType.STRING */]],
|
|
36
|
-
function:
|
|
36
|
+
function: ([question]) => io.prompt(question ?? '> '),
|
|
37
37
|
},
|
|
38
38
|
// Type Conversion
|
|
39
39
|
变摸数: {
|
|
@@ -94,6 +94,8 @@ export const createBuiltInFunctions = (io) => ({
|
|
|
94
94
|
paramLimit: 0,
|
|
95
95
|
paramTypes: [[0 /* MeaoiuType.NUMBER */], [0 /* MeaoiuType.NUMBER */]],
|
|
96
96
|
function: ([min = 0, max = Number.MAX_SAFE_INTEGER]) => {
|
|
97
|
+
min = Math.ceil(min);
|
|
98
|
+
max = Math.floor(max);
|
|
97
99
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
98
100
|
},
|
|
99
101
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtIns.js","sourceRoot":"","sources":["../../src/core/builtIns.ts"],"names":[],"mappings":"AAAA,uBAAuB;AAIvB,OAAO,EAAE,aAAa,EAAc,SAAS,EAAoB,MAAM,cAAc,CAAC;AAEtF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,IAAI;CACK,CAAC;AAaX,MAAM,CAAC,MAAM,cAAc,GAA6B,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAuB,EAAE,CAAE,cAA8B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAEtH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EAAmB,EAAkB,EAAE,CAAC,CAAC;IAC/E,MAAM;IACN,CAAC,EAAE;QACF,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;KACxC;IACD,EAAE,EAAE;QACH,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC,2BAAmB,CAAC;QACjC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"builtIns.js","sourceRoot":"","sources":["../../src/core/builtIns.ts"],"names":[],"mappings":"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"}
|
package/dist/core/error.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export declare class MeaoiuError {
|
|
|
23
23
|
readonly col: number;
|
|
24
24
|
readonly endLine: number;
|
|
25
25
|
readonly endCol: number;
|
|
26
|
+
static readonly phaseTextTuple: readonly ["???", "世界崩坏", "词法错误", "句法错误", "语义错误", "运行错误"];
|
|
26
27
|
constructor({ message, phase, line, col, endLine, endCol }: ErrorParams);
|
|
27
28
|
/** 错误消息,包含错误种类 */
|
|
28
29
|
get messageWithPhase(): string;
|
package/dist/core/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/core/error.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,0BAAkB,KAAK;IACtB,OAAO,IAAI;IACX,SAAS,
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/core/error.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,0BAAkB,KAAK;IACtB,OAAO,IAAI;IACX,SAAS,IAAI;IACb,OAAO,IAAI;IACX,SAAS,IAAI;IACb,QAAQ,IAAI;IACZ,OAAO,IAAI;CACX;AAED,KAAK,WAAW,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjH,qBAAa,WAAW;IACvB,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,KAAK,EAAE,KAAK,CAAC;IAC7B,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,gBAAuB,cAAc,2DAA4D;gBAErF,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW;IASvE,kBAAkB;IAClB,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAEM,QAAQ,IAAI,MAAM;CAGzB;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,WAAW,CAO3F;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,KAAqB,GAAG,WAAW,CAUrF"}
|
package/dist/core/error.js
CHANGED
|
@@ -6,6 +6,7 @@ export class MeaoiuError {
|
|
|
6
6
|
col;
|
|
7
7
|
endLine;
|
|
8
8
|
endCol;
|
|
9
|
+
static phaseTextTuple = ['???', '世界崩坏', '词法错误', '句法错误', '语义错误', '运行错误'];
|
|
9
10
|
constructor({ message, phase, line, col, endLine, endCol }) {
|
|
10
11
|
this.message = message;
|
|
11
12
|
this.phase = phase;
|
|
@@ -16,15 +17,7 @@ export class MeaoiuError {
|
|
|
16
17
|
}
|
|
17
18
|
/** 错误消息,包含错误种类 */
|
|
18
19
|
get messageWithPhase() {
|
|
19
|
-
|
|
20
|
-
[0 /* Phase.UNKNOWN */]: '???',
|
|
21
|
-
[1 /* Phase.INVARIANT */]: '世界崩坏',
|
|
22
|
-
[2 /* Phase.LEXICAL */]: '词法错误',
|
|
23
|
-
[3 /* Phase.SYNTACTIC */]: '句法错误',
|
|
24
|
-
[4 /* Phase.SEMANTIC */]: '语义错误',
|
|
25
|
-
[5 /* Phase.RUNTIME */]: '运行错误',
|
|
26
|
-
}[this.phase];
|
|
27
|
-
return `${phaseString}喵:${this.message}`;
|
|
20
|
+
return `${MeaoiuError.phaseTextTuple[this.phase]}喵:${this.message}`;
|
|
28
21
|
}
|
|
29
22
|
toString() {
|
|
30
23
|
return `[${this.line}:${this.col}] ${this.message}`;
|
|
@@ -44,8 +37,8 @@ export function parseError(message, phase = 0 /* Phase.UNKNOWN */) {
|
|
|
44
37
|
if (match) {
|
|
45
38
|
const [rawPos, rawLine, rawCol] = match;
|
|
46
39
|
errorParams.message = message.slice(rawPos.length); // 移除匹配到的位置信息部分
|
|
47
|
-
errorParams.endLine = errorParams.line =
|
|
48
|
-
errorParams.endCol = (errorParams.col =
|
|
40
|
+
errorParams.endLine = errorParams.line = +rawLine;
|
|
41
|
+
errorParams.endCol = (errorParams.col = +rawCol) + 1;
|
|
49
42
|
}
|
|
50
43
|
return new MeaoiuError(errorParams);
|
|
51
44
|
}
|
package/dist/core/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/core/error.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAgBpB,MAAM,OAAO,WAAW;IACP,OAAO,CAAS;IAChB,KAAK,CAAQ;IACb,IAAI,CAAS;IACb,GAAG,CAAS;IACZ,OAAO,CAAS;IAChB,MAAM,CAAS;
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/core/error.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAgBpB,MAAM,OAAO,WAAW;IACP,OAAO,CAAS;IAChB,KAAK,CAAQ;IACb,IAAI,CAAS;IACb,GAAG,CAAS;IACZ,OAAO,CAAS;IAChB,MAAM,CAAS;IACxB,MAAM,CAAU,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;IAEjG,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAe;QACtE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,kBAAkB;IAClB,IAAW,gBAAgB;QAC1B,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACrE,CAAC;IAEM,QAAQ;QACd,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;;AAGF,MAAM,UAAU,SAAS,CAAC,GAAqB,EAAE,OAAe,EAAE,KAAY;IAC7E,OAAO,IAAI,WAAW,CAAC;QACtB,OAAO;QACP,KAAK;QACL,GAAG,GAAG;QACN,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC;KAC1E,CAAC,CAAC,CAAC,0CAA0C;AAC/C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,6BAA4B;IACvE,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;QACxC,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe;QACnE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,OAAQ,CAAC;QACnD,WAAW,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,MAAO,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preprocessor.d.ts","sourceRoot":"","sources":["../../../src/core/lexer/preprocessor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"preprocessor.d.ts","sourceRoot":"","sources":["../../../src/core/lexer/preprocessor.ts"],"names":[],"mappings":"AA6HA,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAsCrD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/core/lexer/preprocessor.ts
|
|
2
|
-
const
|
|
2
|
+
const nonAsciiMap = {
|
|
3
3
|
// 数字
|
|
4
4
|
'0': '0',
|
|
5
5
|
'1': '1',
|
|
@@ -119,69 +119,42 @@ const fullWidthMap = {
|
|
|
119
119
|
};
|
|
120
120
|
export function preprocess(sourceCode) {
|
|
121
121
|
let result = '';
|
|
122
|
-
|
|
123
|
-
let
|
|
124
|
-
for (let
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
case
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
else if (convertedChar === '"') {
|
|
134
|
-
state = 2 /* State.IN_DOUBLE_QUOTE */;
|
|
135
|
-
}
|
|
136
|
-
else if (convertedChar === '(') {
|
|
137
|
-
state = 3 /* State.IN_COMMENT */;
|
|
138
|
-
commentNesting = 1;
|
|
139
|
-
}
|
|
140
|
-
// 在 DEFAULT 状态下,总是添加转换后的字符
|
|
141
|
-
result += convertedChar;
|
|
142
|
-
break;
|
|
143
|
-
}
|
|
144
|
-
case 1 /* State.IN_SINGLE_QUOTE */: {
|
|
145
|
-
if (convertedChar === "'") {
|
|
146
|
-
state = 0 /* State.DEFAULT */;
|
|
147
|
-
result += convertedChar; // 统一输出半宽
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
result += char; // 内部字符原样输出
|
|
122
|
+
const sourceCodeLen = sourceCode.length;
|
|
123
|
+
let prevStart = 0;
|
|
124
|
+
for (let cursor = 0, prevEnd = 0, closeChar = ''; cursor < sourceCodeLen; prevEnd = ++cursor) {
|
|
125
|
+
const openChar = nonAsciiMap[(closeChar = sourceCode[cursor])] ?? closeChar;
|
|
126
|
+
convert: switch (openChar) {
|
|
127
|
+
case "'":
|
|
128
|
+
case '"':
|
|
129
|
+
case '{':
|
|
130
|
+
for (const closing = openChar === '{' ? '}' : openChar; ++cursor < sourceCodeLen;) {
|
|
131
|
+
if ((closeChar = nonAsciiMap[(closeChar = sourceCode[cursor])] ?? closeChar) === closing)
|
|
132
|
+
break convert;
|
|
151
133
|
}
|
|
134
|
+
closeChar = '';
|
|
152
135
|
break;
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
result += char; // 内部字符原样输出
|
|
161
|
-
}
|
|
162
|
-
break;
|
|
163
|
-
}
|
|
164
|
-
case 3 /* State.IN_COMMENT */: {
|
|
165
|
-
if (convertedChar === '(') {
|
|
166
|
-
commentNesting++;
|
|
167
|
-
}
|
|
168
|
-
else if (convertedChar === ')') {
|
|
169
|
-
commentNesting--;
|
|
170
|
-
}
|
|
171
|
-
if (commentNesting === 0) {
|
|
172
|
-
state = 0 /* State.DEFAULT */;
|
|
173
|
-
result += convertedChar; // 统一输出半宽
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
result += char; // 内部字符原样输出
|
|
136
|
+
case '(':
|
|
137
|
+
for (let nestingLevel = 1; ++cursor < sourceCodeLen;) {
|
|
138
|
+
closeChar = nonAsciiMap[(closeChar = sourceCode[cursor])] ?? closeChar;
|
|
139
|
+
if (closeChar === '(')
|
|
140
|
+
nestingLevel++;
|
|
141
|
+
else if (closeChar === ')' && --nestingLevel === 0)
|
|
142
|
+
break convert;
|
|
177
143
|
}
|
|
144
|
+
closeChar = '';
|
|
178
145
|
break;
|
|
179
|
-
}
|
|
180
146
|
default:
|
|
181
|
-
|
|
182
|
-
|
|
147
|
+
if (openChar === closeChar)
|
|
148
|
+
continue;
|
|
149
|
+
result += `${sourceCode.slice(prevStart, cursor)}${openChar}`;
|
|
150
|
+
prevStart = cursor + 1;
|
|
151
|
+
continue;
|
|
183
152
|
}
|
|
153
|
+
result += `${sourceCode.slice(prevStart, prevEnd)}${openChar}${sourceCode.slice(prevEnd + 1, cursor)}${closeChar}`;
|
|
154
|
+
prevStart = cursor + 1;
|
|
184
155
|
}
|
|
156
|
+
if (prevStart < sourceCodeLen)
|
|
157
|
+
result += sourceCode.slice(prevStart);
|
|
185
158
|
return result;
|
|
186
159
|
}
|
|
187
160
|
//# sourceMappingURL=preprocessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preprocessor.js","sourceRoot":"","sources":["../../../src/core/lexer/preprocessor.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,MAAM,
|
|
1
|
+
{"version":3,"file":"preprocessor.js","sourceRoot":"","sources":["../../../src/core/lexer/preprocessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +1,52 @@
|
|
|
1
1
|
export declare const enum TokenKind {
|
|
2
|
-
ERROR = 0
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
2
|
+
ERROR = 0,// 不认识的字符喵
|
|
3
|
+
EOF = 1,
|
|
4
|
+
COMMENT = 2,
|
|
5
|
+
TERMINATOR = 3,// ~
|
|
6
|
+
COMMA = 4,// ,
|
|
7
|
+
KEYWORD_USE = 5,
|
|
8
|
+
ASSIGNMENT_IS = 6,
|
|
9
|
+
ASSIGNMENT_LIKE = 7,
|
|
10
|
+
ASSIGNMENT_ONLY = 8,
|
|
11
|
+
KEYWORD_CLONE = 9,
|
|
12
|
+
KEYWORD_MOVE = 10,
|
|
13
|
+
KEYWORD_CONFIRM = 11,
|
|
14
|
+
KEYWORD_ELSE = 12,
|
|
15
|
+
KEYWORD_LOOP = 13,
|
|
16
|
+
KEYWORD_BREAK = 14,
|
|
17
|
+
KEYWORD_AMBUSH = 15,
|
|
18
|
+
KEYWORD_DEF = 16,
|
|
19
|
+
KEYWORD_CALL = 17,
|
|
20
|
+
KEYWORD_RETURN = 18,
|
|
21
|
+
NUMBER = 19,
|
|
22
|
+
STRING = 20,
|
|
23
|
+
BOOLEAN = 21,
|
|
24
|
+
NULL = 22,
|
|
25
|
+
IDENTIFIER = 23,
|
|
26
|
+
COLLECTION_START = 24,// [=
|
|
27
|
+
COLLECTION_END = 25,// =]
|
|
28
|
+
BLOCK_START = 26,// [#
|
|
29
|
+
BLOCK_END = 27,// #]
|
|
30
|
+
ACCESSOR = 28,// @
|
|
31
|
+
ARITHMETIC_PLUS = 29,// +
|
|
32
|
+
ARITHMETIC_MINUS = 30,// -
|
|
33
|
+
ARITHMETIC_MULTIPLY = 31,// *
|
|
34
|
+
ARITHMETIC_DIVIDE = 32,// /
|
|
35
|
+
COMPARISON_EQUAL = 33,// ==
|
|
36
|
+
COMPARISON_NOT_EQUAL = 34,// !=
|
|
37
|
+
COMPARISON_GREATER = 35,// >
|
|
38
|
+
COMPARISON_LESS = 36,// <
|
|
39
|
+
COMPARISON_GREATER_EQUAL = 37,// >=
|
|
40
|
+
COMPARISON_LESS_EQUAL = 38,// <=
|
|
41
|
+
LOGIC_AND = 39,// 和
|
|
42
|
+
LOGIC_OR = 40,// 或
|
|
43
|
+
LOGIC_CLOSE_AND = 41,// 都好
|
|
44
|
+
LOGIC_CLOSE_OR = 42,// 不坏
|
|
45
|
+
LOGIC_CLOSE_NOR = 43,// 都坏
|
|
46
|
+
LOGIC_CLOSE_NAND = 44
|
|
47
47
|
}
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
type AdditiveTokenKind = TokenKind.ARITHMETIC_PLUS | TokenKind.ARITHMETIC_MINUS;
|
|
49
|
+
type MultiplicativeTokenKind = TokenKind.ARITHMETIC_MULTIPLY | TokenKind.ARITHMETIC_DIVIDE;
|
|
50
50
|
export type ArithmeticTokenKind = AdditiveTokenKind | MultiplicativeTokenKind;
|
|
51
51
|
export type EqualityTokenKind = TokenKind.COMPARISON_EQUAL | TokenKind.COMPARISON_NOT_EQUAL;
|
|
52
52
|
type OrderingTokenKind = TokenKind.COMPARISON_GREATER | TokenKind.COMPARISON_LESS | TokenKind.COMPARISON_GREATER_EQUAL | TokenKind.COMPARISON_LESS_EQUAL;
|
|
@@ -88,10 +88,10 @@ declare const KEYWORDS: {
|
|
|
88
88
|
readonly 不然: TokenKind.KEYWORD_ELSE;
|
|
89
89
|
readonly 玩耍: TokenKind.KEYWORD_LOOP;
|
|
90
90
|
readonly 累了: TokenKind.KEYWORD_BREAK;
|
|
91
|
+
readonly 偷袭: TokenKind.KEYWORD_AMBUSH;
|
|
91
92
|
readonly 想要: TokenKind.KEYWORD_DEF;
|
|
92
93
|
readonly 扒: TokenKind.KEYWORD_CALL;
|
|
93
94
|
readonly 叼回来: TokenKind.KEYWORD_RETURN;
|
|
94
|
-
readonly 偷袭: TokenKind.KEYWORD_AMBUSH;
|
|
95
95
|
readonly 好喵: TokenKind.BOOLEAN;
|
|
96
96
|
readonly 坏喵: TokenKind.BOOLEAN;
|
|
97
97
|
readonly 空碗: TokenKind.NULL;
|
|
@@ -102,10 +102,10 @@ declare const KEYWORDS: {
|
|
|
102
102
|
readonly 都坏: TokenKind.LOGIC_CLOSE_NOR;
|
|
103
103
|
readonly 不好: TokenKind.LOGIC_CLOSE_NAND;
|
|
104
104
|
};
|
|
105
|
-
|
|
106
|
-
export declare const
|
|
107
|
-
export declare const
|
|
108
|
-
|
|
105
|
+
type Keyword = keyof typeof KEYWORDS;
|
|
106
|
+
export declare const sortedKeywords: readonly Keyword[];
|
|
107
|
+
export declare const isCurlyIdSymbol: (symbol: string) => boolean;
|
|
108
|
+
type TokenizerOptions = {
|
|
109
109
|
ignoreComments?: boolean;
|
|
110
110
|
convertNonAscii?: boolean;
|
|
111
111
|
useOnebased?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../../src/core/lexer/tokenizer.ts"],"names":[],"mappings":"AAKA,0BAAkB,SAAS;IAC1B,KAAK,IAAA,CAAE,
|
|
1
|
+
{"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../../src/core/lexer/tokenizer.ts"],"names":[],"mappings":"AAKA,0BAAkB,SAAS;IAC1B,KAAK,IAAA,CAAE,UAAU;IACjB,GAAG,IAAA;IACH,OAAO,IAAA;IAGP,UAAU,IAAA,CAAE,IAAI;IAChB,KAAK,IAAA,CAAE,IAAI;IAGX,WAAW,IAAA;IACX,aAAa,IAAA;IACb,eAAe,IAAA;IACf,eAAe,IAAA;IACf,aAAa,IAAA;IACb,YAAY,KAAA;IACZ,eAAe,KAAA;IACf,YAAY,KAAA;IACZ,YAAY,KAAA;IACZ,aAAa,KAAA;IACb,cAAc,KAAA;IACd,WAAW,KAAA;IACX,YAAY,KAAA;IACZ,cAAc,KAAA;IAGd,MAAM,KAAA;IACN,MAAM,KAAA;IACN,OAAO,KAAA;IACP,IAAI,KAAA;IAGJ,UAAU,KAAA;IAGV,gBAAgB,KAAA,CAAE,KAAK;IACvB,cAAc,KAAA,CAAE,KAAK;IACrB,WAAW,KAAA,CAAE,KAAK;IAClB,SAAS,KAAA,CAAE,KAAK;IAChB,QAAQ,KAAA,CAAE,IAAI;IAEd,eAAe,KAAA,CAAE,IAAI;IACrB,gBAAgB,KAAA,CAAE,IAAI;IACtB,mBAAmB,KAAA,CAAE,IAAI;IACzB,iBAAiB,KAAA,CAAE,IAAI;IACvB,gBAAgB,KAAA,CAAE,KAAK;IACvB,oBAAoB,KAAA,CAAE,KAAK;IAC3B,kBAAkB,KAAA,CAAE,IAAI;IACxB,eAAe,KAAA,CAAE,IAAI;IACrB,wBAAwB,KAAA,CAAE,KAAK;IAC/B,qBAAqB,KAAA,CAAE,KAAK;IAG5B,SAAS,KAAA,CAAE,IAAI;IACf,QAAQ,KAAA,CAAE,IAAI;IACd,eAAe,KAAA,CAAE,KAAK;IACtB,cAAc,KAAA,CAAE,KAAK;IACrB,eAAe,KAAA,CAAE,KAAK;IACtB,gBAAgB,KAAA;CAChB;AAED,KAAK,iBAAiB,GAAG,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,gBAAgB,CAAC;AAChF,KAAK,uBAAuB,GAAG,SAAS,CAAC,mBAAmB,GAAG,SAAS,CAAC,iBAAiB,CAAC;AAC3F,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC;AAC9E,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC,gBAAgB,GAAG,SAAS,CAAC,oBAAoB,CAAC;AAC5F,KAAK,iBAAiB,GACnB,SAAS,CAAC,kBAAkB,GAC5B,SAAS,CAAC,eAAe,GACzB,SAAS,CAAC,wBAAwB,GAClC,SAAS,CAAC,qBAAqB,CAAC;AACnC,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAGxE,KAAK,aAAa,GAAG;IACpB,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC;IACjC,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC;IAClC,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,GAAG,CAAC;IACrC,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACnC,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACnC,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC;IACvC,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,GAAG,CAAC;IACpC,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC;IACjC,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,IAAI,CAAC;IAC3C,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC;CACxC,CAAC;AAEF,KAAK,UAAU,GAAG;KAChB,CAAC,IAAI,SAAS,GAAG;QACjB,IAAI,EAAE,CAAC,CAAC;QACR,KAAK,EAAE,CAAC,SAAS,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACjE,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KACf;CACD,CAAC,SAAS,CAAC,CAAC;AACb,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AACtF,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAC3C,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,SAAS,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,EAChE,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACZ,KAAK,CAAC,CAAC,CAAC,CAEV;AAED,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;CAwBgC,CAAC;AAC/C,KAAK,OAAO,GAAG,MAAM,OAAO,QAAQ,CAAC;AACrC,eAAO,MAAM,cAAc,EAAgE,SAAS,OAAO,EAAE,CAAC;AAM9G,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,OAIhD,CAAC;AAGF,KAAK,gBAAgB,GAAG;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAiBF,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,KAAK,EAAE,CAmOhF"}
|