@fpw/en-wiktionary-la-modules 0.0.12 → 0.0.15
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/LaEngine.d.ts +2 -1
- package/dist/LaEngine.js +1 -3
- package/dist/LaEngine.js.map +1 -1
- package/dist/modules/declination/LaAdjData.js +108 -46
- package/dist/modules/declination/LaAdjData.js.map +1 -1
- package/dist/modules/declination/LaNominal.d.ts +10 -0
- package/dist/modules/declination/LaNominal.js +5 -2
- package/dist/modules/declination/LaNominal.js.map +1 -1
- package/dist/modules/declination/LaNounData.js +54 -15
- package/dist/modules/declination/LaNounData.js.map +1 -1
- package/package.json +3 -2
- package/src/LaEngine.ts +5 -4
- package/src/modules/declination/LaAdjData.ts +116 -48
- package/src/modules/declination/LaNominal.ts +23 -6
- package/src/modules/declination/LaNounData.ts +52 -15
- package/dist/modules/LaEngine.d.ts +0 -15
- package/dist/modules/LaEngine.js +0 -46
- package/dist/modules/LaEngine.js.map +0 -1
- package/dist/modules/LaWiktionary.d.ts +0 -18
- package/dist/modules/LaWiktionary.js +0 -171
- package/dist/modules/LaWiktionary.js.map +0 -1
|
@@ -108,7 +108,11 @@ export const m_noun_decl: Map<string, ((data: SegmentData, args: string[]) => vo
|
|
|
108
108
|
|
|
109
109
|
if (data.types.has("ium")) {
|
|
110
110
|
setNominalForm(data.forms, "nom_sg", [stem1 + "ium"]);
|
|
111
|
-
|
|
111
|
+
if (!data.declOpts.suppressOldGenitive) {
|
|
112
|
+
setNominalForm(data.forms, "gen_sg", [stem1 + "iī", stem1 + "ī"]);
|
|
113
|
+
} else {
|
|
114
|
+
setNominalForm(data.forms, "gen_sg", [stem1 + "iī"]);
|
|
115
|
+
}
|
|
112
116
|
setNominalForm(data.forms, "dat_sg", [stem1 + "iō"]);
|
|
113
117
|
setNominalForm(data.forms, "acc_sg", [stem1 + "ium"]);
|
|
114
118
|
setNominalForm(data.forms, "abl_sg", [stem1 + "iō"]);
|
|
@@ -121,7 +125,9 @@ export const m_noun_decl: Map<string, ((data: SegmentData, args: string[]) => vo
|
|
|
121
125
|
setNominalForm(data.forms, "abl_pl", [stem1 + "iīs"]);
|
|
122
126
|
setNominalForm(data.forms, "voc_pl", [stem1 + "ia"]);
|
|
123
127
|
|
|
124
|
-
data.
|
|
128
|
+
if (!data.declOpts.suppressOldGenitive) {
|
|
129
|
+
data.notes.set("gen_sg2", "Found in older Latin (until the Augustan Age).");
|
|
130
|
+
}
|
|
125
131
|
} else if (data.types.has("a")) {
|
|
126
132
|
data.subtitles.push("nominative/accusative/vocative plural in '-a'");
|
|
127
133
|
|
|
@@ -188,7 +194,11 @@ export const m_noun_decl: Map<string, ((data: SegmentData, args: string[]) => vo
|
|
|
188
194
|
setNominalForm(data.forms, "voc_pl", [stem2 + "ī"]);
|
|
189
195
|
} else if (data.types.has("ius")) {
|
|
190
196
|
setNominalForm(data.forms, "nom_sg", [stem1 + "ius"]);
|
|
191
|
-
|
|
197
|
+
if (!data.declOpts.suppressOldGenitive) {
|
|
198
|
+
setNominalForm(data.forms, "gen_sg", [stem1 + "iī", stem1 + "ī"]);
|
|
199
|
+
} else {
|
|
200
|
+
setNominalForm(data.forms, "gen_sg", [stem1 + "iī"]);
|
|
201
|
+
}
|
|
192
202
|
setNominalForm(data.forms, "dat_sg", [stem1 + "iō"]);
|
|
193
203
|
setNominalForm(data.forms, "acc_sg", [stem1 + "ium"]);
|
|
194
204
|
setNominalForm(data.forms, "abl_sg", [stem1 + "iō"]);
|
|
@@ -206,7 +216,9 @@ export const m_noun_decl: Map<string, ((data: SegmentData, args: string[]) => vo
|
|
|
206
216
|
setNominalForm(data.forms, "abl_pl", [stem1 + "iīs"]);
|
|
207
217
|
setNominalForm(data.forms, "voc_pl", [stem1 + "iī"]);
|
|
208
218
|
|
|
209
|
-
data.
|
|
219
|
+
if (!data.declOpts.suppressOldGenitive) {
|
|
220
|
+
data.notes.set("gen_sg2", "Found in older Latin (until the Augustan Age).");
|
|
221
|
+
}
|
|
210
222
|
} else if (data.types.has("vos")) {
|
|
211
223
|
data.subtitles.push("nominative singular in '-os' after 'v'");
|
|
212
224
|
setNominalForm(data.forms, "nom_sg", [stem1 + "os"]);
|
|
@@ -432,7 +444,11 @@ export const m_noun_decl: Map<string, ((data: SegmentData, args: string[]) => vo
|
|
|
432
444
|
}
|
|
433
445
|
|
|
434
446
|
setNominalForm(data.forms, "gen_pl", [stem2 + "ium"]);
|
|
435
|
-
|
|
447
|
+
if (!data.declOpts.suppressNonNeuterIStemAccIs) {
|
|
448
|
+
setNominalForm(data.forms, "acc_pl", [stem2 + "ēs", stem2 + "īs"]);
|
|
449
|
+
} else {
|
|
450
|
+
setNominalForm(data.forms, "acc_pl", [stem2 + "ēs"]);
|
|
451
|
+
}
|
|
436
452
|
|
|
437
453
|
for (const subtype of data.types) {
|
|
438
454
|
const acc_sg_i_stem_props = acc_sg_i_stem_subtypes.get(subtype);
|
|
@@ -645,9 +661,14 @@ export const m_noun_decl: Map<string, ((data: SegmentData, args: string[]) => vo
|
|
|
645
661
|
|
|
646
662
|
setNominalForm(data.forms, "nom_pl", ["bovēs"]);
|
|
647
663
|
setNominalForm(data.forms, "gen_pl", ["boum"]);
|
|
648
|
-
|
|
664
|
+
if (!data.declOpts.suppressRareIrregForms) {
|
|
665
|
+
setNominalForm(data.forms, "dat_pl", ["bōbus", "būbus"]);
|
|
666
|
+
setNominalForm(data.forms, "abl_pl", ["bōbus", "būbus"]);
|
|
667
|
+
} else {
|
|
668
|
+
setNominalForm(data.forms, "dat_pl", ["bōbus"]);
|
|
669
|
+
setNominalForm(data.forms, "abl_pl", ["bōbus"]);
|
|
670
|
+
}
|
|
649
671
|
setNominalForm(data.forms, "acc_pl", ["bovēs"]);
|
|
650
|
-
setNominalForm(data.forms, "abl_pl", ["bōbus", "būbus"]);
|
|
651
672
|
setNominalForm(data.forms, "voc_pl", ["bovēs"]);
|
|
652
673
|
} else if (stem == "cherub") {
|
|
653
674
|
data.title = "mostly indeclinable";
|
|
@@ -692,17 +713,27 @@ export const m_noun_decl: Map<string, ((data: SegmentData, args: string[]) => vo
|
|
|
692
713
|
data.title = "fourth/second-declension noun";
|
|
693
714
|
|
|
694
715
|
setNominalForm(data.forms, "nom_sg", ["domus"]);
|
|
695
|
-
|
|
696
|
-
|
|
716
|
+
if (!data.declOpts.suppressRareIrregForms) {
|
|
717
|
+
setNominalForm(data.forms, "gen_sg", ["domūs", "domī"]);
|
|
718
|
+
setNominalForm(data.forms, "dat_sg", ["domuī", "domō", "domū"]);
|
|
719
|
+
setNominalForm(data.forms, "abl_sg", ["domū", "domō"]);
|
|
720
|
+
|
|
721
|
+
setNominalForm(data.forms, "gen_pl", ["domuum", "domōrum"]);
|
|
722
|
+
setNominalForm(data.forms, "acc_pl", ["domūs", "domōs"]);
|
|
723
|
+
} else {
|
|
724
|
+
setNominalForm(data.forms, "gen_sg", ["domūs"]);
|
|
725
|
+
setNominalForm(data.forms, "dat_sg", ["domuī"]);
|
|
726
|
+
setNominalForm(data.forms, "abl_sg", ["domō"]);
|
|
727
|
+
|
|
728
|
+
setNominalForm(data.forms, "gen_pl", ["domuum"]);
|
|
729
|
+
setNominalForm(data.forms, "acc_pl", ["domōs"]);
|
|
730
|
+
}
|
|
697
731
|
setNominalForm(data.forms, "acc_sg", ["domum"]);
|
|
698
|
-
setNominalForm(data.forms, "abl_sg", ["domū", "domō"]);
|
|
699
732
|
setNominalForm(data.forms, "voc_sg", ["domus"]);
|
|
700
733
|
setNominalForm(data.forms, "loc_sg", ["domī"]);
|
|
701
734
|
|
|
702
735
|
setNominalForm(data.forms, "nom_pl", ["domūs"]);
|
|
703
|
-
setNominalForm(data.forms, "gen_pl", ["domuum", "domōrum"]);
|
|
704
736
|
setNominalForm(data.forms, "dat_pl", ["domibus"]);
|
|
705
|
-
setNominalForm(data.forms, "acc_pl", ["domūs", "domōs"]);
|
|
706
737
|
setNominalForm(data.forms, "abl_pl", ["domibus"]);
|
|
707
738
|
setNominalForm(data.forms, "voc_pl", ["domūs"]);
|
|
708
739
|
setNominalForm(data.forms, "loc_pl", ["domibus"]);
|
|
@@ -804,9 +835,16 @@ export const m_noun_decl: Map<string, ((data: SegmentData, args: string[]) => vo
|
|
|
804
835
|
data.subtitles.push("irregular");
|
|
805
836
|
data.subtitles.push("defective");
|
|
806
837
|
|
|
838
|
+
if (!data.declOpts.suppressRareIrregForms) {
|
|
839
|
+
setNominalForm(data.forms, "gen_sg", ["*vīs"]);
|
|
840
|
+
setNominalForm(data.forms, "dat_sg", ["*vī"]);
|
|
841
|
+
|
|
842
|
+
setNominalForm(data.forms, "acc_pl", ["vīrēs", "vīrīs"]);
|
|
843
|
+
} else {
|
|
844
|
+
setNominalForm(data.forms, "acc_pl", ["vīrēs"]);
|
|
845
|
+
}
|
|
846
|
+
|
|
807
847
|
setNominalForm(data.forms, "nom_sg", ["vīs"]);
|
|
808
|
-
setNominalForm(data.forms, "gen_sg", ["*vīs"]);
|
|
809
|
-
setNominalForm(data.forms, "dat_sg", ["*vī"]);
|
|
810
848
|
setNominalForm(data.forms, "acc_sg", ["vim"]);
|
|
811
849
|
setNominalForm(data.forms, "abl_sg", ["vī"]);
|
|
812
850
|
setNominalForm(data.forms, "voc_sg", ["vīs"]);
|
|
@@ -814,7 +852,6 @@ export const m_noun_decl: Map<string, ((data: SegmentData, args: string[]) => vo
|
|
|
814
852
|
setNominalForm(data.forms, "nom_pl", ["vīrēs"]);
|
|
815
853
|
setNominalForm(data.forms, "gen_pl", ["vīrium"]);
|
|
816
854
|
setNominalForm(data.forms, "dat_pl", ["vīribus"]);
|
|
817
|
-
setNominalForm(data.forms, "acc_pl", ["vīrēs", "vīrīs"]);
|
|
818
855
|
setNominalForm(data.forms, "abl_pl", ["vīribus"]);
|
|
819
856
|
setNominalForm(data.forms, "voc_pl", ["vīrēs"]);
|
|
820
857
|
} else {
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Conjugation } from "./conjugation/LaVerb";
|
|
2
|
-
import { NounData, AdjectiveData } from "./declination/LaNominal";
|
|
3
|
-
import { Headword } from "./headword/HeadWord";
|
|
4
|
-
export declare type TemplateData = NounData | AdjectiveData | Conjugation | Headword;
|
|
5
|
-
export declare class LaEngine {
|
|
6
|
-
private conj;
|
|
7
|
-
private nominal;
|
|
8
|
-
private headword;
|
|
9
|
-
constructor();
|
|
10
|
-
decline_noun(template: string): NounData;
|
|
11
|
-
decline_adjective(template: string): AdjectiveData;
|
|
12
|
-
conjugate_verb(template: string): Conjugation;
|
|
13
|
-
parse_headword(template: string, lemma: string): Headword;
|
|
14
|
-
parse_template(template: string, lemma: string): TemplateData;
|
|
15
|
-
}
|
package/dist/modules/LaEngine.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LaEngine = void 0;
|
|
4
|
-
const common_1 = require("./common");
|
|
5
|
-
const LaVerb_1 = require("./conjugation/LaVerb");
|
|
6
|
-
const LaNominal_1 = require("./declination/LaNominal");
|
|
7
|
-
const HeadwordParser_1 = require("./headword/HeadwordParser");
|
|
8
|
-
class LaEngine {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.conj = new LaVerb_1.LaVerb();
|
|
11
|
-
this.nominal = new LaNominal_1.LaNominal();
|
|
12
|
-
this.conj = new LaVerb_1.LaVerb();
|
|
13
|
-
this.nominal = new LaNominal_1.LaNominal();
|
|
14
|
-
this.headword = new HeadwordParser_1.HeadwordParser(this.nominal, this.conj);
|
|
15
|
-
}
|
|
16
|
-
decline_noun(template) {
|
|
17
|
-
const args = common_1.parse_template(template);
|
|
18
|
-
return this.nominal.do_generate_noun_forms(args);
|
|
19
|
-
}
|
|
20
|
-
decline_adjective(template) {
|
|
21
|
-
const args = common_1.parse_template(template);
|
|
22
|
-
return this.nominal.do_generate_adj_forms(args);
|
|
23
|
-
}
|
|
24
|
-
conjugate_verb(template) {
|
|
25
|
-
const args = common_1.parse_template(template);
|
|
26
|
-
return this.conj.make_data(args);
|
|
27
|
-
}
|
|
28
|
-
parse_headword(template, lemma) {
|
|
29
|
-
return this.headword.parse(template, lemma);
|
|
30
|
-
}
|
|
31
|
-
parse_template(template, lemma) {
|
|
32
|
-
if (this.headword.isHeadwordTemplate(template)) {
|
|
33
|
-
return this.headword.parse(template, lemma);
|
|
34
|
-
}
|
|
35
|
-
const args = common_1.parse_template(template);
|
|
36
|
-
const templateName = args.get("0") || "";
|
|
37
|
-
switch (templateName) {
|
|
38
|
-
case "la-conj": return this.conj.make_data(args);
|
|
39
|
-
case "la-ndecl": return this.nominal.do_generate_noun_forms(args);
|
|
40
|
-
case "la-adecl": return this.nominal.do_generate_adj_forms(args);
|
|
41
|
-
default: throw Error(`Unknown template ${templateName}`);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
exports.LaEngine = LaEngine;
|
|
46
|
-
//# sourceMappingURL=LaEngine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LaEngine.js","sourceRoot":"","sources":["../../src/modules/LaEngine.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAC1C,iDAA2D;AAC3D,uDAA6E;AAE7E,8DAA2D;AAI3D,MAAa,QAAQ;IAKjB;QAJQ,SAAI,GAAG,IAAI,eAAM,EAAE,CAAC;QACpB,YAAO,GAAG,IAAI,qBAAS,EAAE,CAAC;QAI9B,IAAI,CAAC,IAAI,GAAG,IAAI,eAAM,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAEM,YAAY,CAAC,QAAgB;QAChC,MAAM,IAAI,GAAG,uBAAc,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAEM,iBAAiB,CAAC,QAAgB;QACrC,MAAM,IAAI,GAAG,uBAAc,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAEM,cAAc,CAAC,QAAgB;QAClC,MAAM,IAAI,GAAG,uBAAc,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,cAAc,CAAC,QAAgB,EAAE,KAAa;QACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAEM,cAAc,CAAC,QAAgB,EAAE,KAAa;QACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE;YAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC/C;QAED,MAAM,IAAI,GAAG,uBAAc,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAEzC,QAAQ,YAAY,EAAE;YAClB,KAAK,SAAS,CAAC,CAAK,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrD,KAAK,UAAU,CAAC,CAAI,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACrE,KAAK,UAAU,CAAC,CAAI,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACpE,OAAO,CAAC,CAAY,MAAM,KAAK,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAC;SACvE;IACL,CAAC;CACJ;AA7CD,4BA6CC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Conjugation } from "./conjugation/LaVerb";
|
|
2
|
-
import { Declension } from "./declination/LaNominal";
|
|
3
|
-
export declare type Inflection = Declension | Conjugation;
|
|
4
|
-
export declare class LaWiktionary {
|
|
5
|
-
private nominal;
|
|
6
|
-
private verb;
|
|
7
|
-
private headword;
|
|
8
|
-
constructor();
|
|
9
|
-
load(wordFile: string): Promise<void>;
|
|
10
|
-
private processEntry;
|
|
11
|
-
private processInflectedWord;
|
|
12
|
-
private addInflected;
|
|
13
|
-
private addParticle;
|
|
14
|
-
private runInflection;
|
|
15
|
-
private match;
|
|
16
|
-
private getLemmaFromInflection;
|
|
17
|
-
static main(): Promise<void>;
|
|
18
|
-
}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.LaWiktionary = void 0;
|
|
13
|
-
const readline = require("readline");
|
|
14
|
-
const fs_1 = require("fs");
|
|
15
|
-
const LaVerb_1 = require("./conjugation/LaVerb");
|
|
16
|
-
const LaNominal_1 = require("./declination/LaNominal");
|
|
17
|
-
const HeadwordParser_1 = require("./headword/HeadwordParser");
|
|
18
|
-
const common_1 = require("./common");
|
|
19
|
-
class LaWiktionary {
|
|
20
|
-
constructor() {
|
|
21
|
-
this.nominal = new LaNominal_1.LaNominal();
|
|
22
|
-
this.verb = new LaVerb_1.LaVerb();
|
|
23
|
-
this.headword = new HeadwordParser_1.HeadwordParser(this.nominal, this.verb);
|
|
24
|
-
}
|
|
25
|
-
load(wordFile) {
|
|
26
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
-
const stream = fs_1.createReadStream(wordFile);
|
|
28
|
-
const reader = readline.createInterface({ input: stream, crlfDelay: Infinity });
|
|
29
|
-
reader.on("line", line => {
|
|
30
|
-
const entry = JSON.parse(line);
|
|
31
|
-
this.processEntry(entry);
|
|
32
|
-
});
|
|
33
|
-
return new Promise(accept => {
|
|
34
|
-
reader.once("close", () => {
|
|
35
|
-
accept();
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
processEntry(entry) {
|
|
41
|
-
if (entry.inflections.length > 0) {
|
|
42
|
-
this.processInflectedWord(entry);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
for (const head of entry.heads) {
|
|
46
|
-
this.addParticle(entry, head);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
processInflectedWord(entry) {
|
|
51
|
-
const headwords = new Set();
|
|
52
|
-
// pre-parse all headwords
|
|
53
|
-
for (const template of entry.heads) {
|
|
54
|
-
const headword = this.headword.parse(template, entry.lemma);
|
|
55
|
-
if (!headword) {
|
|
56
|
-
console.warn(`Unknown headword template ${template}`);
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
headwords.add(headword);
|
|
60
|
-
}
|
|
61
|
-
for (const infTemplate of entry.inflections) {
|
|
62
|
-
const infData = this.runInflection(infTemplate);
|
|
63
|
-
if (!infData) {
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
for (const head of headwords) {
|
|
67
|
-
const lemmata = this.match(infData, head, entry.lemma);
|
|
68
|
-
if (lemmata.length == 0) {
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
addInflected(entry, head, inflection) {
|
|
75
|
-
}
|
|
76
|
-
addParticle(entry, head) {
|
|
77
|
-
this.headword.parse(head, entry.lemma);
|
|
78
|
-
}
|
|
79
|
-
runInflection(template) {
|
|
80
|
-
const args = common_1.parse_template(template);
|
|
81
|
-
const templateName = args.get("0") || "";
|
|
82
|
-
switch (templateName) {
|
|
83
|
-
case "la-conj":
|
|
84
|
-
return this.verb.make_data(args);
|
|
85
|
-
case "la-ndecl":
|
|
86
|
-
return this.nominal.do_generate_noun_forms(args);
|
|
87
|
-
case "la-adecl":
|
|
88
|
-
return this.nominal.do_generate_adj_forms(args);
|
|
89
|
-
case "la-decl-gerund":
|
|
90
|
-
const form = args.get("1");
|
|
91
|
-
const gerundTemplate = `{{la-ndecl|${form}<2.sg>|nom_sg=-|voc_sg=-}}`;
|
|
92
|
-
const gerundArgs = common_1.parse_template(gerundTemplate);
|
|
93
|
-
return this.nominal.do_generate_noun_forms(gerundArgs, "gerunds", true);
|
|
94
|
-
case "la-decl-ppron":
|
|
95
|
-
// only used for ego and inflected forms like tu, nos, ...
|
|
96
|
-
return undefined;
|
|
97
|
-
default:
|
|
98
|
-
console.log(`Skipping unknown inflection template ${templateName}`);
|
|
99
|
-
return undefined;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
match(inf, headword, lemma) {
|
|
103
|
-
const infLemmata = this.getLemmaFromInflection(inf);
|
|
104
|
-
if (infLemmata.length == 0) {
|
|
105
|
-
console.warn(`Couldn't get lemma for ${lemma}`);
|
|
106
|
-
}
|
|
107
|
-
function tryMatch(dropDiacritial) {
|
|
108
|
-
const thisMatches = [];
|
|
109
|
-
for (const infLemma of infLemmata) {
|
|
110
|
-
for (const head of headword.heads) {
|
|
111
|
-
const l1 = dropDiacritial ? common_1.remove_diacritical(infLemma, false) : infLemma;
|
|
112
|
-
const l2 = dropDiacritial ? common_1.remove_diacritical(head, false) : head;
|
|
113
|
-
if (l1 == l2) {
|
|
114
|
-
thisMatches.push(l1);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return thisMatches;
|
|
119
|
-
}
|
|
120
|
-
const matches = tryMatch(false);
|
|
121
|
-
if (matches.length == 0) {
|
|
122
|
-
console.warn(`No match for inflection [${infLemmata}] with head [${headword.heads}] in lemma ${lemma}`);
|
|
123
|
-
}
|
|
124
|
-
return matches;
|
|
125
|
-
}
|
|
126
|
-
getLemmaFromInflection(inf) {
|
|
127
|
-
if (inf.inflectionType == "conjugation") {
|
|
128
|
-
return this.verb.get_lemma_forms(inf.data, true);
|
|
129
|
-
}
|
|
130
|
-
else if (inf.inflectionType == "declension") {
|
|
131
|
-
const lemmaNum = (inf.num == LaNominal_1.NumberTantum.Plural ? "pl" : "sg");
|
|
132
|
-
if (inf.declensionType == "noun") {
|
|
133
|
-
if (inf.pos == "gerunds") {
|
|
134
|
-
return inf.forms.get(`acc_${lemmaNum}`) || [];
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
let forms = inf.forms.get(`nom_${lemmaNum}`) || [LaNominal_1.LaNominal.EmptyForm];
|
|
138
|
-
if (forms[0] != LaNominal_1.LaNominal.EmptyForm) {
|
|
139
|
-
return forms;
|
|
140
|
-
}
|
|
141
|
-
forms = inf.forms.get(`gen_${lemmaNum}`) || [LaNominal_1.LaNominal.EmptyForm];
|
|
142
|
-
if (forms[0] != LaNominal_1.LaNominal.EmptyForm) {
|
|
143
|
-
return forms;
|
|
144
|
-
}
|
|
145
|
-
forms = inf.forms.get(`acc_${lemmaNum}`) || [LaNominal_1.LaNominal.EmptyForm];
|
|
146
|
-
if (forms[0] != LaNominal_1.LaNominal.EmptyForm) {
|
|
147
|
-
return forms;
|
|
148
|
-
}
|
|
149
|
-
return [];
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
else if (inf.declensionType == "adjective") {
|
|
153
|
-
const m = inf.forms.get(`nom_${lemmaNum}_m`);
|
|
154
|
-
if (m && m[0] != LaNominal_1.LaNominal.EmptyForm) {
|
|
155
|
-
return m;
|
|
156
|
-
}
|
|
157
|
-
return inf.forms.get(`nom_${lemmaNum}_n`) || [];
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
return [];
|
|
161
|
-
}
|
|
162
|
-
static main() {
|
|
163
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
164
|
-
console.log("Loading words...");
|
|
165
|
-
const la = new LaWiktionary();
|
|
166
|
-
yield la.load("./data/words.json");
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
exports.LaWiktionary = LaWiktionary;
|
|
171
|
-
//# sourceMappingURL=LaWiktionary.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LaWiktionary.js","sourceRoot":"","sources":["../../src/modules/LaWiktionary.ts"],"names":[],"mappings":"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"}
|