@aster-cloud/aster-lang-ts 1.0.36 → 1.0.37
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/dist/scripts/generate-lexicons.js +17 -1
- package/dist/scripts/generate-lexicons.js.map +1 -1
- package/dist/scripts/verify-lexicon-sync.js +10 -0
- package/dist/scripts/verify-lexicon-sync.js.map +1 -1
- package/dist/src/config/lexicons/zh-CN.d.ts.map +1 -1
- package/dist/src/config/lexicons/zh-CN.js +1 -0
- package/dist/src/config/lexicons/zh-CN.js.map +1 -1
- package/dist/src/core/interpreter.js +25 -6
- package/dist/src/core/interpreter.js.map +1 -1
- package/dist/src/frontend/canonicalizer.js +2 -2
- package/dist/src/frontend/canonicalizer.js.map +1 -1
- package/dist/src/frontend/transformers.d.ts +11 -2
- package/dist/src/frontend/transformers.d.ts.map +1 -1
- package/dist/src/frontend/transformers.js +153 -10
- package/dist/src/frontend/transformers.js.map +1 -1
- package/dist/src/lsp/source-positions.d.ts +1 -1
- package/dist/src/lsp/source-positions.d.ts.map +1 -1
- package/dist/src/lsp/source-positions.js +21 -3
- package/dist/src/lsp/source-positions.js.map +1 -1
- package/dist/src/mapping/candidate-generator.d.ts +19 -9
- package/dist/src/mapping/candidate-generator.d.ts.map +1 -1
- package/dist/src/mapping/candidate-generator.js +79 -40
- package/dist/src/mapping/candidate-generator.js.map +1 -1
- package/dist/src/mapping/pipeline.d.ts +6 -0
- package/dist/src/mapping/pipeline.d.ts.map +1 -1
- package/dist/src/mapping/pipeline.js +67 -74
- package/dist/src/mapping/pipeline.js.map +1 -1
- package/dist/src/nodeid/node-id-map.d.ts +7 -0
- package/dist/src/nodeid/node-id-map.d.ts.map +1 -1
- package/dist/src/nodeid/node-id-map.js +23 -13
- package/dist/src/nodeid/node-id-map.js.map +1 -1
- package/dist/src/typecheck/expression.d.ts.map +1 -1
- package/dist/src/typecheck/expression.js +22 -1
- package/dist/src/typecheck/expression.js.map +1 -1
- package/dist/src/typecheck/statement.d.ts +10 -0
- package/dist/src/typecheck/statement.d.ts.map +1 -1
- package/dist/src/typecheck/statement.js +19 -5
- package/dist/src/typecheck/statement.js.map +1 -1
- package/dist/test/integration/compliance/compliance-smoke.test.js +16 -9
- package/dist/test/integration/compliance/compliance-smoke.test.js.map +1 -1
- package/dist/test/unit/allocation-budget.test.js +41 -0
- package/dist/test/unit/allocation-budget.test.js.map +1 -1
- package/dist/test/unit/canonicalizer/chinese-function-syntax.test.d.ts +2 -0
- package/dist/test/unit/canonicalizer/chinese-function-syntax.test.d.ts.map +1 -0
- package/dist/test/unit/canonicalizer/chinese-function-syntax.test.js +86 -0
- package/dist/test/unit/canonicalizer/chinese-function-syntax.test.js.map +1 -0
- package/dist/test/unit/canonicalizer/transformers.test.d.ts +2 -0
- package/dist/test/unit/canonicalizer/transformers.test.d.ts.map +1 -0
- package/dist/test/unit/canonicalizer/transformers.test.js +25 -0
- package/dist/test/unit/canonicalizer/transformers.test.js.map +1 -0
- package/dist/test/unit/lsp/parse-document.test.js +39 -0
- package/dist/test/unit/lsp/parse-document.test.js.map +1 -1
- package/dist/test/unit/mapping/candidate-generator.test.js +54 -1
- package/dist/test/unit/mapping/candidate-generator.test.js.map +1 -1
- package/dist/test/unit/mapping/pipeline.test.js +22 -1
- package/dist/test/unit/mapping/pipeline.test.js.map +1 -1
- package/dist/test/unit/typecheck/e104-block-scope-parity.test.d.ts +2 -0
- package/dist/test/unit/typecheck/e104-block-scope-parity.test.d.ts.map +1 -0
- package/dist/test/unit/typecheck/e104-block-scope-parity.test.js +82 -0
- package/dist/test/unit/typecheck/e104-block-scope-parity.test.js.map +1 -0
- package/dist/test/unit/typecheck/type-inference.test.js +22 -0
- package/dist/test/unit/typecheck/type-inference.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -368,7 +368,7 @@ export function canonicalize(input, lexiconOrOptions) {
|
|
|
368
368
|
}
|
|
369
369
|
// 翻译前变换器(如英语所有格 driver's age → driver.age)
|
|
370
370
|
if (effectiveLexicon.canonicalization.preTranslationTransformers?.length) {
|
|
371
|
-
s = applyTransformers(s, effectiveLexicon.canonicalization.preTranslationTransformers);
|
|
371
|
+
s = applyTransformers(s, effectiveLexicon.canonicalization.preTranslationTransformers, quotes);
|
|
372
372
|
}
|
|
373
373
|
// 全角转半角(如果配置启用)。传入引号对以保护字符串字面量——
|
|
374
374
|
// 与 Java 侧 fullWidthToHalfWidth 走 segmentString 的行为一致。
|
|
@@ -443,7 +443,7 @@ export function canonicalize(input, lexiconOrOptions) {
|
|
|
443
443
|
// Step 1.5: 翻译后变换器(如 "The result is X" → "Return X", "Set X to Y" → "Let X be Y")
|
|
444
444
|
// 必须在冠词移除之前执行,否则 "The" 会被先移除导致 result-is 无法匹配
|
|
445
445
|
if (effectiveLexicon.canonicalization.postTranslationTransformers?.length) {
|
|
446
|
-
marked = applyTransformers(marked, effectiveLexicon.canonicalization.postTranslationTransformers);
|
|
446
|
+
marked = applyTransformers(marked, effectiveLexicon.canonicalization.postTranslationTransformers, quotes);
|
|
447
447
|
}
|
|
448
448
|
// Step 2: Remove articles in allowed contexts (lightweight; parser will enforce correctness)
|
|
449
449
|
if (articleRe) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalizer.js","sourceRoot":"","sources":["../../../src/frontend/canonicalizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canonicalizer.js","sourceRoot":"","sources":["../../../src/frontend/canonicalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,14 @@
|
|
|
11
11
|
/** 变换器接口:接收源代码行,返回变换后的行 */
|
|
12
12
|
export interface SyntaxTransformer {
|
|
13
13
|
readonly name: string;
|
|
14
|
-
|
|
14
|
+
/** 内置变换器自行按完整源码上下文保护字符串,避免切片改变正则锚点语义。 */
|
|
15
|
+
readonly stringSafe?: boolean;
|
|
16
|
+
transform(source: string, quotes?: {
|
|
17
|
+
open: string;
|
|
18
|
+
close: string;
|
|
19
|
+
}): string;
|
|
15
20
|
}
|
|
21
|
+
export declare function rewriteRuleFunc(s: string): string;
|
|
16
22
|
/**
|
|
17
23
|
* 根据名称获取变换器。
|
|
18
24
|
*/
|
|
@@ -24,5 +30,8 @@ export declare function registerTransformer(transformer: SyntaxTransformer): voi
|
|
|
24
30
|
/**
|
|
25
31
|
* 按名称列表依次应用变换器到源代码。
|
|
26
32
|
*/
|
|
27
|
-
export declare function applyTransformers(source: string, names: readonly string[]
|
|
33
|
+
export declare function applyTransformers(source: string, names: readonly string[], quotes?: {
|
|
34
|
+
open: string;
|
|
35
|
+
close: string;
|
|
36
|
+
}): string;
|
|
28
37
|
//# sourceMappingURL=transformers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../../src/frontend/transformers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,2BAA2B;AAC3B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../../src/frontend/transformers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,2BAA2B;AAC3B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;CAC7E;AAwJD,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQjD;AAiBD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAE1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAExE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,GAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAA8B,GAClE,MAAM,CAWR"}
|
|
@@ -54,8 +54,9 @@
|
|
|
54
54
|
const POSSESSIVE_RE = /(?<!\p{L})([\p{L}][\p{L}0-9_]*)'s[ \t]+(?=[\p{L}])/gu;
|
|
55
55
|
const englishPossessive = {
|
|
56
56
|
name: 'english-possessive',
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
stringSafe: true,
|
|
58
|
+
transform(source, quotes = { open: '"', close: '"' }) {
|
|
59
|
+
return replaceOutsideStrings(source, POSSESSIVE_RE, match => `${match[1]}.`, quotes);
|
|
59
60
|
},
|
|
60
61
|
};
|
|
61
62
|
/**
|
|
@@ -81,9 +82,9 @@ const englishPossessive = {
|
|
|
81
82
|
const SET_TO_RE = /^([ \t]*)Set\s+([\p{L}][\p{L}0-9_]*)\s+to\s+/gmu;
|
|
82
83
|
const setTo = {
|
|
83
84
|
name: 'set-to',
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
return source
|
|
85
|
+
stringSafe: true,
|
|
86
|
+
transform(source, quotes = { open: '"', close: '"' }) {
|
|
87
|
+
return replaceOutsideStrings(source, SET_TO_RE, match => `${match[1]}Let ${match[2]} be `, quotes);
|
|
87
88
|
},
|
|
88
89
|
};
|
|
89
90
|
/**
|
|
@@ -101,11 +102,66 @@ const setTo = {
|
|
|
101
102
|
const RESULT_IS_RE = /^([ \t]*)The result is\s+/gmu;
|
|
102
103
|
const resultIs = {
|
|
103
104
|
name: 'result-is',
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return source
|
|
105
|
+
stringSafe: true,
|
|
106
|
+
transform(source, quotes = { open: '"', close: '"' }) {
|
|
107
|
+
return replaceOutsideStrings(source, RESULT_IS_RE, match => `${match[1]}Return `, quotes);
|
|
107
108
|
},
|
|
108
109
|
};
|
|
110
|
+
/**
|
|
111
|
+
* 中文函数头变换器:`规则 名(参数):` → `Rule 名 given 参数 :`。
|
|
112
|
+
*
|
|
113
|
+
* 逐字移植 aster-lang-locales `ChineseFunctionSyntaxTransformer`:字符集按 Java 语义逐项写出
|
|
114
|
+
* (WS 为 Unicode White_Space,LT 为 Java 行终止符),参数 trim 同 Java `String.trim()`,
|
|
115
|
+
* 截断规则相同,因此任意输入的输出与 Java 字节相同(见 chinese-function-syntax-parity 夹具)。
|
|
116
|
+
* 输出英文 `Rule`/`given` 与 Java 同形;本引擎 zh-CN 词法同样识别这两个英文关键字。
|
|
117
|
+
* 参数须写成 `名 作为 类型`,`名: 类型` 会被重排但语法不接受。
|
|
118
|
+
*
|
|
119
|
+
* 运行于全角转半角之前,故括号两种宽度都要认;行尾 `:` 与参数间的 `,` 原样留给后续步骤。
|
|
120
|
+
* 不设 stringSafe:与 Java 侧一样经 segmenter 只改写字符串之外的片段。
|
|
121
|
+
*/
|
|
122
|
+
const WS = '\\t\\n\\u000B\\u000C\\r \\u0085\\u00A0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000';
|
|
123
|
+
const LT = '\\n\\r\\u0085\\u2028\\u2029';
|
|
124
|
+
const HWS = '\\t\\u000B\\u000C \\u00A0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000';
|
|
125
|
+
const RULE_FUNC_RE = new RegExp(`(?<![^${LT}])([${HWS}]*)(?:规则|Rule)[${WS}]+([\\p{L}][\\p{L}0-9_]*)[${WS}]*` +
|
|
126
|
+
`[((]([^))]*?)[))][${WS}]*([^${LT}]*)`, 'gu');
|
|
127
|
+
const WS_CHAR = new RegExp(`[${WS}]`, 'u');
|
|
128
|
+
const LT_CHAR = new RegExp(`[${LT}]`, 'u');
|
|
129
|
+
/**
|
|
130
|
+
* 截断点:最后一个右括号之后跳过空白,再到下一个行终止符(或片段末尾);无右括号时为 0。
|
|
131
|
+
*
|
|
132
|
+
* 每个匹配都必须含右括号,且以右括号后的空白与该行剩余部分收尾,所以截断点之后不可能有匹配,
|
|
133
|
+
* 之前的匹配也不会越过截断点。不截断时,最后一个右括号之后每个 `规则 名(` 行首都会让惰性
|
|
134
|
+
* 参数组扫到片段末尾再失败,耗时随源码长度平方增长。
|
|
135
|
+
*/
|
|
136
|
+
function matchableEnd(s) {
|
|
137
|
+
let i = Math.max(s.lastIndexOf(')'), s.lastIndexOf(')'));
|
|
138
|
+
if (i < 0)
|
|
139
|
+
return 0;
|
|
140
|
+
i++;
|
|
141
|
+
while (i < s.length && WS_CHAR.test(s[i]))
|
|
142
|
+
i++;
|
|
143
|
+
while (i < s.length && !LT_CHAR.test(s[i]))
|
|
144
|
+
i++;
|
|
145
|
+
return i;
|
|
146
|
+
}
|
|
147
|
+
/** 同 Java String.trim():只去掉 U+0000–U+0020,全角空格保留(JS trim 会多去一类)。 */
|
|
148
|
+
function javaTrim(s) {
|
|
149
|
+
return s.replace(/^[\u0000- ]+|[\u0000- ]+$/g, '');
|
|
150
|
+
}
|
|
151
|
+
export function rewriteRuleFunc(s) {
|
|
152
|
+
const cut = matchableEnd(s);
|
|
153
|
+
if (cut === 0)
|
|
154
|
+
return s;
|
|
155
|
+
const head = s.slice(0, cut).replace(RULE_FUNC_RE, (_m, indent, name, rawParams, rest) => {
|
|
156
|
+
const params = javaTrim(rawParams);
|
|
157
|
+
return params === '' ? `${indent}Rule ${name} ${rest}` : `${indent}Rule ${name} given ${params} ${rest}`;
|
|
158
|
+
});
|
|
159
|
+
return head + s.slice(cut);
|
|
160
|
+
}
|
|
161
|
+
const chineseFunctionSyntax = {
|
|
162
|
+
name: 'chinese-function-syntax',
|
|
163
|
+
transform: rewriteRuleFunc,
|
|
164
|
+
};
|
|
109
165
|
// ============================================================
|
|
110
166
|
// 变换器注册表
|
|
111
167
|
// ============================================================
|
|
@@ -113,6 +169,7 @@ const registry = new Map();
|
|
|
113
169
|
registry.set('english-possessive', englishPossessive);
|
|
114
170
|
registry.set('set-to', setTo);
|
|
115
171
|
registry.set('result-is', resultIs);
|
|
172
|
+
registry.set('chinese-function-syntax', chineseFunctionSyntax);
|
|
116
173
|
/**
|
|
117
174
|
* 根据名称获取变换器。
|
|
118
175
|
*/
|
|
@@ -128,14 +185,100 @@ export function registerTransformer(transformer) {
|
|
|
128
185
|
/**
|
|
129
186
|
* 按名称列表依次应用变换器到源代码。
|
|
130
187
|
*/
|
|
131
|
-
export function applyTransformers(source, names) {
|
|
188
|
+
export function applyTransformers(source, names, quotes = { open: '"', close: '"' }) {
|
|
132
189
|
let result = source;
|
|
133
190
|
for (const name of names) {
|
|
134
191
|
const t = registry.get(name);
|
|
135
192
|
if (t) {
|
|
136
|
-
result = t.
|
|
193
|
+
result = t.stringSafe
|
|
194
|
+
? t.transform(result, quotes)
|
|
195
|
+
: transformOutsideStrings(result, quotes, text => t.transform(text, quotes));
|
|
137
196
|
}
|
|
138
197
|
}
|
|
139
198
|
return result;
|
|
140
199
|
}
|
|
200
|
+
/** 按 Java StringSegmenter.segment 的引号与转义规则变换字符串外片段。 */
|
|
201
|
+
function transformOutsideStrings(source, quotes, transform) {
|
|
202
|
+
const quotePairs = new Map([[quotes.open, quotes.close]]);
|
|
203
|
+
if (quotes.open !== '"')
|
|
204
|
+
quotePairs.set('"', '"');
|
|
205
|
+
quotePairs.set('“', '”');
|
|
206
|
+
let output = '';
|
|
207
|
+
let current = '';
|
|
208
|
+
let inString = false;
|
|
209
|
+
let expectedClose = '';
|
|
210
|
+
for (let i = 0; i < source.length; i++) {
|
|
211
|
+
const ch = source[i];
|
|
212
|
+
current += ch;
|
|
213
|
+
if (inString) {
|
|
214
|
+
if (ch === expectedClose && !isEscaped(source, i)) {
|
|
215
|
+
output += current;
|
|
216
|
+
current = '';
|
|
217
|
+
inString = false;
|
|
218
|
+
expectedClose = '';
|
|
219
|
+
}
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
const close = quotePairs.get(ch);
|
|
223
|
+
if (close !== undefined && !isEscaped(source, i)) {
|
|
224
|
+
output += transform(current.slice(0, -1));
|
|
225
|
+
current = ch;
|
|
226
|
+
inString = true;
|
|
227
|
+
expectedClose = close;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
output += inString ? current : transform(current);
|
|
231
|
+
return output;
|
|
232
|
+
}
|
|
233
|
+
function isEscaped(source, index) {
|
|
234
|
+
let slashes = 0;
|
|
235
|
+
for (let i = index - 1; i >= 0 && source[i] === '\\'; i--)
|
|
236
|
+
slashes++;
|
|
237
|
+
return slashes % 2 === 1;
|
|
238
|
+
}
|
|
239
|
+
/** 在完整源码上匹配正则,只忽略与字符串区间相交的匹配。 */
|
|
240
|
+
function replaceOutsideStrings(source, pattern, replace, quotes) {
|
|
241
|
+
const stringRanges = [];
|
|
242
|
+
let inString = false;
|
|
243
|
+
let start = -1;
|
|
244
|
+
let expectedClose = '';
|
|
245
|
+
const quotePairs = new Map([[quotes.open, quotes.close]]);
|
|
246
|
+
if (quotes.open !== '"')
|
|
247
|
+
quotePairs.set('"', '"');
|
|
248
|
+
quotePairs.set('“', '”');
|
|
249
|
+
for (let i = 0; i < source.length; i++) {
|
|
250
|
+
const ch = source[i];
|
|
251
|
+
if (inString) {
|
|
252
|
+
if (ch === expectedClose && !isEscaped(source, i)) {
|
|
253
|
+
stringRanges.push([start, i + 1]);
|
|
254
|
+
inString = false;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
const close = quotePairs.get(ch);
|
|
259
|
+
if (close !== undefined && !isEscaped(source, i)) {
|
|
260
|
+
start = i;
|
|
261
|
+
expectedClose = close;
|
|
262
|
+
inString = true;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
if (inString)
|
|
267
|
+
stringRanges.push([start, source.length]);
|
|
268
|
+
pattern.lastIndex = 0;
|
|
269
|
+
let rangeIndex = 0;
|
|
270
|
+
return source.replace(pattern, (matched, ...args) => {
|
|
271
|
+
const offset = args[args.length - 2];
|
|
272
|
+
const end = offset + matched.length;
|
|
273
|
+
while (rangeIndex < stringRanges.length && stringRanges[rangeIndex][1] <= offset)
|
|
274
|
+
rangeIndex++;
|
|
275
|
+
const range = stringRanges[rangeIndex];
|
|
276
|
+
const overlapsString = range !== undefined && offset < range[1] && end > range[0];
|
|
277
|
+
if (overlapsString)
|
|
278
|
+
return matched;
|
|
279
|
+
const captures = args.slice(0, -2);
|
|
280
|
+
const groups = [matched, ...captures];
|
|
281
|
+
return replace(groups);
|
|
282
|
+
});
|
|
283
|
+
}
|
|
141
284
|
//# sourceMappingURL=transformers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../../src/frontend/transformers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../../src/frontend/transformers.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 折叠多余空格、tab → 两个空格、仅对关键字生效的转写(de: zurueck → zurück)等。
|
|
6
6
|
* lexer 在规范化文本上给出的列号直接用于原文,会让重命名改错位置
|
|
7
7
|
* (`Let the total be helper(x).` 里改 helper 实际改掉了 ` be he`)、高亮偏移、
|
|
8
|
-
* 跳转定义命中不到。zh
|
|
8
|
+
* 跳转定义命中不到。zh 的规范化多数等长,括号函数头重排(规则 名(参数):)例外。
|
|
9
9
|
*
|
|
10
10
|
* 做法:规范化保持行数不变(注释行留空行占位)。逐行把 token 按顺序在原文该行里找对应
|
|
11
11
|
* 文本(标识符按 Unicode 词边界),找到即精确映射;找不到(被转写的关键字、全角标点等)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-positions.d.ts","sourceRoot":"","sources":["../../../src/lsp/source-positions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,UAAU,GAAG;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAC3C,UAAU,SAAS;IAAG,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;AAE/E;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;AACjE,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,eAAe,CAAA;CAAE,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CAChF;AAoBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,SAAS,EACrD,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,OAAO,GAAE,YAAiB,GACzB,YAAY,CAAC,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"source-positions.d.ts","sourceRoot":"","sources":["../../../src/lsp/source-positions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,UAAU,GAAG;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAC3C,UAAU,SAAS;IAAG,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE;AAE/E;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;AACjE,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,eAAe,CAAA;CAAE,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CAChF;AAoBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,SAAS,EACrD,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,OAAO,GAAE,YAAiB,GACzB,YAAY,CAAC,CAAC,CAAC,EAAE,CAoDnB"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 折叠多余空格、tab → 两个空格、仅对关键字生效的转写(de: zurueck → zurück)等。
|
|
6
6
|
* lexer 在规范化文本上给出的列号直接用于原文,会让重命名改错位置
|
|
7
7
|
* (`Let the total be helper(x).` 里改 helper 实际改掉了 ` be he`)、高亮偏移、
|
|
8
|
-
* 跳转定义命中不到。zh
|
|
8
|
+
* 跳转定义命中不到。zh 的规范化多数等长,括号函数头重排(规则 名(参数):)例外。
|
|
9
9
|
*
|
|
10
10
|
* 做法:规范化保持行数不变(注释行留空行占位)。逐行把 token 按顺序在原文该行里找对应
|
|
11
11
|
* 文本(标识符按 Unicode 词边界),找到即精确映射;找不到(被转写的关键字、全角标点等)
|
|
@@ -44,7 +44,7 @@ export function alignTokensToSource(original, canonical, tokens, options = {}) {
|
|
|
44
44
|
const len = origLines[line - 1]?.length ?? 0;
|
|
45
45
|
return Math.max(1, Math.min(len + 1, st.origEnd + (canCol - st.canEnd)));
|
|
46
46
|
};
|
|
47
|
-
|
|
47
|
+
const aligned = tokens.map((t) => {
|
|
48
48
|
if (!t.start || !t.end)
|
|
49
49
|
return t;
|
|
50
50
|
const line = t.start.line;
|
|
@@ -79,8 +79,10 @@ export function alignTokensToSource(original, canonical, tokens, options = {}) {
|
|
|
79
79
|
srcAlign = 'guessed';
|
|
80
80
|
start = { line, col: mapCol(line, t.start.col, st) };
|
|
81
81
|
end = sameLine ? { line, col: mapCol(line, t.end.col, st) } : { ...t.end };
|
|
82
|
+
// 游标只推进到推算的起点:规范化插入的关键字(zh 括号函数头重排出的 Rule/given)比原文对应
|
|
83
|
+
// 片段长,若推进到推算终点会越过紧随其后的真实标识符,使其无法精确对齐(重命名会漏掉它)。
|
|
82
84
|
if (sameLine)
|
|
83
|
-
st.cursor = Math.max(st.cursor,
|
|
85
|
+
st.cursor = Math.max(st.cursor, start.col - 1);
|
|
84
86
|
}
|
|
85
87
|
if (sameLine) {
|
|
86
88
|
st.canEnd = t.end.col;
|
|
@@ -88,5 +90,21 @@ export function alignTokensToSource(original, canonical, tokens, options = {}) {
|
|
|
88
90
|
}
|
|
89
91
|
return { ...t, start, end, srcAlign };
|
|
90
92
|
});
|
|
93
|
+
return clampGuessedSpans(aligned);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 推算的区间不得盖住同一行下一个 token:规范化插入的关键字(如 zh 括号函数头重排出的 given)
|
|
97
|
+
* 在原文里没有对应文本,按长度推算会覆盖紧随其后的标识符,造成高亮重叠。截到下一个 token 起点,
|
|
98
|
+
* 截完为空时退化为起点处的零宽区间。
|
|
99
|
+
*/
|
|
100
|
+
function clampGuessedSpans(tokens) {
|
|
101
|
+
return tokens.map((t, i) => {
|
|
102
|
+
const next = tokens[i + 1];
|
|
103
|
+
if (t.srcAlign !== 'guessed' || !t.start || !t.end || !next?.start)
|
|
104
|
+
return t;
|
|
105
|
+
if (t.end.line !== t.start.line || next.start.line !== t.start.line || next.start.col >= t.end.col)
|
|
106
|
+
return t;
|
|
107
|
+
return { ...t, end: { line: t.start.line, col: Math.max(t.start.col, next.start.col) } };
|
|
108
|
+
});
|
|
91
109
|
}
|
|
92
110
|
//# sourceMappingURL=source-positions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-positions.js","sourceRoot":"","sources":["../../../src/lsp/source-positions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAqBH,MAAM,OAAO,GAAG,mBAAmB,CAAC;AACpC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAEnC,uDAAuD;AACvD,SAAS,UAAU,CAAC,IAAY,EAAE,GAAW,EAAE,IAAY;IACzD,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,CAAC,CAAC;IACpB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACvF,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,SAAiB,EACjB,MAAoB,EACpB,UAAwB,EAAE;IAE1B,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,iDAAiD;IACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA+D,CAAC;IAErF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAuC,EAAU,EAAE;QAC/F,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"source-positions.js","sourceRoot":"","sources":["../../../src/lsp/source-positions.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,15 +26,13 @@ import type { CandidateMapping } from './mapping-ir.js';
|
|
|
26
26
|
* 替代的地方——**非 `.aster` 的人类文本**(Policy / SOP / 合同),那里没有
|
|
27
27
|
* `origin` 可读。
|
|
28
28
|
*
|
|
29
|
-
* <h2
|
|
29
|
+
* <h2>★坐标系:先在 canonical 文本上切,再重定位回原文</h2>
|
|
30
30
|
*
|
|
31
|
-
* `origin` 记的是 **canonical
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* 若该前提被破坏,本模块会**产出错位的候选**且不报错——故
|
|
37
|
-
* {@link generateCandidates} 内置了自检:切片必须非空,否则跳过并计入 `skipped`。
|
|
31
|
+
* `origin` 记的是 **canonical 文本**的行列。canonicalize 保持行数不变,但会改变行内长度
|
|
32
|
+
* (英文删冠词、de 转写关键字、zh 括号函数头重排等),所以 canonical 偏移不能直接当原文偏移用。
|
|
33
|
+
* {@link generateCandidates} 在 canonical 上切出文本,{@link relocateToSource} 再在原文同一行里
|
|
34
|
+
* 找到同一段文本(按该行内的出现序号对应),产出**原文坐标**的候选——调用方(复核面板、
|
|
35
|
+
* 双向导航)拿到的区间一律指向用户自己的文档。找不到就跳过并报告,绝不推算。
|
|
38
36
|
*/
|
|
39
37
|
/** 生成器需要的最小节点信息(与 `NodeIdMap` 的输出对齐)。 */
|
|
40
38
|
export interface OriginatedNode {
|
|
@@ -69,10 +67,22 @@ export interface GenerationResult {
|
|
|
69
67
|
* <p>★本函数**不做任何猜测**:它只是把 `origin` 翻译成字符偏移并切片。
|
|
70
68
|
* 切不出东西就跳过并记录,绝不编造。
|
|
71
69
|
*
|
|
72
|
-
* @param source
|
|
70
|
+
* @param source canonical 文本(origin 的行列以它为准);结果须再经 {@link relocateToSource}
|
|
73
71
|
* @param nodes 带 origin 的节点(通常来自 Core IR 遍历)
|
|
74
72
|
*/
|
|
75
73
|
export declare function generateCandidates(source: string, nodes: readonly OriginatedNode[]): GenerationResult;
|
|
74
|
+
/**
|
|
75
|
+
* 把 canonical 坐标的候选重定位到原文坐标。
|
|
76
|
+
*
|
|
77
|
+
* <p>做法:候选起点所在行号在两边相同(canonicalize 保持行数)。数出候选文本在 canonical
|
|
78
|
+
* 该行内、起点之前出现了几次,再在原文同一行里取同序号的出现位置。字面量文本(数字、带引号的
|
|
79
|
+
* 字符串、布尔)不被 canonicalize 改写,所以序号一一对应。
|
|
80
|
+
*
|
|
81
|
+
* <p>★任何对不上的情况都跳过并报告:两边行数不同、该文本在两边同一行的出现次数不同
|
|
82
|
+
* (canonicalize 增删了同样的子串,如智能引号归一化后 `“x” plus "x"` 多出一个 `"x"`,
|
|
83
|
+
* 按序号配对会配错)、原文该行找不到该文本。宁可少一条候选,也不交出一条指错位置的。
|
|
84
|
+
*/
|
|
85
|
+
export declare function relocateToSource(source: string, canonical: string, generated: GenerationResult): GenerationResult;
|
|
76
86
|
/**
|
|
77
87
|
* 从 Core IR 里收集所有带 origin 的**字面量**节点。
|
|
78
88
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candidate-generator.d.ts","sourceRoot":"","sources":["../../../src/mapping/candidate-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"candidate-generator.d.ts","sourceRoot":"","sources":["../../../src/mapping/candidate-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,KAAK,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAChE,QAAQ,CAAC,GAAG,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/D,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACjD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAChF;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,cAAc,EAAE,GAC/B,gBAAgB,CAgClB;AA6BD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,gBAAgB,GAC1B,gBAAgB,CA4BlB;AA0BD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,cAAc,EAAE,CAQjE"}
|