mn-spellcheck 1.1.0 → 1.1.2
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/checker.d.ts +3 -5
- package/dist/checker.d.ts.map +1 -1
- package/dist/checker.js +16 -11
- package/dist/checker.js.map +1 -1
- package/dist/cli.js +18 -14
- package/dist/cli.js.map +1 -1
- package/dist/suffix-engine.d.ts +9 -1
- package/dist/suffix-engine.d.ts.map +1 -1
- package/dist/suffix-engine.js +64 -27
- package/dist/suffix-engine.js.map +1 -1
- package/package.json +1 -1
package/dist/checker.d.ts
CHANGED
|
@@ -18,14 +18,12 @@ export interface MnSpellCheckerOptions {
|
|
|
18
18
|
export declare class MnSpellChecker {
|
|
19
19
|
private entries;
|
|
20
20
|
private suffixRules;
|
|
21
|
+
private ruleIndex;
|
|
21
22
|
private repRules;
|
|
22
23
|
private options;
|
|
23
|
-
|
|
24
|
+
ready: boolean;
|
|
25
|
+
private suffixCache;
|
|
24
26
|
constructor(options?: MnSpellCheckerOptions);
|
|
25
|
-
/**
|
|
26
|
-
* Checker амжилттай ачаалагдсан эсэхийг шалгана.
|
|
27
|
-
*/
|
|
28
|
-
get ready(): boolean;
|
|
29
27
|
private _findDictionaryFiles;
|
|
30
28
|
/**
|
|
31
29
|
* Нэг үг зөв эсэхийг шалгана.
|
package/dist/checker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAc,eAAe,EAAE,MAAM,SAAS,CAAC;AAGnE,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,OAAO,CAAgF;
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAc,eAAe,EAAE,MAAM,SAAS,CAAC;AAGnE,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,OAAO,CAAgF;IACxF,KAAK,EAAE,OAAO,CAAS;IAC9B,OAAO,CAAC,WAAW,CAA8B;gBAErC,OAAO,CAAC,EAAE,qBAAqB;IA0C3C,OAAO,CAAC,oBAAoB;IA+B5B;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAsBrC;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAqBhC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAgC/B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAwDxC;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAkBxC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAM/B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM9B;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,OAAO;CAgChB"}
|
package/dist/checker.js
CHANGED
|
@@ -44,13 +44,15 @@ const rules_1 = require("./rules");
|
|
|
44
44
|
*/
|
|
45
45
|
class MnSpellChecker {
|
|
46
46
|
constructor(options) {
|
|
47
|
-
this.
|
|
47
|
+
this.ready = false;
|
|
48
|
+
this.suffixCache = new Map();
|
|
48
49
|
this.options = {
|
|
49
50
|
checkVowelHarmony: options?.checkVowelHarmony ?? true,
|
|
50
51
|
useCommonRules: options?.useCommonRules ?? true,
|
|
51
52
|
};
|
|
52
53
|
this.entries = new Map();
|
|
53
54
|
this.suffixRules = new Map();
|
|
55
|
+
this.ruleIndex = { byLastChar: new Map() };
|
|
54
56
|
this.repRules = [];
|
|
55
57
|
let affContent;
|
|
56
58
|
let dicContent;
|
|
@@ -67,6 +69,7 @@ class MnSpellChecker {
|
|
|
67
69
|
}
|
|
68
70
|
const affData = (0, suffix_engine_1.parseAffFile)(affContent);
|
|
69
71
|
this.suffixRules = affData.suffixRules;
|
|
72
|
+
this.ruleIndex = affData.ruleIndex;
|
|
70
73
|
this.repRules = affData.repRules;
|
|
71
74
|
this.entries = (0, suffix_engine_1.parseDicEntries)(dicContent, affData.flagMode);
|
|
72
75
|
// Нэмэлт үгс нэмэх
|
|
@@ -76,13 +79,7 @@ class MnSpellChecker {
|
|
|
76
79
|
this.entries.set(word.toLowerCase(), []);
|
|
77
80
|
}
|
|
78
81
|
}
|
|
79
|
-
this.
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Checker амжилттай ачаалагдсан эсэхийг шалгана.
|
|
83
|
-
*/
|
|
84
|
-
get ready() {
|
|
85
|
-
return this._ready;
|
|
82
|
+
this.ready = true;
|
|
86
83
|
}
|
|
87
84
|
_findDictionaryFiles() {
|
|
88
85
|
const searchPaths = [
|
|
@@ -114,17 +111,23 @@ class MnSpellChecker {
|
|
|
114
111
|
* Нэг үг зөв эсэхийг шалгана.
|
|
115
112
|
*/
|
|
116
113
|
correct(word) {
|
|
114
|
+
if (!this.ready)
|
|
115
|
+
return false;
|
|
117
116
|
const cleaned = word.trim();
|
|
118
117
|
if (!cleaned)
|
|
119
118
|
return true;
|
|
120
|
-
// Тоо, латин тэмдэгт, цэг таслал бол шалгахгүй
|
|
119
|
+
// 1. Тоо, латин тэмдэгт, цэг таслал бол шалгахгүй
|
|
121
120
|
if (/^[a-zA-Z0-9\s.,!?@#$%^&*()\-_+=\[\]{};':"\\|<>\/]+$/.test(cleaned)) {
|
|
122
121
|
return true;
|
|
123
122
|
}
|
|
124
|
-
// Хэт богино монгол үг (1 тэмдэгт бол зөв гэж тооцох
|
|
123
|
+
// 2. Хэт богино монгол үг (1 тэмдэгт бол зөв гэж тооцох)
|
|
125
124
|
if (cleaned.length === 1)
|
|
126
125
|
return true;
|
|
127
|
-
|
|
126
|
+
// 3. Төгсгөлийн цэг таслал салгах
|
|
127
|
+
if (/[\?\!,\.]$/.test(cleaned)) {
|
|
128
|
+
return this.correct(cleaned.slice(0, -1));
|
|
129
|
+
}
|
|
130
|
+
return (0, suffix_engine_1.checkWordWithSuffixes)(cleaned, this.entries, this.suffixRules, this.ruleIndex, this.suffixCache);
|
|
128
131
|
}
|
|
129
132
|
/**
|
|
130
133
|
* Нэг үгийг шалгаж, дэлгэрэнгүй үр дүн буцаана.
|
|
@@ -258,6 +261,7 @@ class MnSpellChecker {
|
|
|
258
261
|
addWord(word) {
|
|
259
262
|
this.entries.set(word, []);
|
|
260
263
|
this.entries.set(word.toLowerCase(), []);
|
|
264
|
+
this.suffixCache.clear(); // Cache-г цэвэрлэхгүй бол хуучин "буруу" гэсэн хариу хадгалагдаастай байна
|
|
261
265
|
}
|
|
262
266
|
/**
|
|
263
267
|
* Олон үг нэмэх.
|
|
@@ -273,6 +277,7 @@ class MnSpellChecker {
|
|
|
273
277
|
removeWord(word) {
|
|
274
278
|
this.entries.delete(word);
|
|
275
279
|
this.entries.delete(word.toLowerCase());
|
|
280
|
+
this.suffixCache.clear();
|
|
276
281
|
}
|
|
277
282
|
/**
|
|
278
283
|
* Dictionary-д хэдэн root word байгааг буцаана.
|
package/dist/checker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../src/checker.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -98,22 +98,26 @@ function findFiles(dir, exts, fileList = []) {
|
|
|
98
98
|
}
|
|
99
99
|
function extractCyrillicWords(text) {
|
|
100
100
|
const words = [];
|
|
101
|
-
const lines = text.split('\n');
|
|
102
|
-
let currentIndex = 0;
|
|
103
101
|
const regex = /[а-яА-ЯөӨүҮёЁ-]+/g;
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
102
|
+
let match;
|
|
103
|
+
// Create an array mapping character index to line number for fast lookup
|
|
104
|
+
// We can just calculate line number on the fly
|
|
105
|
+
let currentLine = 1;
|
|
106
|
+
let lastIndex = 0;
|
|
107
|
+
while ((match = regex.exec(text)) !== null) {
|
|
108
|
+
if (match[0].length <= 1)
|
|
109
|
+
continue; // Ганц үсэг алгасах
|
|
110
|
+
// Count newlines between last match and this match
|
|
111
|
+
for (let i = lastIndex; i < match.index; i++) {
|
|
112
|
+
if (text[i] === '\n')
|
|
113
|
+
currentLine++;
|
|
115
114
|
}
|
|
116
|
-
|
|
115
|
+
lastIndex = match.index;
|
|
116
|
+
words.push({
|
|
117
|
+
word: match[0],
|
|
118
|
+
index: match.index,
|
|
119
|
+
line: currentLine
|
|
120
|
+
});
|
|
117
121
|
}
|
|
118
122
|
return words;
|
|
119
123
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAAyB;AACzB,2CAA6B;AAC7B,uCAA2C;AAC3C,mCAA2C;AAE3C,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,KAAK,GAAG,SAAS,CAAC;AAExB,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;CAgBb,CAAC,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAAc;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;IACpD,IAAI,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,IAAc,EAAE,WAAqB,EAAE;IACrE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEzC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM;YAAE,SAAS;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACxC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACzC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,KAAK,GAAoD,EAAE,CAAC;IAClE,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/suffix-engine.d.ts
CHANGED
|
@@ -3,17 +3,25 @@ export interface SuffixRule {
|
|
|
3
3
|
strip: string;
|
|
4
4
|
add: string;
|
|
5
5
|
condition: RegExp;
|
|
6
|
+
continuationFlags: string[];
|
|
6
7
|
}
|
|
7
8
|
export interface DicEntry {
|
|
8
9
|
word: string;
|
|
9
10
|
flags: string[];
|
|
10
11
|
}
|
|
12
|
+
export interface SuffixRuleIndex {
|
|
13
|
+
byLastChar: Map<string, Array<{
|
|
14
|
+
flag: string;
|
|
15
|
+
rule: SuffixRule;
|
|
16
|
+
}>>;
|
|
17
|
+
}
|
|
11
18
|
/**
|
|
12
19
|
* .aff файлаас SFX дүрмүүдийг parse хийнэ.
|
|
13
20
|
* FLAG long форматыг дэмжинэ (2 тэмдэгтийн flag).
|
|
14
21
|
*/
|
|
15
22
|
export declare function parseAffFile(content: string): {
|
|
16
23
|
suffixRules: Map<string, SuffixRule[]>;
|
|
24
|
+
ruleIndex: SuffixRuleIndex;
|
|
17
25
|
repRules: Array<[string, string]>;
|
|
18
26
|
flagMode: 'long' | 'short';
|
|
19
27
|
};
|
|
@@ -29,5 +37,5 @@ export declare function parseDicEntries(content: string, flagMode: 'long' | 'sho
|
|
|
29
37
|
* 2. Suffix rule-ийн дагуу strip хийж root word олоход
|
|
30
38
|
* тухайн root-д зохих flag байвал -> зөв
|
|
31
39
|
*/
|
|
32
|
-
export declare function checkWordWithSuffixes(word: string, entries: Map<string, string[]>, suffixRules: Map<string, SuffixRule[]>): boolean;
|
|
40
|
+
export declare function checkWordWithSuffixes(word: string, entries: Map<string, string[]>, suffixRules: Map<string, SuffixRule[]>, ruleIndex: SuffixRuleIndex, cache: Map<string, boolean>): boolean;
|
|
33
41
|
//# sourceMappingURL=suffix-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suffix-engine.d.ts","sourceRoot":"","sources":["../src/suffix-engine.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"suffix-engine.d.ts","sourceRoot":"","sources":["../src/suffix-engine.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC,CAAC;CACpE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG;IAC7C,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACvC,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,CAmEA;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAsBlG;AAuBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAC9B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EACtC,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1B,OAAO,CAgDT"}
|
package/dist/suffix-engine.js
CHANGED
|
@@ -10,6 +10,7 @@ exports.checkWordWithSuffixes = checkWordWithSuffixes;
|
|
|
10
10
|
function parseAffFile(content) {
|
|
11
11
|
const lines = content.split('\n');
|
|
12
12
|
const suffixRules = new Map();
|
|
13
|
+
const ruleIndex = { byLastChar: new Map() };
|
|
13
14
|
const repRules = [];
|
|
14
15
|
let flagMode = 'short';
|
|
15
16
|
for (const line of lines) {
|
|
@@ -42,6 +43,7 @@ function parseAffFile(content) {
|
|
|
42
43
|
// add хэсэгт flag байж болно: "на/040870" -> зөвхөн "на" авна
|
|
43
44
|
const addSlash = addRaw.indexOf('/');
|
|
44
45
|
const add = addSlash >= 0 ? addRaw.substring(0, addSlash) : (addRaw === '0' ? '' : addRaw);
|
|
46
|
+
const continuationFlags = addSlash >= 0 ? splitFlags(addRaw.substring(addSlash + 1), flagMode) : [];
|
|
45
47
|
const conditionStr = parts.length >= 5 ? parts[4] : '.';
|
|
46
48
|
let condition;
|
|
47
49
|
try {
|
|
@@ -53,11 +55,18 @@ function parseAffFile(content) {
|
|
|
53
55
|
if (!suffixRules.has(flag)) {
|
|
54
56
|
suffixRules.set(flag, []);
|
|
55
57
|
}
|
|
56
|
-
|
|
58
|
+
const ruleObj = { flag, strip, add, condition, continuationFlags };
|
|
59
|
+
suffixRules.get(flag).push(ruleObj);
|
|
60
|
+
if (add) {
|
|
61
|
+
const lastChar = add[add.length - 1];
|
|
62
|
+
if (!ruleIndex.byLastChar.has(lastChar))
|
|
63
|
+
ruleIndex.byLastChar.set(lastChar, []);
|
|
64
|
+
ruleIndex.byLastChar.get(lastChar).push({ flag, rule: ruleObj });
|
|
65
|
+
}
|
|
57
66
|
}
|
|
58
67
|
}
|
|
59
68
|
}
|
|
60
|
-
return { suffixRules, repRules, flagMode };
|
|
69
|
+
return { suffixRules, ruleIndex, repRules, flagMode };
|
|
61
70
|
}
|
|
62
71
|
/**
|
|
63
72
|
* .dic файлаас үг + flag-уудыг parse хийнэ.
|
|
@@ -113,7 +122,9 @@ function splitFlags(flagStr, mode) {
|
|
|
113
122
|
* 2. Suffix rule-ийн дагуу strip хийж root word олоход
|
|
114
123
|
* тухайн root-д зохих flag байвал -> зөв
|
|
115
124
|
*/
|
|
116
|
-
function checkWordWithSuffixes(word, entries, suffixRules) {
|
|
125
|
+
function checkWordWithSuffixes(word, entries, suffixRules, ruleIndex, cache) {
|
|
126
|
+
if (cache.has(word))
|
|
127
|
+
return cache.get(word);
|
|
117
128
|
// Шууд хайх
|
|
118
129
|
if (entries.has(word))
|
|
119
130
|
return true;
|
|
@@ -126,47 +137,73 @@ function checkWordWithSuffixes(word, entries, suffixRules) {
|
|
|
126
137
|
if (entries.has(capitalized))
|
|
127
138
|
return true;
|
|
128
139
|
}
|
|
129
|
-
// Suffix stripping
|
|
130
|
-
if (checkWithSuffixStripping(lower, entries,
|
|
140
|
+
// Suffix stripping (starts with undefined continuation flag constraint, max depth 2)
|
|
141
|
+
if (checkWithSuffixStripping(lower, entries, ruleIndex, undefined, 0, cache)) {
|
|
142
|
+
cache.set(word, true);
|
|
131
143
|
return true;
|
|
144
|
+
}
|
|
132
145
|
// Compound word check: үгийг хоёр хэсэгт хуваагаад тус тусыг нь шалгах
|
|
133
|
-
// Жишээ: "мэдэхгүй" = "мэдэх" + "гүй"
|
|
134
146
|
if (lower.length >= 4) {
|
|
135
147
|
for (let i = 2; i <= lower.length - 2; i++) {
|
|
136
148
|
const left = lower.substring(0, i);
|
|
137
149
|
const right = lower.substring(i);
|
|
138
|
-
|
|
139
|
-
|
|
150
|
+
let leftOk = entries.has(left) || cache.get(left);
|
|
151
|
+
if (leftOk === undefined) {
|
|
152
|
+
leftOk = checkWithSuffixStripping(left, entries, ruleIndex, undefined, 0, cache);
|
|
153
|
+
cache.set(left, leftOk);
|
|
154
|
+
}
|
|
140
155
|
if (!leftOk)
|
|
141
156
|
continue;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
157
|
+
let rightOk = entries.has(right) || cache.get(right);
|
|
158
|
+
if (rightOk === undefined) {
|
|
159
|
+
rightOk = checkWithSuffixStripping(right, entries, ruleIndex, undefined, 0, cache);
|
|
160
|
+
cache.set(right, rightOk);
|
|
161
|
+
}
|
|
162
|
+
if (rightOk) {
|
|
163
|
+
cache.set(word, true);
|
|
145
164
|
return true;
|
|
165
|
+
}
|
|
146
166
|
}
|
|
147
167
|
}
|
|
168
|
+
cache.set(word, false);
|
|
148
169
|
return false;
|
|
149
170
|
}
|
|
150
|
-
function checkWithSuffixStripping(word, entries,
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
171
|
+
function checkWithSuffixStripping(word, entries, ruleIndex, requiredContinuationFlag, depth = 0, cache) {
|
|
172
|
+
if (depth > 2 || word.length < 2)
|
|
173
|
+
return false;
|
|
174
|
+
const cacheKey = requiredContinuationFlag ? `${word}|${requiredContinuationFlag}` : word;
|
|
175
|
+
if (cache && cache.has(cacheKey))
|
|
176
|
+
return cache.get(cacheKey);
|
|
177
|
+
const lastChar = word[word.length - 1];
|
|
178
|
+
const candidates = ruleIndex.byLastChar.get(lastChar) || [];
|
|
179
|
+
for (const { flag, rule } of candidates) {
|
|
180
|
+
// If we are recursing inwards, the inner suffix MUST have the outer suffix's flag in its continuationFlags
|
|
181
|
+
if (requiredContinuationFlag && !rule.continuationFlags.includes(requiredContinuationFlag)) {
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
if (word.endsWith(rule.add)) {
|
|
185
|
+
const base = word.substring(0, word.length - rule.add.length);
|
|
186
|
+
const root = base + rule.strip;
|
|
187
|
+
if (root.length === 0)
|
|
154
188
|
continue;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
189
|
+
const toCheck = rule.strip ? root : base;
|
|
190
|
+
if (!rule.condition.test(toCheck))
|
|
191
|
+
continue;
|
|
192
|
+
const rootFlags = entries.get(root);
|
|
193
|
+
if (rootFlags && rootFlags.includes(flag)) {
|
|
194
|
+
if (cache)
|
|
195
|
+
cache.set(cacheKey, true);
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
if (checkWithSuffixStripping(root, entries, ruleIndex, flag, depth + 1, cache)) {
|
|
199
|
+
if (cache)
|
|
200
|
+
cache.set(cacheKey, true);
|
|
201
|
+
return true;
|
|
167
202
|
}
|
|
168
203
|
}
|
|
169
204
|
}
|
|
205
|
+
if (cache)
|
|
206
|
+
cache.set(cacheKey, false);
|
|
170
207
|
return false;
|
|
171
208
|
}
|
|
172
209
|
//# sourceMappingURL=suffix-engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suffix-engine.js","sourceRoot":"","sources":["../src/suffix-engine.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"suffix-engine.js","sourceRoot":"","sources":["../src/suffix-engine.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED