@kensio/pinyinjs 1.9.8 → 1.10.0
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/NOTICE +7 -0
- package/README.md +27 -8
- package/data/core.entries +21 -21
- package/data/full.entries +17396 -17396
- package/data/manifest.json +9 -7
- package/data/standard.entries +3625 -3625
- package/dist/cli/lookup-commands.d.ts.map +1 -1
- package/dist/cli/lookup-commands.js +2 -44
- package/dist/cli/lookup-commands.js.map +1 -1
- package/dist/cli/lookup-entry.d.ts +12 -0
- package/dist/cli/lookup-entry.d.ts.map +1 -0
- package/dist/cli/lookup-entry.js +55 -0
- package/dist/cli/lookup-entry.js.map +1 -0
- package/dist/decode/changyong-rule.d.ts +14 -0
- package/dist/decode/changyong-rule.d.ts.map +1 -0
- package/dist/decode/changyong-rule.js +128 -0
- package/dist/decode/changyong-rule.js.map +1 -0
- package/dist/decode/reading-rules.d.ts +1 -0
- package/dist/decode/reading-rules.d.ts.map +1 -1
- package/dist/decode/reading-rules.js +3 -0
- package/dist/decode/reading-rules.js.map +1 -1
- package/dist/dictionary/artifact-format.d.ts +20 -1
- package/dist/dictionary/artifact-format.d.ts.map +1 -1
- package/dist/dictionary/artifact-format.js +37 -0
- package/dist/dictionary/artifact-format.js.map +1 -1
- package/dist/dictionary/artifact-read.d.ts.map +1 -1
- package/dist/dictionary/artifact-read.js +3 -7
- package/dist/dictionary/artifact-read.js.map +1 -1
- package/dist/dictionary/artifact.d.ts.map +1 -1
- package/dist/dictionary/artifact.js +2 -2
- package/dist/dictionary/artifact.js.map +1 -1
- package/dist/dictionary/build-assertions.d.ts.map +1 -1
- package/dist/dictionary/build-assertions.js +2 -0
- package/dist/dictionary/build-assertions.js.map +1 -1
- package/dist/dictionary/cedict-senses.d.ts +4 -3
- package/dist/dictionary/cedict-senses.d.ts.map +1 -1
- package/dist/dictionary/cedict-senses.js +7 -4
- package/dist/dictionary/cedict-senses.js.map +1 -1
- package/dist/dictionary/dictionary-entry.d.ts +8 -0
- package/dist/dictionary/dictionary-entry.d.ts.map +1 -1
- package/dist/dictionary/dictionary-entry.js +3 -1
- package/dist/dictionary/dictionary-entry.js.map +1 -1
- package/dist/dictionary/entry-invariants.d.ts +6 -0
- package/dist/dictionary/entry-invariants.d.ts.map +1 -1
- package/dist/dictionary/entry-invariants.js +0 -27
- package/dist/dictionary/entry-invariants.js.map +1 -1
- package/dist/dictionary/entry.d.ts +8 -0
- package/dist/dictionary/entry.d.ts.map +1 -1
- package/dist/dictionary/entry.js.map +1 -1
- package/dist/dictionary/locale-invariants.d.ts +3 -0
- package/dist/dictionary/locale-invariants.d.ts.map +1 -0
- package/dist/dictionary/locale-invariants.js +52 -0
- package/dist/dictionary/locale-invariants.js.map +1 -0
- package/dist/dictionary/locale.d.ts +5 -1
- package/dist/dictionary/locale.d.ts.map +1 -1
- package/dist/dictionary/locale.js +6 -1
- package/dist/dictionary/locale.js.map +1 -1
- package/dist/dictionary/merge-types.d.ts +10 -0
- package/dist/dictionary/merge-types.d.ts.map +1 -1
- package/dist/dictionary/merge-types.js +2 -0
- package/dist/dictionary/merge-types.js.map +1 -1
- package/dist/dictionary/merge-word.js +7 -6
- package/dist/dictionary/merge-word.js.map +1 -1
- package/dist/dictionary/merge.d.ts.map +1 -1
- package/dist/dictionary/merge.js +5 -1
- package/dist/dictionary/merge.js.map +1 -1
- package/dist/dictionary/standard-readings.d.ts +42 -0
- package/dist/dictionary/standard-readings.d.ts.map +1 -0
- package/dist/dictionary/standard-readings.js +113 -0
- package/dist/dictionary/standard-readings.js.map +1 -0
- package/dist/dictionary/taiwan-notes.d.ts +13 -0
- package/dist/dictionary/taiwan-notes.d.ts.map +1 -0
- package/dist/dictionary/taiwan-notes.js +26 -0
- package/dist/dictionary/taiwan-notes.js.map +1 -0
- package/dist/dictionary/taiwan-reading.d.ts +22 -2
- package/dist/dictionary/taiwan-reading.d.ts.map +1 -1
- package/dist/dictionary/taiwan-reading.js +94 -25
- package/dist/dictionary/taiwan-reading.js.map +1 -1
- package/dist/dictionary/taiwan-settle.d.ts +22 -0
- package/dist/dictionary/taiwan-settle.d.ts.map +1 -0
- package/dist/dictionary/taiwan-settle.js +47 -0
- package/dist/dictionary/taiwan-settle.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/search/match-readings.d.ts +2 -2
- package/dist/search/match-readings.d.ts.map +1 -1
- package/dist/search/match-readings.js +12 -7
- package/dist/search/match-readings.js.map +1 -1
- package/dist/sources/moe-workbook.d.ts +10 -0
- package/dist/sources/moe-workbook.d.ts.map +1 -0
- package/dist/sources/moe-workbook.js +89 -0
- package/dist/sources/moe-workbook.js.map +1 -0
- package/dist/sources/moe.d.ts +58 -0
- package/dist/sources/moe.d.ts.map +1 -0
- package/dist/sources/moe.js +79 -0
- package/dist/sources/moe.js.map +1 -0
- package/dist/sources/xlsx.d.ts +20 -0
- package/dist/sources/xlsx.d.ts.map +1 -0
- package/dist/sources/xlsx.js +78 -0
- package/dist/sources/xlsx.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-commands.d.ts","sourceRoot":"","sources":["../../src/cli/lookup-commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lookup-commands.d.ts","sourceRoot":"","sources":["../../src/cli/lookup-commands.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,cAAc,CAAC;AAGnE;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAUpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,OAkCpB,CAAC"}
|
|
@@ -9,50 +9,8 @@ import { applySandhi } from "../decode/sandhi.js";
|
|
|
9
9
|
import { readWord } from "../syllable/split.js";
|
|
10
10
|
import { convertOptions } from "./arguments.js";
|
|
11
11
|
import { PLAIN } from "./colour.js";
|
|
12
|
-
import { dictionaryOf, written
|
|
13
|
-
|
|
14
|
-
* What the dictionary holds for a word.
|
|
15
|
-
*/
|
|
16
|
-
function entryFound(dictionary, word, paint) {
|
|
17
|
-
const entry = dictionary.lookup(word);
|
|
18
|
-
if (entry === undefined) {
|
|
19
|
-
return {
|
|
20
|
-
lines: [`${word} not in the dictionary`],
|
|
21
|
-
data: { word, found: false },
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
const tags = [
|
|
25
|
-
entry.partOfSpeech,
|
|
26
|
-
entry.isProperNoun ? "proper noun" : "",
|
|
27
|
-
].filter((tag) => tag !== "");
|
|
28
|
-
const others = dictionary.readingsOf(word).slice(1);
|
|
29
|
-
return {
|
|
30
|
-
lines: [
|
|
31
|
-
`${word} ${written(entry.reading, paint)}${tags.length > 0 ? ` ${tags.join(", ")}` : ""}`,
|
|
32
|
-
...(entry.taiwanReading === undefined
|
|
33
|
-
? []
|
|
34
|
-
: [` zh-TW ${written(entry.taiwanReading, paint)}`]),
|
|
35
|
-
...(others.length > 0
|
|
36
|
-
? [
|
|
37
|
-
` also ${others
|
|
38
|
-
.map((reading) => written(reading, paint))
|
|
39
|
-
.join(", ")}`,
|
|
40
|
-
]
|
|
41
|
-
: []),
|
|
42
|
-
],
|
|
43
|
-
data: {
|
|
44
|
-
word,
|
|
45
|
-
found: true,
|
|
46
|
-
reading: written(entry.reading, PLAIN),
|
|
47
|
-
partOfSpeech: entry.partOfSpeech,
|
|
48
|
-
isProperNoun: entry.isProperNoun,
|
|
49
|
-
...(entry.taiwanReading !== undefined && {
|
|
50
|
-
taiwanReading: written(entry.taiwanReading, PLAIN),
|
|
51
|
-
}),
|
|
52
|
-
otherReadings: others.map((reading) => written(reading, PLAIN)),
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
}
|
|
12
|
+
import { dictionaryOf, written } from "./command.js";
|
|
13
|
+
import { entryFound } from "./lookup-entry.js";
|
|
56
14
|
/**
|
|
57
15
|
* Look words up in the dictionary.
|
|
58
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-commands.js","sourceRoot":"","sources":["../../src/cli/lookup-commands.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"lookup-commands.js","sourceRoot":"","sources":["../../src/cli/lookup-commands.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAgB,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,sCAAsC;IAC/C,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,EAAE;IACT,eAAe,EAAE,IAAI;IACrB,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CACb,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACvB,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CACnD;CACJ,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,qCAAqC;IAC9C,QAAQ,EAAE,aAAa;IACvB,KAAK,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;IAClC,eAAe,EAAE,KAAK;IACtB,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QACnD,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,0EAA0E;YAC1E,sEAAsE;YACtE,wDAAwD;YACxD,MAAM,KAAK,GAAG,IAAI;iBACf,KAAK,CAAC,MAAM,CAAC;iBACb,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;iBAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;gBACnE,OAAO;oBACL,KAAK,EAAE,CAAC,GAAG,IAAI,0BAA0B,CAAC;oBAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;iBAC5B,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,WAAW,CACtB,IAAI,CAAC,IAAI,EAAE,EACX,OAAO,EACP,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAChC,CAAC;YACF,OAAO;gBACL,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;aACzD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What `lookup` reports for one word: its readings in both locales, its tags
|
|
3
|
+
* and the readings it has besides.
|
|
4
|
+
*/
|
|
5
|
+
import type { Dictionary } from "../dictionary/dictionary.js";
|
|
6
|
+
import { type Painter } from "./colour.js";
|
|
7
|
+
import { type Reported } from "./command.js";
|
|
8
|
+
/**
|
|
9
|
+
* What the dictionary holds for a word.
|
|
10
|
+
*/
|
|
11
|
+
export declare function entryFound(dictionary: Dictionary, word: string, paint: Painter): Reported;
|
|
12
|
+
//# sourceMappingURL=lookup-entry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup-entry.d.ts","sourceRoot":"","sources":["../../src/cli/lookup-entry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,KAAK,OAAO,EAAS,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,KAAK,QAAQ,EAAW,MAAM,cAAc,CAAC;AAmBtD;;GAEG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,QAAQ,CA4CV"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { PLAIN } from "./colour.js";
|
|
2
|
+
import { written } from "./command.js";
|
|
3
|
+
/**
|
|
4
|
+
* A labelled line of readings, or no line where there are none.
|
|
5
|
+
*/
|
|
6
|
+
function readingsLine(label, readings, paint) {
|
|
7
|
+
return readings.length === 0
|
|
8
|
+
? []
|
|
9
|
+
: [
|
|
10
|
+
` ${label} ${readings
|
|
11
|
+
.map((reading) => written(reading, paint))
|
|
12
|
+
.join(", ")}`,
|
|
13
|
+
];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* What the dictionary holds for a word.
|
|
17
|
+
*/
|
|
18
|
+
export function entryFound(dictionary, word, paint) {
|
|
19
|
+
const entry = dictionary.lookup(word);
|
|
20
|
+
if (entry === undefined) {
|
|
21
|
+
return {
|
|
22
|
+
lines: [`${word} not in the dictionary`],
|
|
23
|
+
data: { word, found: false },
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const tags = [
|
|
27
|
+
entry.partOfSpeech,
|
|
28
|
+
entry.isProperNoun ? "proper noun" : "",
|
|
29
|
+
].filter((tag) => tag !== "");
|
|
30
|
+
const others = dictionary.readingsOf(word).slice(1);
|
|
31
|
+
const taiwanOthers = entry.taiwanAlternates ?? [];
|
|
32
|
+
return {
|
|
33
|
+
lines: [
|
|
34
|
+
`${word} ${written(entry.reading, paint)}${tags.length > 0 ? ` ${tags.join(", ")}` : ""}`,
|
|
35
|
+
...readingsLine("zh-TW", entry.taiwanReading === undefined ? [] : [entry.taiwanReading], paint),
|
|
36
|
+
...readingsLine("zh-TW also", taiwanOthers, paint),
|
|
37
|
+
...readingsLine("also ", others, paint),
|
|
38
|
+
],
|
|
39
|
+
data: {
|
|
40
|
+
word,
|
|
41
|
+
found: true,
|
|
42
|
+
reading: written(entry.reading, PLAIN),
|
|
43
|
+
partOfSpeech: entry.partOfSpeech,
|
|
44
|
+
isProperNoun: entry.isProperNoun,
|
|
45
|
+
...(entry.taiwanReading !== undefined && {
|
|
46
|
+
taiwanReading: written(entry.taiwanReading, PLAIN),
|
|
47
|
+
}),
|
|
48
|
+
otherReadings: others.map((reading) => written(reading, PLAIN)),
|
|
49
|
+
...(taiwanOthers.length > 0 && {
|
|
50
|
+
otherTaiwanReadings: taiwanOthers.map((reading) => written(reading, PLAIN)),
|
|
51
|
+
}),
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=lookup-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lookup-entry.js","sourceRoot":"","sources":["../../src/cli/lookup-entry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgB,KAAK,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAiB,OAAO,EAAE,MAAM,cAAc,CAAC;AAEtD;;GAEG;AACH,SAAS,YAAY,CACnB,KAAa,EACb,QAA0C,EAC1C,KAAc;IAEd,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC;QAC1B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACE,KAAK,KAAK,KAAK,QAAQ;iBACpB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;iBACzC,IAAI,CAAC,IAAI,CAAC,EAAE;SAChB,CAAC;AACR,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,UAAsB,EACtB,IAAY,EACZ,KAAc;IAEd,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,KAAK,EAAE,CAAC,GAAG,IAAI,yBAAyB,CAAC;YACzC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;SAC7B,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG;QACX,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;KACxC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAElD,OAAO;QACL,KAAK,EAAE;YACL,GAAG,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3F,GAAG,YAAY,CACb,OAAO,EACP,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAC9D,KAAK,CACN;YACD,GAAG,YAAY,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC;YAClD,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;SACxC;QACD,IAAI,EAAE;YACJ,IAAI;YACJ,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;YACtC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI;gBACvC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC;aACnD,CAAC;YACF,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/D,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI;gBAC7B,mBAAmB,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAChD,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CACxB;aACF,CAAC;SACH;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type EdgeRule } from "./rules.js";
|
|
2
|
+
/**
|
|
3
|
+
* 常用 is taken apart where 用 has an object and 常 is the adverb in front of it.
|
|
4
|
+
*
|
|
5
|
+
* The adjective is kept after a verb, a degree word, a 是 or a measure word,
|
|
6
|
+
* before a 的, a 于, a 词, 字 or 语 or the end of the run, and at the start of
|
|
7
|
+
* the run. Where a word other than an adverb already ends at the 常, the
|
|
8
|
+
* decode is left as it was. Everywhere else the 常 is *often* and the 用
|
|
9
|
+
* *use*. Taking the edge away leaves the two to
|
|
10
|
+
* read as themselves. The readings are `cháng yòng` either way, so this
|
|
11
|
+
* changes the segmentation and the spacing.
|
|
12
|
+
*/
|
|
13
|
+
export declare const VERBAL_CHANGYONG: EdgeRule;
|
|
14
|
+
//# sourceMappingURL=changyong-rule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changyong-rule.d.ts","sourceRoot":"","sources":["../../src/decode/changyong-rule.ts"],"names":[],"mappings":"AAWA,OAAO,EAEL,KAAK,QAAQ,EAId,MAAM,YAAY,CAAC;AA0GpB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAU9B,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The 常用 that is 常 *often* and the verb 用 *use*, and not the adjective
|
|
3
|
+
* *in common use*.
|
|
4
|
+
*
|
|
5
|
+
* 常用 is a word, and every source counts it: 常用的汉字, 一个常用工具, 越来越常用.
|
|
6
|
+
* The same two characters are as often the adverb 常 in front of 用 taking an
|
|
7
|
+
* object, with a second verb saying what the thing is used for: 我常用微博看新闻,
|
|
8
|
+
* 妈妈常用剩饭给我们做炒饭, 父亲常用慎独这个词提醒我. The decode read every one
|
|
9
|
+
* of them as the adjective, and filed the sentence under the wrong word.
|
|
10
|
+
*/
|
|
11
|
+
import { toCharacters } from "../script/characters.js";
|
|
12
|
+
import { tagOf, wordEndingAt, wordsEndingAt, } from "./rules.js";
|
|
13
|
+
/**
|
|
14
|
+
* The word, which is written the same in both scripts.
|
|
15
|
+
*/
|
|
16
|
+
const IN_COMMON_USE = new Set(["常用"]);
|
|
17
|
+
/**
|
|
18
|
+
* The words in front of 常用 that make it describe something.
|
|
19
|
+
*
|
|
20
|
+
* A degree word grades the adjective (很常用, 最常用的, 越来越常用), and 是 says
|
|
21
|
+
* what something is (是常用的). The adverb 常 takes none of them.
|
|
22
|
+
*/
|
|
23
|
+
const BEFORE_ADJECTIVE = new Set([
|
|
24
|
+
"很",
|
|
25
|
+
"最",
|
|
26
|
+
"更",
|
|
27
|
+
"挺",
|
|
28
|
+
"较",
|
|
29
|
+
"較",
|
|
30
|
+
"比较",
|
|
31
|
+
"比較",
|
|
32
|
+
"非常",
|
|
33
|
+
"十分",
|
|
34
|
+
"相当",
|
|
35
|
+
"相當",
|
|
36
|
+
"越来越",
|
|
37
|
+
"越來越",
|
|
38
|
+
"是",
|
|
39
|
+
]);
|
|
40
|
+
/**
|
|
41
|
+
* The measure words that leave 常用 describing the noun they count.
|
|
42
|
+
*
|
|
43
|
+
* 一个常用工具, 哪些常用的汉字, 一种常用的方法.
|
|
44
|
+
*/
|
|
45
|
+
const MEASURES = new Set(toCharacters("个個种種些项項类類款套"));
|
|
46
|
+
/**
|
|
47
|
+
* What can follow the adjective and not the verb.
|
|
48
|
+
*
|
|
49
|
+
* 常用的 describes a noun, and 常用于 is *commonly used for*, a fixed phrase
|
|
50
|
+
* with 用于 inside it. The end of the run (越来越常用。) leaves 用 no object.
|
|
51
|
+
*/
|
|
52
|
+
const AFTER_ADJECTIVE = new Set(["的", "于", "於", ""]);
|
|
53
|
+
/**
|
|
54
|
+
* The characters after 常用 that make it one of the vocabulary nouns.
|
|
55
|
+
*
|
|
56
|
+
* 常用词, 常用字 and 常用语 are the commonly used words, characters and
|
|
57
|
+
* phrases, and 常用词汇 and 常用词表 grow out of them. 常用字 is a word of its
|
|
58
|
+
* own and 常用词 is not, so 学习常用词很重要 read 常 用词.
|
|
59
|
+
*/
|
|
60
|
+
const VOCABULARY = new Set(toCharacters("词詞字语語"));
|
|
61
|
+
/**
|
|
62
|
+
* The tag prefix jieba gives an adverb.
|
|
63
|
+
*/
|
|
64
|
+
const ADVERB_TAG = "d";
|
|
65
|
+
/**
|
|
66
|
+
* The tag prefix jieba gives a verb.
|
|
67
|
+
*/
|
|
68
|
+
const VERB_TAG = "v";
|
|
69
|
+
/**
|
|
70
|
+
* Whether a longer word other than an adverb ends at the 常, and would take it
|
|
71
|
+
* once 常用 is gone.
|
|
72
|
+
*
|
|
73
|
+
* 文学作品中常用夜来香来象征思念 is 中 and then 常 用, and taking the edge away let
|
|
74
|
+
* 中常 *middling* take the 常. Which word the 常 belongs to there is a question
|
|
75
|
+
* this rule cannot answer, so it leaves the decode as it was. An adverb is let
|
|
76
|
+
* through, because an adverb in front of 用 is the reading the rule is after:
|
|
77
|
+
* 时常常用古书里的典故 is 时 常常 用. Only a tagged word counts, as in
|
|
78
|
+
* {@link import("./cai-rule.js").MODAL_CAI}.
|
|
79
|
+
*/
|
|
80
|
+
function isClaimed(context, from) {
|
|
81
|
+
return wordsEndingAt(context, from + 1).some((word) => {
|
|
82
|
+
const tag = tagOf(context, word);
|
|
83
|
+
return word.length > 1 && tag !== "" && !tag.startsWith(ADVERB_TAG);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Whether the context at a 常用 says it is the adjective.
|
|
88
|
+
*/
|
|
89
|
+
function isAdjective(context, from, to) {
|
|
90
|
+
const next = context.characters[to] ?? "";
|
|
91
|
+
if (AFTER_ADJECTIVE.has(next) || VOCABULARY.has(next)) {
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
// A run that starts with 常用 has no subject for 常 to be the adverb of,
|
|
95
|
+
// and is more often a heading or a list: 常用工具, 常用字.
|
|
96
|
+
if (from === 0) {
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
// A verb in front has 常用 describe its object: 掌握常用词汇, 学习常用工具.
|
|
100
|
+
// The longest word is asked, since 父亲 ends in 亲, which can be a verb.
|
|
101
|
+
if (tagOf(context, wordEndingAt(context, from)).startsWith(VERB_TAG)) {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
return wordsEndingAt(context, from).some((word) => BEFORE_ADJECTIVE.has(word) || MEASURES.has(word.at(-1) ?? ""));
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* 常用 is taken apart where 用 has an object and 常 is the adverb in front of it.
|
|
108
|
+
*
|
|
109
|
+
* The adjective is kept after a verb, a degree word, a 是 or a measure word,
|
|
110
|
+
* before a 的, a 于, a 词, 字 or 语 or the end of the run, and at the start of
|
|
111
|
+
* the run. Where a word other than an adverb already ends at the 常, the
|
|
112
|
+
* decode is left as it was. Everywhere else the 常 is *often* and the 用
|
|
113
|
+
* *use*. Taking the edge away leaves the two to
|
|
114
|
+
* read as themselves. The readings are `cháng yòng` either way, so this
|
|
115
|
+
* changes the segmentation and the spacing.
|
|
116
|
+
*/
|
|
117
|
+
export const VERBAL_CHANGYONG = {
|
|
118
|
+
name: "verbal-changyong",
|
|
119
|
+
verdictFor: (context) => {
|
|
120
|
+
const { edge } = context;
|
|
121
|
+
return IN_COMMON_USE.has(edge.text) &&
|
|
122
|
+
!isClaimed(context, edge.from) &&
|
|
123
|
+
!isAdjective(context, edge.from, edge.to)
|
|
124
|
+
? "forbid"
|
|
125
|
+
: "keep";
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=changyong-rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changyong-rule.js","sourceRoot":"","sources":["../../src/decode/changyong-rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ export { LOCATIVE_SHANG_PU, SPREADING_PU } from "./pu-rule.js";
|
|
|
21
21
|
export { RESULTATIVE_ZHAO } from "./zhao-rule.js";
|
|
22
22
|
export { VERBAL_DE_QUESHI } from "./dique-rule.js";
|
|
23
23
|
export { COMPASS_DONGXI } from "./dongxi-rule.js";
|
|
24
|
+
export { VERBAL_CHANGYONG } from "./changyong-rule.js";
|
|
24
25
|
import type { EdgeRule } from "./rules.js";
|
|
25
26
|
export { ATTESTED_ERHUA } from "./erhua-rule.js";
|
|
26
27
|
export { ADJECTIVAL_CHANG, ADJECTIVAL_MEI, EASY_HAO, PLAYING_TAN, SUMMING_DOU, } from "./polyphone-rules.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reading-rules.d.ts","sourceRoot":"","sources":["../../src/decode/reading-rules.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reading-rules.d.ts","sourceRoot":"","sources":["../../src/decode/reading-rules.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAUjD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,WAAW,EACX,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,QAAQ,EAqC5C,CAAC"}
|
|
@@ -21,6 +21,7 @@ import { LOCATIVE_SHANG_PU, SPREADING_PU } from "./pu-rule.js";
|
|
|
21
21
|
import { RESULTATIVE_ZHAO } from "./zhao-rule.js";
|
|
22
22
|
import { VERBAL_DE_QUESHI } from "./dique-rule.js";
|
|
23
23
|
import { COMPASS_DONGXI } from "./dongxi-rule.js";
|
|
24
|
+
import { VERBAL_CHANGYONG } from "./changyong-rule.js";
|
|
24
25
|
export { MODAL_DE, NOUN_HUA, PARTICLE_DE, POTENTIAL_DE } from "./de-rule.js";
|
|
25
26
|
export { CALCULATING_SUAN, COMPLEMENT_DE } from "./complement-rule.js";
|
|
26
27
|
export { ADVERBIAL_DI, ASPECTUAL_PARTICLE } from "./particle-rule.js";
|
|
@@ -44,6 +45,7 @@ export { LOCATIVE_SHANG_PU, SPREADING_PU } from "./pu-rule.js";
|
|
|
44
45
|
export { RESULTATIVE_ZHAO } from "./zhao-rule.js";
|
|
45
46
|
export { VERBAL_DE_QUESHI } from "./dique-rule.js";
|
|
46
47
|
export { COMPASS_DONGXI } from "./dongxi-rule.js";
|
|
48
|
+
export { VERBAL_CHANGYONG } from "./changyong-rule.js";
|
|
47
49
|
import { ATTESTED_ERHUA } from "./erhua-rule.js";
|
|
48
50
|
export { ATTESTED_ERHUA } from "./erhua-rule.js";
|
|
49
51
|
import { ADJECTIVAL_CHANG, ADJECTIVAL_MEI, EASY_HAO, PLAYING_TAN, SUMMING_DOU, } from "./polyphone-rules.js";
|
|
@@ -87,5 +89,6 @@ export const READING_RULES = [
|
|
|
87
89
|
MODAL_CAI,
|
|
88
90
|
VERBAL_DE_QUESHI,
|
|
89
91
|
COMPASS_DONGXI,
|
|
92
|
+
VERBAL_CHANGYONG,
|
|
90
93
|
];
|
|
91
94
|
//# sourceMappingURL=reading-rules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reading-rules.js","sourceRoot":"","sources":["../../src/decode/reading-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"reading-rules.js","sourceRoot":"","sources":["../../src/decode/reading-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* held to the same answers here, which is what stops the two drifting apart.
|
|
7
7
|
*/
|
|
8
8
|
import { type Syllable } from "../syllable/syllable.js";
|
|
9
|
-
import type { DictionaryEntry } from "./entry.js";
|
|
9
|
+
import type { DictionaryEntry, EntryReadings } from "./entry.js";
|
|
10
10
|
/**
|
|
11
11
|
* Separator between a line's columns.
|
|
12
12
|
*/
|
|
@@ -83,4 +83,23 @@ export declare function byCodeUnit(left: string, right: string): number;
|
|
|
83
83
|
* Every 繁體 spelling an entry claims a key for.
|
|
84
84
|
*/
|
|
85
85
|
export declare function traditionalForms(entry: DictionaryEntry): readonly string[];
|
|
86
|
+
/**
|
|
87
|
+
* Read alternate readings back, dropping any that are malformed.
|
|
88
|
+
*/
|
|
89
|
+
export declare function decodeAlternates(written: readonly string[]): readonly (readonly Syllable[])[];
|
|
90
|
+
/**
|
|
91
|
+
* Write an entry's 國語 column: its delta, then any alternates after it.
|
|
92
|
+
*
|
|
93
|
+
* The alternates follow a comma, as a character's alternates do in their own
|
|
94
|
+
* column. An entry with alternates and no delta writes nothing before the
|
|
95
|
+
* comma, so 和 is `,han4`: `hé` in both locales, and `hàn` as well in 國語.
|
|
96
|
+
* They share the column rather than taking one of their own because a few
|
|
97
|
+
* hundred keys carry any, and a sixth column would cost every line a
|
|
98
|
+
* separator.
|
|
99
|
+
*/
|
|
100
|
+
export declare function encodeTaiwan(readings: EntryReadings): string;
|
|
101
|
+
/**
|
|
102
|
+
* Read back what {@link encodeTaiwan} wrote.
|
|
103
|
+
*/
|
|
104
|
+
export declare function decodeTaiwan(text: string): Pick<EntryReadings, "tw" | "twAlternates">;
|
|
86
105
|
//# sourceMappingURL=artifact-format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-format.d.ts","sourceRoot":"","sources":["../../src/dictionary/artifact-format.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"artifact-format.d.ts","sourceRoot":"","sources":["../../src/dictionary/artifact-format.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,MAAM,OAAO,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,IAAI,OAAO,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,eAAe,QAA6B,CAAC;AAE1D,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAGjE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC;CAClC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAIpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE,GAAG,SAAS,CAQ3E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,MAAM,EAAE,CAE1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,SAAS,CAAC,SAAS,QAAQ,EAAE,CAAC,EAAE,CAIlC;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAQ5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,GACX,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,cAAc,CAAC,CAQ5C"}
|
|
@@ -88,4 +88,41 @@ export function byCodeUnit(left, right) {
|
|
|
88
88
|
export function traditionalForms(entry) {
|
|
89
89
|
return [entry.hant, ...(entry.hantVariants ?? [])];
|
|
90
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Read alternate readings back, dropping any that are malformed.
|
|
93
|
+
*/
|
|
94
|
+
export function decodeAlternates(written) {
|
|
95
|
+
return written
|
|
96
|
+
.map((alternate) => decodeReading(alternate))
|
|
97
|
+
.filter((alternate) => alternate !== undefined);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Write an entry's 國語 column: its delta, then any alternates after it.
|
|
101
|
+
*
|
|
102
|
+
* The alternates follow a comma, as a character's alternates do in their own
|
|
103
|
+
* column. An entry with alternates and no delta writes nothing before the
|
|
104
|
+
* comma, so 和 is `,han4`: `hé` in both locales, and `hàn` as well in 國語.
|
|
105
|
+
* They share the column rather than taking one of their own because a few
|
|
106
|
+
* hundred keys carry any, and a sixth column would cost every line a
|
|
107
|
+
* separator.
|
|
108
|
+
*/
|
|
109
|
+
export function encodeTaiwan(readings) {
|
|
110
|
+
const delta = readings.tw === undefined ? "" : encodeReading(readings.tw);
|
|
111
|
+
return [
|
|
112
|
+
delta,
|
|
113
|
+
...(readings.twAlternates ?? []).map((alternate) => encodeReading(alternate)),
|
|
114
|
+
].join(ALTERNATE);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Read back what {@link encodeTaiwan} wrote.
|
|
118
|
+
*/
|
|
119
|
+
export function decodeTaiwan(text) {
|
|
120
|
+
const [delta = "", ...written] = text.split(ALTERNATE);
|
|
121
|
+
const tw = decodeReading(delta);
|
|
122
|
+
const twAlternates = decodeAlternates(written);
|
|
123
|
+
return {
|
|
124
|
+
...(tw !== undefined && { tw }),
|
|
125
|
+
...(twAlternates.length > 0 && { twAlternates }),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
91
128
|
//# sourceMappingURL=artifact-format.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-format.js","sourceRoot":"","sources":["../../src/dictionary/artifact-format.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,YAAY,EAEZ,aAAa,GACd,MAAM,yBAAyB,CAAC;AAGjC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC;AAE3B;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC;AAEzB;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC1E,CAAC;AAmBD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,SAA8B;IAC1D,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SACrD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;QAClC,CAAC,CAAC,SAAS;QACX,CAAC,CAAE,SAAiC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAa;IACpD,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACrD,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
|
1
|
+
{"version":3,"file":"artifact-format.js","sourceRoot":"","sources":["../../src/dictionary/artifact-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-read.d.ts","sourceRoot":"","sources":["../../src/dictionary/artifact-read.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,OAAO,
|
|
1
|
+
{"version":3,"file":"artifact-read.d.ts","sourceRoot":"","sources":["../../src/dictionary/artifact-read.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,OAAO,EAML,KAAK,kBAAkB,EAKxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,kBAAkB,GAC3B,SAAS,eAAe,EAAE,CAuD5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,kBAAkB,GAC3B,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAO7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,SAAS,eAAe,EAAE,EACnC,QAAQ,EAAE,kBAAkB,GAC3B,MAAM,GAAG,SAAS,CAkBpB"}
|
|
@@ -9,7 +9,7 @@ import { toCharacters } from "../script/characters.js";
|
|
|
9
9
|
import { isSameReading } from "./entry.js";
|
|
10
10
|
import { FrequencyTable } from "./frequency-table.js";
|
|
11
11
|
import { KeyIndex } from "./key-index.js";
|
|
12
|
-
import { ALTERNATE, COLUMN, decodeReading, encodeReading, LINE, nameBoundariesIn, PROPER_NOUN_FLAG, } from "./artifact-format.js";
|
|
12
|
+
import { ALTERNATE, COLUMN, decodeAlternates, decodeReading, decodeTaiwan, encodeReading, LINE, nameBoundariesIn, PROPER_NOUN_FLAG, } from "./artifact-format.js";
|
|
13
13
|
export { decodeReading, encodeReading, traditionalForms, } from "./artifact-format.js";
|
|
14
14
|
/**
|
|
15
15
|
* Read an artifact back into entries, for tests and for the loader.
|
|
@@ -47,22 +47,18 @@ export function readArtifact(artifact) {
|
|
|
47
47
|
if (cn === undefined) {
|
|
48
48
|
throw new Error(`artifact entry for ${key} has no readable reading`);
|
|
49
49
|
}
|
|
50
|
-
const tw = decodeReading(taiwan);
|
|
51
50
|
// The artifact stores keys, not pairs, so a key read back is both scripts
|
|
52
51
|
// as far as it knows. See buildArtifact for what that leaves out and why.
|
|
53
52
|
entries.push({
|
|
54
53
|
hans: key,
|
|
55
54
|
hant: key,
|
|
56
|
-
readings: { cn, ...(
|
|
55
|
+
readings: { cn, ...decodeTaiwan(taiwan) },
|
|
57
56
|
frequency: frequencies.bucketOf(at),
|
|
58
57
|
partOfSpeech,
|
|
59
58
|
isProperNoun: flags.includes(PROPER_NOUN_FLAG),
|
|
60
59
|
...(nameBoundaries.length > 0 && { nameBoundaries }),
|
|
61
60
|
...(alternates !== "" && {
|
|
62
|
-
alternates: alternates
|
|
63
|
-
.split(ALTERNATE)
|
|
64
|
-
.map((text) => decodeReading(text))
|
|
65
|
-
.filter((decoded) => decoded !== undefined),
|
|
61
|
+
alternates: decodeAlternates(alternates.split(ALTERNATE)),
|
|
66
62
|
}),
|
|
67
63
|
});
|
|
68
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-read.js","sourceRoot":"","sources":["../../src/dictionary/artifact-read.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,MAAM,EACN,aAAa,
|
|
1
|
+
{"version":3,"file":"artifact-read.js","sourceRoot":"","sources":["../../src/dictionary/artifact-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../src/dictionary/artifact.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,OAAO,EAIL,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../src/dictionary/artifact.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,OAAO,EAIL,KAAK,kBAAkB,EAKxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAwD9B;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,kBAAkB,CAiCpB"}
|
|
@@ -11,7 +11,7 @@ export { findRoundTripFailure, readArtifact, readingsByKey, } from "./artifact-r
|
|
|
11
11
|
import { countForQuantising, FrequencyTable } from "./frequency-table.js";
|
|
12
12
|
import { KeyIndex } from "./key-index.js";
|
|
13
13
|
import { claimKeys, orderedClaims } from "./artifact-claims.js";
|
|
14
|
-
import { ALTERNATE, BOUNDARY_SEPARATOR, COLUMN, encodeReading, LINE, PROPER_NOUN_FLAG, } from "./artifact-format.js";
|
|
14
|
+
import { ALTERNATE, BOUNDARY_SEPARATOR, COLUMN, encodeReading, encodeTaiwan, LINE, PROPER_NOUN_FLAG, } from "./artifact-format.js";
|
|
15
15
|
export { decodeReading, encodeReading, traditionalForms, } from "./artifact-format.js";
|
|
16
16
|
/**
|
|
17
17
|
* The default reading of each single character, as the artifact records it.
|
|
@@ -82,7 +82,7 @@ export function buildArtifact(entries) {
|
|
|
82
82
|
const reading = encodeReading(entry.readings.cn);
|
|
83
83
|
lines.push(trimColumns([
|
|
84
84
|
isDerivable(key, reading, defaults) ? "" : reading,
|
|
85
|
-
|
|
85
|
+
encodeTaiwan(entry.readings),
|
|
86
86
|
entry.partOfSpeech,
|
|
87
87
|
entry.isProperNoun
|
|
88
88
|
? PROPER_NOUN_FLAG +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/dictionary/artifact.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/dictionary/artifact.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,MAAM,EAEN,aAAa,EACb,YAAY,EACZ,IAAI,EACJ,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,aAAa,EAEb,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,SAAS,iBAAiB,CACxB,OAA6C;IAE7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAClB,GAAW,EACX,OAAe,EACf,QAAqC;IAErC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,OAA0B;IAC7C,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IACzB,OAAO,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC1C,GAAG,EAAE,CAAC;IACR,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAmC;IAEnC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEjD,KAAK,CAAC,IAAI,CACR,WAAW,CAAC;YACV,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;YAClD,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC5B,KAAK,CAAC,YAAY;YAClB,KAAK,CAAC,YAAY;gBAChB,CAAC,CAAC,gBAAgB;oBAChB,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACvD,CAAC,CAAC,EAAE;YACN,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;iBACrB,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;iBAC5C,IAAI,CAAC,SAAS,CAAC;SACnB,CAAC,CACH,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE;QACvB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB,WAAW,EAAE,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE;KAC3D,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-assertions.d.ts","sourceRoot":"","sources":["../../src/dictionary/build-assertions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"build-assertions.d.ts","sourceRoot":"","sources":["../../src/dictionary/build-assertions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAOrD,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CHARACTER_READINGS } from "./character-readings.js";
|
|
2
2
|
import { ENTRY_INVARIANTS } from "./entry-invariants.js";
|
|
3
3
|
import { INVENTORY_INVARIANTS } from "./inventory-invariants.js";
|
|
4
|
+
import { LOCALE_INVARIANTS } from "./locale-invariants.js";
|
|
4
5
|
import { TONE_INVARIANTS } from "./tone-invariants.js";
|
|
5
6
|
import { WORD_READINGS } from "./word-readings.js";
|
|
6
7
|
export const BUILD_ASSERTIONS = [
|
|
@@ -8,6 +9,7 @@ export const BUILD_ASSERTIONS = [
|
|
|
8
9
|
...CHARACTER_READINGS,
|
|
9
10
|
...TONE_INVARIANTS,
|
|
10
11
|
...ENTRY_INVARIANTS,
|
|
12
|
+
...LOCALE_INVARIANTS,
|
|
11
13
|
...INVENTORY_INVARIANTS,
|
|
12
14
|
];
|
|
13
15
|
//# sourceMappingURL=build-assertions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-assertions.js","sourceRoot":"","sources":["../../src/dictionary/build-assertions.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD,GAAG,aAAa;IAChB,GAAG,kBAAkB;IACrB,GAAG,eAAe;IAClB,GAAG,gBAAgB;IACnB,GAAG,oBAAoB;CACxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"build-assertions.js","sourceRoot":"","sources":["../../src/dictionary/build-assertions.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD,GAAG,aAAa;IAChB,GAAG,kBAAkB;IACrB,GAAG,eAAe;IAClB,GAAG,gBAAgB;IACnB,GAAG,iBAAiB;IACpB,GAAG,oBAAoB;CACxB,CAAC"}
|
|
@@ -72,9 +72,10 @@ export declare function isOwnSense(taiwan: readonly Syllable[], senseReadings: r
|
|
|
72
72
|
* it to the headword made 我从北京来 read `wǒ zòng Běijīng lái`. 會 (`huǐ`, only
|
|
73
73
|
* 一會兒), 勞 (`lào`, only 慰勞) and 燥 (`sào`, only 肉燥) are the same shape.
|
|
74
74
|
*
|
|
75
|
-
* A note the entry leads with is
|
|
76
|
-
*
|
|
77
|
-
*
|
|
75
|
+
* A note the entry leads with is no different. 和's `hàn` sits on the
|
|
76
|
+
* conjunction, and 教育部 lists 和 first as `hé` with `hàn` fifth: the
|
|
77
|
+
* conjunction is `hé` in Taipei too, and `hàn` is one way of saying it. Taking
|
|
78
|
+
* the note made 和平 come out `hànpíng` wherever no word covered it.
|
|
78
79
|
*
|
|
79
80
|
* **Only a character is tested this way.** Its entry is what every occurrence
|
|
80
81
|
* no longer word covers falls back to, so it has to carry the reading that
|