@aster-cloud/aster-lang-ts 0.0.15 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/src/config/lexicons/de-DE.d.ts.map +1 -1
  2. package/dist/src/config/lexicons/de-DE.js +4 -3
  3. package/dist/src/config/lexicons/de-DE.js.map +1 -1
  4. package/dist/src/config/lexicons/zh-CN.d.ts +1 -1
  5. package/dist/src/config/lexicons/zh-CN.d.ts.map +1 -1
  6. package/dist/src/config/lexicons/zh-CN.js +7 -4
  7. package/dist/src/config/lexicons/zh-CN.js.map +1 -1
  8. package/dist/src/frontend/canonicalizer.d.ts.map +1 -1
  9. package/dist/src/frontend/canonicalizer.js +20 -3
  10. package/dist/src/frontend/canonicalizer.js.map +1 -1
  11. package/dist/src/frontend/keyword-translator.d.ts +8 -11
  12. package/dist/src/frontend/keyword-translator.d.ts.map +1 -1
  13. package/dist/src/frontend/keyword-translator.js +190 -14
  14. package/dist/src/frontend/keyword-translator.js.map +1 -1
  15. package/dist/src/parser/expr-stmt-parser.d.ts.map +1 -1
  16. package/dist/src/parser/expr-stmt-parser.js +11 -2
  17. package/dist/src/parser/expr-stmt-parser.js.map +1 -1
  18. package/dist/src/parser/field-variant-parser.d.ts.map +1 -1
  19. package/dist/src/parser/field-variant-parser.js +3 -2
  20. package/dist/src/parser/field-variant-parser.js.map +1 -1
  21. package/dist/src/parser/parser-tools.d.ts.map +1 -1
  22. package/dist/src/parser/parser-tools.js +4 -1
  23. package/dist/src/parser/parser-tools.js.map +1 -1
  24. package/dist/src/parser/type-inference.d.ts.map +1 -1
  25. package/dist/src/parser/type-inference.js +8 -1
  26. package/dist/src/parser/type-inference.js.map +1 -1
  27. package/dist/test/unit/config/lexicons/zh-CN.test.js +16 -16
  28. package/dist/test/unit/config/lexicons/zh-CN.test.js.map +1 -1
  29. package/dist/test/unit/keyword-translator.test.js +10 -9
  30. package/dist/test/unit/keyword-translator.test.js.map +1 -1
  31. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"de-DE.d.ts","sourceRoot":"","sources":["../../../../src/config/lexicons/de-DE.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAsJnB,CAAC"}
1
+ {"version":3,"file":"de-DE.d.ts","sourceRoot":"","sources":["../../../../src/config/lexicons/de-DE.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAuJnB,CAAC"}
@@ -22,7 +22,9 @@ export const DE_DE = {
22
22
  [SemanticTokenKind.TYPE_WITH]: 'mit',
23
23
  [SemanticTokenKind.TYPE_ONE_OF]: 'als eines von',
24
24
  // 函数定义
25
- [SemanticTokenKind.FUNC_TO]: 'mit',
25
+ // FUNC_TO is the function definition start keyword (like English "To calculate...")
26
+ // German uses "Um" (in order to) or just use English-style keyword
27
+ [SemanticTokenKind.FUNC_TO]: 'Um',
26
28
  [SemanticTokenKind.FUNC_PRODUCE]: 'liefert',
27
29
  [SemanticTokenKind.FUNC_PERFORMS]: 'führt aus',
28
30
  // 控制流
@@ -113,8 +115,7 @@ export const DE_DE = {
113
115
  removeArticles: true, // 移除常见冠词以降低噪音
114
116
  articles: ['der', 'die', 'das', 'ein', 'eine', 'einen', 'einem', 'einer', 'eines'],
115
117
  allowedDuplicates: [
116
- // "mit" 同时承担类型字段与函数入参标记
117
- [SemanticTokenKind.TYPE_WITH, SemanticTokenKind.FUNC_TO],
118
+ // No duplicates needed - "Um" is for functions, "mit" is for type fields
118
119
  ],
119
120
  // ASCII-ized umlaut normalization: convert common ASCII alternatives to proper umlauts
120
121
  // This allows users to type "groesser" instead of "größer", "zurueck" instead of "zurück"
@@ -1 +1 @@
1
- {"version":3,"file":"de-DE.js","sourceRoot":"","sources":["../../../../src/config/lexicons/de-DE.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"de-DE.js","sourceRoot":"","sources":["../../../../src/config/lexicons/de-DE.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * **设计策略**:混合策略
7
7
  * - 法律文书风格:声明类关键词使用【】标记,如【模块】【定义】
8
- * - 把字句结构:模式匹配使用" X 分为"结构
8
+ * - 视为结构:模式匹配使用" X:为 Y"结构
9
9
  * - 直觉自然:控制流关键词使用日常中文,如"若"、"否则"、"返回"
10
10
  *
11
11
  * **标点符号**:
@@ -1 +1 @@
1
- {"version":3,"file":"zh-CN.d.ts","sourceRoot":"","sources":["../../../../src/config/lexicons/zh-CN.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OAwInB,CAAC"}
1
+ {"version":3,"file":"zh-CN.d.ts","sourceRoot":"","sources":["../../../../src/config/lexicons/zh-CN.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,OA2InB,CAAC"}
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * **设计策略**:混合策略
7
7
  * - 法律文书风格:声明类关键词使用【】标记,如【模块】【定义】
8
- * - 把字句结构:模式匹配使用" X 分为"结构
8
+ * - 视为结构:模式匹配使用" X:为 Y"结构
9
9
  * - 直觉自然:控制流关键词使用日常中文,如"若"、"否则"、"返回"
10
10
  *
11
11
  * **标点符号**:
@@ -31,14 +31,17 @@ export const ZH_CN = {
31
31
  [SemanticTokenKind.TYPE_WITH]: '包含',
32
32
  [SemanticTokenKind.TYPE_ONE_OF]: '为以下之一',
33
33
  // 函数定义
34
- [SemanticTokenKind.FUNC_TO]: '入参',
34
+ // FUNC_TO is the function definition start keyword (like English "To...")
35
+ // Chinese uses "【函数】" as a marker for clarity
36
+ [SemanticTokenKind.FUNC_TO]: '【函数】',
37
+ // TYPE_WITH will handle "入参" for parameters
35
38
  [SemanticTokenKind.FUNC_PRODUCE]: '产出',
36
39
  [SemanticTokenKind.FUNC_PERFORMS]: '执行',
37
40
  // 控制流
38
41
  [SemanticTokenKind.IF]: '若',
39
42
  [SemanticTokenKind.OTHERWISE]: '否则',
40
- [SemanticTokenKind.MATCH]: '',
41
- [SemanticTokenKind.WHEN]: '',
43
+ [SemanticTokenKind.MATCH]: '',
44
+ [SemanticTokenKind.WHEN]: '',
42
45
  [SemanticTokenKind.RETURN]: '返回',
43
46
  [SemanticTokenKind.FOR_EACH]: '对每个',
44
47
  [SemanticTokenKind.IN]: '在',
@@ -1 +1 @@
1
- {"version":3,"file":"zh-CN.js","sourceRoot":"","sources":["../../../../src/config/lexicons/zh-CN.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zh-CN.js","sourceRoot":"","sources":["../../../../src/config/lexicons/zh-CN.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"canonicalizer.d.ts","sourceRoot":"","sources":["../../../src/frontend/canonicalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AA0F3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAmGrE"}
1
+ {"version":3,"file":"canonicalizer.d.ts","sourceRoot":"","sources":["../../../src/frontend/canonicalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AA0F3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAsHrE"}
@@ -198,17 +198,34 @@ export function canonicalize(input, lexicon) {
198
198
  .join('\n');
199
199
  // Keep original casing to preserve TypeIdents. We only normalize multi-word keywords by hinting
200
200
  // but we leave actual case handling to the parser (case-insensitive compare).
201
+ //
202
+ // To protect multi-word keywords from article removal, we use a marker-based approach:
203
+ // 1. Replace multi-word keywords with unique markers
204
+ // 2. Remove articles
205
+ // 3. Restore multi-word keywords from markers
201
206
  let marked = s;
202
- for (const phrase of multiWordKeywords) {
207
+ const keywordMarkers = new Map();
208
+ let markerIndex = 0;
209
+ // Step 1: Replace multi-word keywords with markers (sorted by length, longest first)
210
+ const sortedKeywords = [...multiWordKeywords].sort((a, b) => b.length - a.length);
211
+ for (const phrase of sortedKeywords) {
203
212
  const re = new RegExp(phrase.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&'), 'ig');
204
- marked = marked.replace(re, m => m.toLowerCase());
213
+ marked = marked.replace(re, m => {
214
+ const marker = `\x00KW${markerIndex++}\x00`;
215
+ keywordMarkers.set(marker, m.toLowerCase());
216
+ return marker;
217
+ });
205
218
  }
206
- // Remove articles in allowed contexts (lightweight; parser will enforce correctness)
219
+ // Step 2: Remove articles in allowed contexts (lightweight; parser will enforce correctness)
207
220
  if (articleRe) {
208
221
  marked = segmentString(marked, quotes)
209
222
  .map(segment => (segment.inString ? segment.text : segment.text.replace(articleRe, '')))
210
223
  .join('');
211
224
  }
225
+ // Step 3: Restore multi-word keywords from markers
226
+ for (const [marker, keyword] of keywordMarkers) {
227
+ marked = marked.replace(marker, keyword);
228
+ }
212
229
  // Do not collapse newlines globally.
213
230
  marked = marked.replace(/^\s+$/gm, '');
214
231
  // Final whitespace normalization to ensure idempotency after article/macro passes
@@ -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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"}
@@ -57,13 +57,6 @@ export interface TranslationIndexResult {
57
57
  * @returns 翻译索引:源关键词 -> 目标关键词
58
58
  */
59
59
  export declare function buildKeywordTranslationIndex(sourceLexicon: Lexicon, targetLexicon?: Lexicon): KeywordTranslationIndex;
60
- /**
61
- * 构建完整的翻译索引(包括普通关键词和标记关键词)。
62
- *
63
- * @param sourceLexicon - 源词法表(如 zh-CN)
64
- * @param targetLexicon - 目标词法表(默认 en-US)
65
- * @returns 包含普通索引和标记索引的结果
66
- */
67
60
  export declare function buildFullTranslationIndex(sourceLexicon: Lexicon, targetLexicon?: Lexicon): TranslationIndexResult;
68
61
  /**
69
62
  * 翻译单个 token 的值。
@@ -82,10 +75,14 @@ export declare function translateToken(token: Token, index: KeywordTranslationIn
82
75
  */
83
76
  export declare function translateTokens(tokens: readonly Token[], index: KeywordTranslationIndex): Token[];
84
77
  /**
85
- * 翻译 token 流中的所有关键词(包括标记关键词序列)。
86
- *
87
- * 此函数会识别 LBRACKET + IDENT + RBRACKET 序列,
88
- * 如果内部 IDENT 是标记关键词,则将三个 token 合并为单个翻译后的 token。
78
+ * 翻译 token 流中的所有关键词(包括标记关键词序列和多词短语)。
79
+ *
80
+ * 此函数处理三种情况:
81
+ * 1. LBRACKET + IDENT + RBRACKET 序列(标记关键词)
82
+ * 2. 多个连续 IDENT token 组成的短语翻译:
83
+ * - 源和目标词数相同时,逐词翻译(保持 token 数量)
84
+ * - 源词数多于目标词数时,合并为较少的 token(如 "gib zurück" -> "return")
85
+ * 3. 单个 token 的翻译
89
86
  *
90
87
  * @param tokens - 原始 token 数组
91
88
  * @param index - 普通关键词翻译索引
@@ -1 +1 @@
1
- {"version":3,"file":"keyword-translator.d.ts","sourceRoot":"","sources":["../../../src/frontend/keyword-translator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAI3D;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD;;;;;;;;GAQG;AACH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,4BAA4B;IAC5B,KAAK,EAAE,uBAAuB,CAAC;IAC/B,8BAA8B;IAC9B,WAAW,EAAE,kBAAkB,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,OAAO,EACtB,aAAa,GAAE,OAAe,GAC7B,uBAAuB,CAGzB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,OAAO,EACtB,aAAa,GAAE,OAAe,GAC7B,sBAAsB,CA4BxB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,GAAG,KAAK,CAsBlF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,KAAK,EAAE,uBAAuB,GAC7B,KAAK,EAAE,CAET;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,KAAK,EAAE,uBAAuB,EAC9B,WAAW,EAAE,kBAAkB,GAC9B,KAAK,EAAE,CAqCT;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,OAAO,EACtB,aAAa,GAAE,OAAe;IAK5B,gBAAgB;;IAGhB,0BAA0B;;IAG1B,iBAAiB;4BACO,KAAK,KAAG,KAAK;IAErC,+BAA+B;8BACL,SAAS,KAAK,EAAE,KAAG,KAAK,EAAE;IAGpD,mBAAmB;4BACK,MAAM,KAAG,OAAO;IAExC,kBAAkB;4BACM,MAAM,KAAG,MAAM,GAAG,SAAS;IAEnD,mBAAmB;kCACW,MAAM,KAAG,OAAO;IAE9C,kBAAkB;kCACY,MAAM,KAAG,MAAM,GAAG,SAAS;EAE5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,OAAO,EACtB,aAAa,GAAE,OAAe,GAC7B,OAAO,CAET"}
1
+ {"version":3,"file":"keyword-translator.d.ts","sourceRoot":"","sources":["../../../src/frontend/keyword-translator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAI3D;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD;;;;;;;;GAQG;AACH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,4BAA4B;IAC5B,KAAK,EAAE,uBAAuB,CAAC;IAC/B,8BAA8B;IAC9B,WAAW,EAAE,kBAAkB,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,OAAO,EACtB,aAAa,GAAE,OAAe,GAC7B,uBAAuB,CAGzB;AAqBD,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,OAAO,EACtB,aAAa,GAAE,OAAe,GAC7B,sBAAsB,CA2DxB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,GAAG,KAAK,CAsBlF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,KAAK,EAAE,uBAAuB,GAC7B,KAAK,EAAE,CAET;AAaD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,KAAK,EAAE,uBAAuB,EAC9B,WAAW,EAAE,kBAAkB,GAC9B,KAAK,EAAE,CAsKT;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,OAAO,EACtB,aAAa,GAAE,OAAe;IAK5B,gBAAgB;;IAGhB,0BAA0B;;IAG1B,iBAAiB;4BACO,KAAK,KAAG,KAAK;IAErC,+BAA+B;8BACL,SAAS,KAAK,EAAE,KAAG,KAAK,EAAE;IAGpD,mBAAmB;4BACK,MAAM,KAAG,OAAO;IAExC,kBAAkB;4BACM,MAAM,KAAG,MAAM,GAAG,SAAS;IAEnD,mBAAmB;kCACW,MAAM,KAAG,OAAO;IAE9C,kBAAkB;kCACY,MAAM,KAAG,MAAM,GAAG,SAAS;EAE5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,OAAO,EACtB,aAAa,GAAE,OAAe,GAC7B,OAAO,CAET"}
@@ -37,9 +37,22 @@ export function buildKeywordTranslationIndex(sourceLexicon, targetLexicon = EN_U
37
37
  * @param targetLexicon - 目标词法表(默认 en-US)
38
38
  * @returns 包含普通索引和标记索引的结果
39
39
  */
40
+ // 高优先级的关键词种类,在发生冲突时优先使用
41
+ // 这些通常是更具语义特异性的关键词
42
+ const HIGH_PRIORITY_KINDS = new Set([
43
+ SemanticTokenKind.TYPE_WITH, // "with" 用于类型定义比 "to" 更特定
44
+ SemanticTokenKind.MODULE_DECL, // 模块声明
45
+ SemanticTokenKind.TYPE_DEF, // 类型定义
46
+ SemanticTokenKind.IF, // 条件控制
47
+ SemanticTokenKind.RETURN, // 返回语句
48
+ SemanticTokenKind.GREATER_THAN, // 比较运算
49
+ SemanticTokenKind.LESS_THAN, // 比较运算
50
+ ]);
40
51
  export function buildFullTranslationIndex(sourceLexicon, targetLexicon = EN_US) {
41
52
  const index = new Map();
42
53
  const markerIndex = new Map();
54
+ // 记录已添加映射的优先级
55
+ const indexPriority = new Map();
43
56
  // 获取源词法表的标记符号
44
57
  const markers = sourceLexicon.punctuation.markers;
45
58
  const markerOpen = markers?.open || '【';
@@ -48,6 +61,7 @@ export function buildFullTranslationIndex(sourceLexicon, targetLexicon = EN_US)
48
61
  for (const kind of Object.values(SemanticTokenKind)) {
49
62
  const sourceKeyword = sourceLexicon.keywords[kind];
50
63
  const targetKeyword = targetLexicon.keywords[kind];
64
+ const isHighPriority = HIGH_PRIORITY_KINDS.has(kind);
51
65
  if (sourceKeyword && targetKeyword && sourceKeyword !== targetKeyword) {
52
66
  // 检查是否是标记关键词(被【】包裹)
53
67
  if (sourceKeyword.startsWith(markerOpen) && sourceKeyword.endsWith(markerClose)) {
@@ -56,8 +70,34 @@ export function buildFullTranslationIndex(sourceLexicon, targetLexicon = EN_US)
56
70
  markerIndex.set(innerValue.toLowerCase(), targetKeyword);
57
71
  }
58
72
  else {
59
- // 普通关键词添加到普通索引
60
- index.set(sourceKeyword.toLowerCase(), targetKeyword);
73
+ const srcLower = sourceKeyword.toLowerCase();
74
+ const existingPriority = indexPriority.get(srcLower);
75
+ // 只在以下情况添加映射:
76
+ // 1. 源词尚未有映射
77
+ // 2. 当前是高优先级且现有不是高优先级
78
+ if (!index.has(srcLower) || (isHighPriority && !existingPriority)) {
79
+ index.set(srcLower, targetKeyword);
80
+ indexPriority.set(srcLower, isHighPriority);
81
+ }
82
+ // 对于多词关键词短语,同时添加逐词映射
83
+ // 例如 "Dieses Modul ist" -> "this module is"
84
+ // 会分解为 "dieses" -> "this", "modul" -> "module", "ist" -> "is"
85
+ const sourceParts = sourceKeyword.toLowerCase().split(/\s+/);
86
+ const targetParts = targetKeyword.toLowerCase().split(/\s+/);
87
+ if (sourceParts.length > 1 && sourceParts.length === targetParts.length) {
88
+ for (let i = 0; i < sourceParts.length; i++) {
89
+ const srcWord = sourceParts[i];
90
+ const tgtWord = targetParts[i];
91
+ const existingWordPriority = indexPriority.get(srcWord);
92
+ // 添加逐词映射(遵循相同的优先级规则)
93
+ if (srcWord !== tgtWord) {
94
+ if (!index.has(srcWord) || (isHighPriority && !existingWordPriority)) {
95
+ index.set(srcWord, tgtWord);
96
+ indexPriority.set(srcWord, isHighPriority);
97
+ }
98
+ }
99
+ }
100
+ }
61
101
  }
62
102
  }
63
103
  }
@@ -101,10 +141,22 @@ export function translateTokens(tokens, index) {
101
141
  return tokens.map(token => translateToken(token, index));
102
142
  }
103
143
  /**
104
- * 翻译 token 流中的所有关键词(包括标记关键词序列)。
144
+ * 检查 token 是否是可翻译的标识符类型
145
+ */
146
+ function isTranslatableToken(token) {
147
+ return (token.kind === TokenKind.IDENT ||
148
+ token.kind === TokenKind.TYPE_IDENT ||
149
+ token.kind === TokenKind.KEYWORD);
150
+ }
151
+ /**
152
+ * 翻译 token 流中的所有关键词(包括标记关键词序列和多词短语)。
105
153
  *
106
- * 此函数会识别 LBRACKET + IDENT + RBRACKET 序列,
107
- * 如果内部 IDENT 是标记关键词,则将三个 token 合并为单个翻译后的 token。
154
+ * 此函数处理三种情况:
155
+ * 1. LBRACKET + IDENT + RBRACKET 序列(标记关键词)
156
+ * 2. 多个连续 IDENT token 组成的短语翻译:
157
+ * - 源和目标词数相同时,逐词翻译(保持 token 数量)
158
+ * - 源词数多于目标词数时,合并为较少的 token(如 "gib zurück" -> "return")
159
+ * 3. 单个 token 的翻译
108
160
  *
109
161
  * @param tokens - 原始 token 数组
110
162
  * @param index - 普通关键词翻译索引
@@ -114,9 +166,17 @@ export function translateTokens(tokens, index) {
114
166
  export function translateTokensWithMarkers(tokens, index, markerIndex) {
115
167
  const result = [];
116
168
  let i = 0;
169
+ // 预先计算多词短语的最大长度(用于优化查找)
170
+ let maxPhraseLength = 1;
171
+ for (const key of index.keys()) {
172
+ const wordCount = key.split(/\s+/).length;
173
+ if (wordCount > maxPhraseLength) {
174
+ maxPhraseLength = wordCount;
175
+ }
176
+ }
117
177
  while (i < tokens.length) {
118
178
  const token = tokens[i];
119
- // 检查是否是 LBRACKET + IDENT + RBRACKET 序列
179
+ // 检查是否是 LBRACKET + IDENT + RBRACKET 序列(标记关键词)
120
180
  if (token.kind === TokenKind.LBRACKET &&
121
181
  i + 2 < tokens.length &&
122
182
  (tokens[i + 1].kind === TokenKind.IDENT || tokens[i + 1].kind === TokenKind.TYPE_IDENT) &&
@@ -125,18 +185,134 @@ export function translateTokensWithMarkers(tokens, index, markerIndex) {
125
185
  const innerValue = innerToken.value;
126
186
  const translated = markerIndex.get(innerValue.toLowerCase());
127
187
  if (translated) {
128
- // 找到标记关键词,合并为单个 TYPE_IDENT token
129
- result.push({
130
- kind: TokenKind.TYPE_IDENT,
131
- value: translated,
132
- start: token.start,
133
- end: tokens[i + 2].end,
134
- });
188
+ // 找到标记关键词
189
+ // 如果翻译结果是多词(如 "this module is"),需要拆分为多个 token
190
+ const targetWords = translated.split(/\s+/);
191
+ if (targetWords.length === 1) {
192
+ // 单词翻译:合并为单个 TYPE_IDENT token
193
+ result.push({
194
+ kind: TokenKind.TYPE_IDENT,
195
+ value: translated,
196
+ start: token.start,
197
+ end: tokens[i + 2].end,
198
+ });
199
+ }
200
+ else {
201
+ // 多词翻译:拆分为多个 IDENT token(第一个保持 TYPE_IDENT)
202
+ const startPos = token.start;
203
+ const endPos = tokens[i + 2].end;
204
+ for (let j = 0; j < targetWords.length; j++) {
205
+ result.push({
206
+ kind: j === 0 ? TokenKind.TYPE_IDENT : TokenKind.IDENT,
207
+ value: targetWords[j],
208
+ start: startPos,
209
+ end: endPos,
210
+ });
211
+ }
212
+ }
135
213
  i += 3; // 跳过三个 token
136
214
  continue;
137
215
  }
138
216
  }
139
- // 普通 token 翻译
217
+ // 尝试多词短语翻译(从最长匹配开始,贪婪匹配)
218
+ if (isTranslatableToken(token)) {
219
+ let matched = false;
220
+ // 从最长可能的短语开始尝试匹配
221
+ for (let phraseLen = Math.min(maxPhraseLength, tokens.length - i); phraseLen > 1; phraseLen--) {
222
+ // 检查接下来的 token 是否都是可翻译类型
223
+ let allTranslatable = true;
224
+ const phraseTokens = [];
225
+ for (let j = 0; j < phraseLen; j++) {
226
+ const t = tokens[i + j];
227
+ if (!isTranslatableToken(t)) {
228
+ allTranslatable = false;
229
+ break;
230
+ }
231
+ phraseTokens.push(t);
232
+ }
233
+ if (!allTranslatable)
234
+ continue;
235
+ // 构建短语并查找翻译
236
+ const phrase = phraseTokens.map(t => t.value.toLowerCase()).join(' ');
237
+ const translated = index.get(phrase);
238
+ if (translated) {
239
+ // 计算翻译目标的词数
240
+ const targetWords = translated.split(/\s+/);
241
+ const targetWordCount = targetWords.length;
242
+ if (targetWordCount === phraseLen) {
243
+ // 源和目标词数相同:逐词翻译,保持 token 数量
244
+ // 例如 "dieses modul ist" -> "this module is" 保持 3 个 token
245
+ for (let j = 0; j < phraseLen; j++) {
246
+ const srcToken = phraseTokens[j];
247
+ result.push({
248
+ kind: srcToken.kind,
249
+ value: targetWords[j],
250
+ start: srcToken.start,
251
+ end: srcToken.end,
252
+ });
253
+ }
254
+ }
255
+ else if (targetWordCount < phraseLen) {
256
+ // 目标词数少于源词数:合并为较少的 token
257
+ // 例如 "gib zurück" (2) -> "return" (1)
258
+ // 为每个目标词创建一个 token,位置信息从源 token 分配
259
+ for (let j = 0; j < targetWordCount; j++) {
260
+ // 计算每个目标词对应的源 token 范围
261
+ const srcStartIdx = Math.floor(j * phraseLen / targetWordCount);
262
+ const srcEndIdx = Math.floor((j + 1) * phraseLen / targetWordCount) - 1;
263
+ const srcStartToken = phraseTokens[srcStartIdx];
264
+ const srcEndToken = phraseTokens[srcEndIdx];
265
+ result.push({
266
+ kind: srcStartToken.kind,
267
+ value: targetWords[j],
268
+ start: srcStartToken.start,
269
+ end: srcEndToken.end,
270
+ });
271
+ }
272
+ }
273
+ else {
274
+ // 目标词数多于源词数(如中文 "至少" -> 英文 "at least")
275
+ // 需要拆分为多个 token
276
+ const firstToken = phraseTokens[0];
277
+ const lastToken = phraseTokens[phraseLen - 1];
278
+ for (let j = 0; j < targetWordCount; j++) {
279
+ result.push({
280
+ kind: firstToken.kind,
281
+ value: targetWords[j],
282
+ start: firstToken.start,
283
+ end: lastToken.end,
284
+ });
285
+ }
286
+ }
287
+ i += phraseLen; // 跳过所有匹配的 token
288
+ matched = true;
289
+ break;
290
+ }
291
+ }
292
+ if (matched)
293
+ continue;
294
+ }
295
+ // 普通单 token 翻译(需要处理单词→多词的情况,如 "至少" → "at least")
296
+ if (isTranslatableToken(token)) {
297
+ const value = token.value;
298
+ const translated = index.get(value.toLowerCase());
299
+ if (translated) {
300
+ const targetWords = translated.split(/\s+/);
301
+ if (targetWords.length > 1) {
302
+ // 单源词→多目标词:拆分为多个 token
303
+ for (const word of targetWords) {
304
+ result.push({
305
+ kind: token.kind,
306
+ value: word,
307
+ start: token.start,
308
+ end: token.end,
309
+ });
310
+ }
311
+ i++;
312
+ continue;
313
+ }
314
+ }
315
+ }
140
316
  result.push(translateToken(token, index));
141
317
  i++;
142
318
  }
@@ -1 +1 @@
1
- {"version":3,"file":"keyword-translator.js","sourceRoot":"","sources":["../../../src/frontend/keyword-translator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyword-translator.js","sourceRoot":"","sources":["../../../src/frontend/keyword-translator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAoCpD;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B,CAC1C,aAAsB,EACtB,gBAAyB,KAAK;IAE9B,MAAM,EAAE,KAAK,EAAE,GAAG,yBAAyB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,wBAAwB;AACxB,mBAAmB;AACnB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAoB;IACrD,iBAAiB,CAAC,SAAS,EAAO,0BAA0B;IAC5D,iBAAiB,CAAC,WAAW,EAAK,OAAO;IACzC,iBAAiB,CAAC,QAAQ,EAAQ,OAAO;IACzC,iBAAiB,CAAC,EAAE,EAAc,OAAO;IACzC,iBAAiB,CAAC,MAAM,EAAU,OAAO;IACzC,iBAAiB,CAAC,YAAY,EAAI,OAAO;IACzC,iBAAiB,CAAC,SAAS,EAAO,OAAO;CAC1C,CAAC,CAAC;AAEH,MAAM,UAAU,yBAAyB,CACvC,aAAsB,EACtB,gBAAyB,KAAK;IAE9B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,cAAc;IACd,MAAM,aAAa,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEjD,cAAc;IACd,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC;IAClD,MAAM,UAAU,GAAG,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC;IACxC,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,IAAI,GAAG,CAAC;IAE1C,yBAAyB;IACzB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAErD,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YACtE,oBAAoB;YACpB,IAAI,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChF,gBAAgB;gBAChB,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC/E,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,aAAa,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;gBAC7C,MAAM,gBAAgB,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAErD,cAAc;gBACd,aAAa;gBACb,sBAAsB;gBACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAClE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;oBACnC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBAC9C,CAAC;gBAED,qBAAqB;gBACrB,4CAA4C;gBAC5C,8DAA8D;gBAC9D,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC7D,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC7D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;oBACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;wBAChC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;wBAChC,MAAM,oBAAoB,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBACxD,qBAAqB;wBACrB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;4BACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;gCACrE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gCAC5B,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;4BAC7C,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAY,EAAE,KAA8B;IACzE,0CAA0C;IAC1C,IACE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK;QAC9B,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU;QACnC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAChC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAe,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,aAAa;IACb,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9B,qBAAqB;IACrB,OAAO;QACL,GAAG,KAAK;QACR,KAAK,EAAE,UAAU;KAClB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAwB,EACxB,KAA8B;IAE9B,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,KAAY;IACvC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK;QAC9B,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU;QACnC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,CACjC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAwB,EACxB,KAA8B,EAC9B,WAA+B;IAE/B,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,wBAAwB;IACxB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAC1C,IAAI,SAAS,GAAG,eAAe,EAAE,CAAC;YAChC,eAAe,GAAG,SAAS,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QAEzB,8CAA8C;QAC9C,IACE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ;YACjC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM;YACrB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,CAAC;YACzF,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,EAC1C,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;YAClC,MAAM,UAAU,GAAG,UAAU,CAAC,KAAe,CAAC;YAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;YAE7D,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU;gBACV,8CAA8C;gBAC9C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7B,8BAA8B;oBAC9B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,SAAS,CAAC,UAAU;wBAC1B,KAAK,EAAE,UAAU;wBACjB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,GAAG;qBACxB,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,2CAA2C;oBAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,GAAG,CAAC;oBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC5C,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK;4BACtD,KAAK,EAAE,WAAW,CAAC,CAAC,CAAE;4BACtB,KAAK,EAAE,QAAQ;4BACf,GAAG,EAAE,MAAM;yBACZ,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa;gBACrB,SAAS;YACX,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,iBAAiB;YACjB,KAAK,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC;gBAC9F,yBAAyB;gBACzB,IAAI,eAAe,GAAG,IAAI,CAAC;gBAC3B,MAAM,YAAY,GAAY,EAAE,CAAC;gBAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;oBACzB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5B,eAAe,GAAG,KAAK,CAAC;wBACxB,MAAM;oBACR,CAAC;oBACD,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,CAAC;gBAED,IAAI,CAAC,eAAe;oBAAE,SAAS;gBAE/B,YAAY;gBACZ,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,KAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClF,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAErC,IAAI,UAAU,EAAE,CAAC;oBACf,YAAY;oBACZ,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC5C,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC;oBAE3C,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;wBAClC,4BAA4B;wBAC5B,yDAAyD;wBACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;4BACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;4BAClC,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,QAAQ,CAAC,IAAI;gCACnB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAE;gCACtB,KAAK,EAAE,QAAQ,CAAC,KAAK;gCACrB,GAAG,EAAE,QAAQ,CAAC,GAAG;6BAClB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;yBAAM,IAAI,eAAe,GAAG,SAAS,EAAE,CAAC;wBACvC,yBAAyB;wBACzB,sCAAsC;wBACtC,mCAAmC;wBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;4BACzC,uBAAuB;4BACvB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,eAAe,CAAC,CAAC;4BAChE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;4BACxE,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAE,CAAC;4BACjD,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAE,CAAC;4BAC7C,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,aAAa,CAAC,IAAI;gCACxB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAE;gCACtB,KAAK,EAAE,aAAa,CAAC,KAAK;gCAC1B,GAAG,EAAE,WAAW,CAAC,GAAG;6BACrB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,uCAAuC;wBACvC,gBAAgB;wBAChB,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;wBACpC,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,GAAG,CAAC,CAAE,CAAC;wBAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;4BACzC,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,UAAU,CAAC,IAAI;gCACrB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAE;gCACtB,KAAK,EAAE,UAAU,CAAC,KAAK;gCACvB,GAAG,EAAE,SAAS,CAAC,GAAG;6BACnB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAED,CAAC,IAAI,SAAS,CAAC,CAAC,gBAAgB;oBAChC,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,OAAO;gBAAE,SAAS;QACxB,CAAC;QAED,iDAAiD;QACjD,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAe,CAAC;YACpC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YAClD,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,uBAAuB;oBACvB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;wBAC/B,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,KAAK,EAAE,IAAI;4BACX,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,GAAG,EAAE,KAAK,CAAC,GAAG;yBACf,CAAC,CAAC;oBACL,CAAC;oBACD,CAAC,EAAE,CAAC;oBACJ,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1C,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAAsB,EACtB,gBAAyB,KAAK;IAE9B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,yBAAyB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAEvF,OAAO;QACL,gBAAgB;QAChB,KAAK;QAEL,0BAA0B;QAC1B,WAAW;QAEX,iBAAiB;QACjB,cAAc,EAAE,CAAC,KAAY,EAAS,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC;QAErE,+BAA+B;QAC/B,eAAe,EAAE,CAAC,MAAwB,EAAW,EAAE,CACrD,0BAA0B,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC;QAExD,mBAAmB;QACnB,cAAc,EAAE,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAE1E,kBAAkB;QAClB,cAAc,EAAE,CAAC,KAAa,EAAsB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAErF,mBAAmB;QACnB,oBAAoB,EAAE,CAAC,KAAa,EAAW,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAEtF,kBAAkB;QAClB,oBAAoB,EAAE,CAAC,KAAa,EAAsB,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;KAClG,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAAsB,EACtB,gBAAyB,KAAK;IAE9B,OAAO,aAAa,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,CAAC;AAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"expr-stmt-parser.d.ts","sourceRoot":"","sources":["../../../src/parser/expr-stmt-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EAGL,UAAU,EACV,SAAS,EACT,OAAO,EAEP,SAAS,EAGT,IAAI,EAIL,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAsDlD;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAC5B,KAAK,CAkDP;AAiCD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAC5B,SAAS,CA2LX;AA+MD;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAC5B,UAAU,CAEZ;AAmeD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAC5B,UAAU,EAAE,CAcd;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAC5B,OAAO,CA6CT;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,aAAa,EAAE,KAAK,KAAK,KAAK,GAC/D,SAAS,EAAE,CAoIb;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CA2BzD"}
1
+ {"version":3,"file":"expr-stmt-parser.d.ts","sourceRoot":"","sources":["../../../src/parser/expr-stmt-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EAGL,UAAU,EACV,SAAS,EACT,OAAO,EAEP,SAAS,EAGT,IAAI,EAIL,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAsDlD;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAC5B,KAAK,CAkDP;AAiCD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAC5B,SAAS,CA2LX;AA+MD;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAC5B,UAAU,CAEZ;AAweD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAC5B,UAAU,EAAE,CAcd;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,GAC5B,OAAO,CAiDT;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,aAAa,EAAE,KAAK,KAAK,KAAK,GAC/D,SAAS,EAAE,CAoIb;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,CA2BzD"}
@@ -913,7 +913,12 @@ function parsePrimary(ctx, error) {
913
913
  return expr;
914
914
  }
915
915
  // Construction: Type with a = expr and b = expr
916
- if (ctx.at(TokenKind.TYPE_IDENT)) {
916
+ // Accept both TYPE_IDENT and IDENT to support languages without capitalization (e.g., Chinese)
917
+ // Only treat IDENT as a potential construction if followed by 'with' keyword
918
+ const nextTokenIsWithKeyword = ctx.tokens[ctx.index + 1] &&
919
+ (ctx.tokens[ctx.index + 1].kind === TokenKind.IDENT || ctx.tokens[ctx.index + 1].kind === TokenKind.KEYWORD) &&
920
+ (ctx.tokens[ctx.index + 1].value || '').toLowerCase() === KW.WITH;
921
+ if (ctx.at(TokenKind.TYPE_IDENT) || (ctx.at(TokenKind.IDENT) && nextTokenIsWithKeyword)) {
917
922
  const typeTok = ctx.next();
918
923
  const typeName = typeTok.value;
919
924
  if (ctx.isKeyword(KW.WITH)) {
@@ -1062,7 +1067,11 @@ export function parsePattern(ctx, error) {
1062
1067
  assignSpan(node, spanFromToken(tok));
1063
1068
  return node;
1064
1069
  }
1065
- if (ctx.at(TokenKind.TYPE_IDENT)) {
1070
+ // Accept both TYPE_IDENT and IDENT for type patterns
1071
+ // (Chinese type names appear as IDENT since they don't use capitalization)
1072
+ // Only treat IDENT as a type pattern if followed by LPAREN for destructuring
1073
+ const nextTokenIsLParen = ctx.tokens[ctx.index + 1]?.kind === TokenKind.LPAREN;
1074
+ if (ctx.at(TokenKind.TYPE_IDENT) || (ctx.at(TokenKind.IDENT) && nextTokenIsLParen)) {
1066
1075
  const typeTok = ctx.next();
1067
1076
  const typeName = typeTok.value;
1068
1077
  if (ctx.at(TokenKind.LPAREN)) {