@fpw/en-wiktionary-la-modules 0.1.2 → 0.1.5
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/modules/conjugation/LaVerb.d.ts +3 -1
- package/dist/modules/conjugation/LaVerb.js +201 -32
- package/dist/modules/conjugation/LaVerb.js.map +1 -1
- package/dist/modules/conjugation/VerbType.d.ts +5 -1
- package/dist/modules/conjugation/VerbType.js +4 -0
- package/dist/modules/conjugation/VerbType.js.map +1 -1
- package/dist/modules/declination/LaAdjData.d.ts +1 -1
- package/dist/modules/declination/LaAdjData.js +45 -24
- package/dist/modules/declination/LaAdjData.js.map +1 -1
- package/dist/modules/declination/LaNominal.d.ts +9 -5
- package/dist/modules/declination/LaNominal.js +195 -171
- package/dist/modules/declination/LaNominal.js.map +1 -1
- package/dist/modules/declination/LaNounData.js +65 -64
- package/dist/modules/declination/LaNounData.js.map +1 -1
- package/dist/modules/declination/LaPersonalPronoun.js +1 -0
- package/dist/modules/declination/LaPersonalPronoun.js.map +1 -1
- package/dist/modules/declination/NominalType.d.ts +116 -0
- package/dist/modules/declination/NominalType.js +142 -0
- package/dist/modules/declination/NominalType.js.map +1 -0
- package/dist/modules/headword/HeadwordParser.js +2 -1
- package/dist/modules/headword/HeadwordParser.js.map +1 -1
- package/package.json +1 -1
- package/src/modules/conjugation/LaVerb.ts +206 -35
- package/src/modules/conjugation/VerbType.ts +4 -0
- package/src/modules/declination/LaAdjData.ts +47 -24
- package/src/modules/declination/LaNominal.ts +223 -187
- package/src/modules/declination/LaNounData.ts +67 -66
- package/src/modules/declination/LaPersonalPronoun.ts +1 -0
- package/src/modules/declination/NominalType.ts +153 -0
- package/src/modules/headword/HeadwordParser.ts +2 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* A few new options to suppress certain rate forms were added.
|
|
6
6
|
*
|
|
7
7
|
* Original source: https://en.wiktionary.org/wiki/Module:la-verb
|
|
8
|
-
* Based on version: https://en.wiktionary.org/w/index.php?title=Module:la-verb&oldid=
|
|
8
|
+
* Based on version: https://en.wiktionary.org/w/index.php?title=Module:la-verb&oldid=67964189
|
|
9
9
|
*
|
|
10
10
|
* Lua idioms, function and variable names kept as in the original in order to easily
|
|
11
11
|
* backport later changes to this implementation.
|
|
@@ -25,6 +25,7 @@ export interface ConjOptions {
|
|
|
25
25
|
suppressUndVariants?: boolean;
|
|
26
26
|
suppressIPerfect?: boolean;
|
|
27
27
|
suppressPoet?: boolean;
|
|
28
|
+
suppressArchaic?: boolean;
|
|
28
29
|
ireWithShortPerfInf?: boolean;
|
|
29
30
|
reorderEdere?: boolean;
|
|
30
31
|
}
|
|
@@ -98,6 +99,7 @@ export declare class LaVerb {
|
|
|
98
99
|
private make_perfect_passive;
|
|
99
100
|
private override;
|
|
100
101
|
private add_prefix_suffix;
|
|
102
|
+
private notes_override;
|
|
101
103
|
private set_linked_forms;
|
|
102
104
|
private setup_irreg_conjs;
|
|
103
105
|
private lengthen_prefix;
|
|
@@ -8,7 +8,7 @@ exports.LaVerb = void 0;
|
|
|
8
8
|
* A few new options to suppress certain rate forms were added.
|
|
9
9
|
*
|
|
10
10
|
* Original source: https://en.wiktionary.org/wiki/Module:la-verb
|
|
11
|
-
* Based on version: https://en.wiktionary.org/w/index.php?title=Module:la-verb&oldid=
|
|
11
|
+
* Based on version: https://en.wiktionary.org/w/index.php?title=Module:la-verb&oldid=67964189
|
|
12
12
|
*
|
|
13
13
|
* Lua idioms, function and variable names kept as in the original in order to easily
|
|
14
14
|
* backport later changes to this implementation.
|
|
@@ -75,6 +75,7 @@ class LaVerb {
|
|
|
75
75
|
"np",
|
|
76
76
|
"highlydef",
|
|
77
77
|
"sigm",
|
|
78
|
+
"sigmpasv",
|
|
78
79
|
]);
|
|
79
80
|
this.conjugations = new Map();
|
|
80
81
|
this.irreg_conjugations = new Map();
|
|
@@ -182,6 +183,7 @@ class LaVerb {
|
|
|
182
183
|
this.override(data, args);
|
|
183
184
|
this.set_linked_forms(data, typeinfo);
|
|
184
185
|
this.add_prefix_suffix(data);
|
|
186
|
+
this.notes_override(data, args);
|
|
185
187
|
return {
|
|
186
188
|
templateType: "conjugation",
|
|
187
189
|
info: typeinfo,
|
|
@@ -264,6 +266,70 @@ class LaVerb {
|
|
|
264
266
|
}
|
|
265
267
|
this.make_pres_3rd(data, typeinfo, typeinfo.pres_stem);
|
|
266
268
|
this.make_perf_and_supine(data, typeinfo);
|
|
269
|
+
if (typeinfo.pres_stem.match(/nōsc/) && !this.options.suppressArchaic) {
|
|
270
|
+
const sub = (str, x, y) => {
|
|
271
|
+
return str.substring(x - 1, str.length + y + 1);
|
|
272
|
+
};
|
|
273
|
+
this.add_form(data, "2s_perf_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "stī", 2);
|
|
274
|
+
this.add_form(data, "1p_perf_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "mus", 2);
|
|
275
|
+
this.add_form(data, "2p_perf_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "stis", 2);
|
|
276
|
+
this.add_form(data, "3p_perf_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "runt", 3);
|
|
277
|
+
this.add_form(data, "1s_plup_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "ram", 2);
|
|
278
|
+
this.add_form(data, "2s_plup_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "rās", 2);
|
|
279
|
+
this.add_form(data, "3s_plup_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "rat", 2);
|
|
280
|
+
this.add_form(data, "1p_plup_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "rāmus", 2);
|
|
281
|
+
this.add_form(data, "2p_plup_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "rātis", 2);
|
|
282
|
+
this.add_form(data, "3p_plup_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "rant", 2);
|
|
283
|
+
this.add_form(data, "1s_futp_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "rō", 2);
|
|
284
|
+
this.add_form(data, "2s_futp_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "ris", 2);
|
|
285
|
+
this.add_form(data, "3s_futp_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "rit", 2);
|
|
286
|
+
this.add_form(data, "1p_futp_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "rimus", 2);
|
|
287
|
+
this.add_form(data, "2p_futp_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "ritis", 2);
|
|
288
|
+
this.add_form(data, "3p_futp_actv_indc", "", sub(typeinfo.perf_stem[0], 1, -2) + "rint", 2);
|
|
289
|
+
this.add_form(data, "1s_perf_actv_subj", "", sub(typeinfo.perf_stem[0], 1, -2) + "rim", 2);
|
|
290
|
+
this.add_form(data, "2s_perf_actv_subj", "", sub(typeinfo.perf_stem[0], 1, -2) + "rīs", 2);
|
|
291
|
+
this.add_form(data, "3s_perf_actv_subj", "", sub(typeinfo.perf_stem[0], 1, -2) + "rit", 2);
|
|
292
|
+
this.add_form(data, "1p_perf_actv_subj", "", sub(typeinfo.perf_stem[0], 1, -2) + "rīmus", 2);
|
|
293
|
+
this.add_form(data, "2p_perf_actv_subj", "", sub(typeinfo.perf_stem[0], 1, -2) + "rītis", 2);
|
|
294
|
+
this.add_form(data, "3p_perf_actv_subj", "", sub(typeinfo.perf_stem[0], 1, -2) + "rint", 2);
|
|
295
|
+
this.add_form(data, "1s_plup_actv_subj", "", sub(typeinfo.perf_stem[0], 1, -2) + "ssem", 2);
|
|
296
|
+
this.add_form(data, "2s_plup_actv_subj", "", sub(typeinfo.perf_stem[0], 1, -2) + "ssēs", 2);
|
|
297
|
+
this.add_form(data, "3s_plup_actv_subj", "", sub(typeinfo.perf_stem[0], 1, -2) + "sset", 2);
|
|
298
|
+
this.add_form(data, "1p_plup_actv_subj", "", sub(typeinfo.perf_stem[0], 1, -2) + "ssēmus", 2);
|
|
299
|
+
this.add_form(data, "2p_plup_actv_subj", "", sub(typeinfo.perf_stem[0], 1, -2) + "ssētis", 2);
|
|
300
|
+
this.add_form(data, "3p_plup_actv_subj", "", sub(typeinfo.perf_stem[0], 1, -2) + "ssent", 2);
|
|
301
|
+
this.add_form(data, "perf_actv_inf", "", sub(typeinfo.perf_stem[0], 1, -2) + "sse", 2);
|
|
302
|
+
const note = "The verb \"nōscō\" and its compounds frequently drop the syllables \"vi\" and \"ve\" from their perfect, pluperfect and future perfect conjugations.";
|
|
303
|
+
data.footnotes.set("2s_perf_actv_indc", [note]);
|
|
304
|
+
data.footnotes.set("1p_perf_actv_indc", [note]);
|
|
305
|
+
data.footnotes.set("2p_perf_actv_indc", [note]);
|
|
306
|
+
data.footnotes.set("3p_perf_actv_indc", [note]);
|
|
307
|
+
data.footnotes.set("1s_plup_actv_indc", [note]);
|
|
308
|
+
data.footnotes.set("2s_plup_actv_indc", [note]);
|
|
309
|
+
data.footnotes.set("3s_plup_actv_indc", [note]);
|
|
310
|
+
data.footnotes.set("1p_plup_actv_indc", [note]);
|
|
311
|
+
data.footnotes.set("2p_plup_actv_indc", [note]);
|
|
312
|
+
data.footnotes.set("3p_plup_actv_indc", [note]);
|
|
313
|
+
data.footnotes.set("1s_futp_actv_indc", [note]);
|
|
314
|
+
data.footnotes.set("2s_futp_actv_indc", [note]);
|
|
315
|
+
data.footnotes.set("3s_futp_actv_indc", [note]);
|
|
316
|
+
data.footnotes.set("1p_futp_actv_indc", [note]);
|
|
317
|
+
data.footnotes.set("2p_futp_actv_indc", [note]);
|
|
318
|
+
data.footnotes.set("3p_futp_actv_indc", [note]);
|
|
319
|
+
data.footnotes.set("1s_perf_actv_subj", [note]);
|
|
320
|
+
data.footnotes.set("2s_perf_actv_subj", [note]);
|
|
321
|
+
data.footnotes.set("3s_perf_actv_subj", [note]);
|
|
322
|
+
data.footnotes.set("1p_perf_actv_subj", [note]);
|
|
323
|
+
data.footnotes.set("2p_perf_actv_subj", [note]);
|
|
324
|
+
data.footnotes.set("3p_perf_actv_subj", [note]);
|
|
325
|
+
data.footnotes.set("1s_plup_actv_subj", [note]);
|
|
326
|
+
data.footnotes.set("2s_plup_actv_subj", [note]);
|
|
327
|
+
data.footnotes.set("3s_plup_actv_subj", [note]);
|
|
328
|
+
data.footnotes.set("1p_plup_actv_subj", [note]);
|
|
329
|
+
data.footnotes.set("2p_plup_actv_subj", [note]);
|
|
330
|
+
data.footnotes.set("3p_plup_actv_subj", [note]);
|
|
331
|
+
data.footnotes.set("perf_actv_inf", [note]);
|
|
332
|
+
}
|
|
267
333
|
});
|
|
268
334
|
this.conjugations.set("3rd-io", (args, data, typeinfo) => {
|
|
269
335
|
this.get_regular_stems(args, typeinfo);
|
|
@@ -303,7 +369,6 @@ class LaVerb {
|
|
|
303
369
|
this.make_pres_4th(data, typeinfo, typeinfo.pres_stem);
|
|
304
370
|
this.make_perf_and_supine(data, typeinfo);
|
|
305
371
|
if (!this.options.suppressPoet) {
|
|
306
|
-
// guard added by @fpw
|
|
307
372
|
if (this.form_contains((0, VerbForm_1.getVerbForm)(data.forms, "1s_pres_actv_indc"), "serviō") || this.form_contains((0, VerbForm_1.getVerbForm)(data.forms, "1s_pres_actv_indc"), "saeviō")) {
|
|
308
373
|
this.add_forms(data, "impf_actv_indc", typeinfo.pres_stem, ["iēbam", "ībam"], ["iēbās", "ībās"], ["iēbat", "ībat"], ["iēbāmus", "ībāmus"], ["iēbātis", "ībātis"], ["iēbant", "ībant"]);
|
|
309
374
|
this.add_forms(data, "futr_actv_indc", typeinfo.pres_stem, ["iam", "ībō"], ["iēs", "ībis"], ["iet", "ībit"], ["iēmus", "ībimus"], ["iētis", "ībitis"], ["ient", "ībunt"]);
|
|
@@ -492,6 +557,9 @@ class LaVerb {
|
|
|
492
557
|
conj_arg = base_conj_arg;
|
|
493
558
|
}
|
|
494
559
|
}
|
|
560
|
+
if (orig_lemma.startsWith("-")) {
|
|
561
|
+
(0, VerbType_1.addVerbType)(subtypes, "suffix");
|
|
562
|
+
}
|
|
495
563
|
let conjtype;
|
|
496
564
|
let base = "";
|
|
497
565
|
let auto_perf = "";
|
|
@@ -504,11 +572,21 @@ class LaVerb {
|
|
|
504
572
|
["ō", []],
|
|
505
573
|
["or", ["depon"]],
|
|
506
574
|
["at", ["impers"]],
|
|
507
|
-
["ātur", ["depon", "impers"]]
|
|
575
|
+
["ātur", ["depon", "impers"]],
|
|
576
|
+
["ī", ["perfaspres"]]
|
|
508
577
|
]));
|
|
509
578
|
if (auto_perf_supine) {
|
|
510
|
-
|
|
511
|
-
|
|
579
|
+
if ((0, VerbType_1.hasVerbType)(subtypes, "perfaspres")) {
|
|
580
|
+
auto_perf = base;
|
|
581
|
+
}
|
|
582
|
+
else {
|
|
583
|
+
auto_perf = base + "āv";
|
|
584
|
+
auto_supine = base + "āt";
|
|
585
|
+
}
|
|
586
|
+
if ((0, VerbType_1.hasVerbType)(subtypes, "suffix")) {
|
|
587
|
+
(0, VerbType_1.addVerbType)(subtypes, "p3inf");
|
|
588
|
+
(0, VerbType_1.addVerbType)(subtypes, "sigmpasv");
|
|
589
|
+
}
|
|
512
590
|
}
|
|
513
591
|
}
|
|
514
592
|
else if (conj_arg == "2") {
|
|
@@ -517,11 +595,20 @@ class LaVerb {
|
|
|
517
595
|
["eō", []],
|
|
518
596
|
["eor", ["depon"]],
|
|
519
597
|
["et", ["impers"]],
|
|
520
|
-
["ētur", ["depon", "impers"]]
|
|
598
|
+
["ētur", ["depon", "impers"]],
|
|
599
|
+
["ī", ["perfaspres"]]
|
|
521
600
|
]));
|
|
522
601
|
if (auto_perf_supine) {
|
|
523
|
-
|
|
524
|
-
|
|
602
|
+
if ((0, VerbType_1.hasVerbType)(subtypes, "perfaspres")) {
|
|
603
|
+
auto_perf = base;
|
|
604
|
+
}
|
|
605
|
+
else {
|
|
606
|
+
auto_perf = base + "u";
|
|
607
|
+
auto_supine = base + "it";
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
if ((0, VerbType_1.hasVerbType)(subtypes, "suffix")) {
|
|
611
|
+
(0, VerbType_1.addVerbType)(subtypes, "sigmpasv");
|
|
525
612
|
}
|
|
526
613
|
}
|
|
527
614
|
else if (conj_arg == "3") {
|
|
@@ -537,7 +624,8 @@ class LaVerb {
|
|
|
537
624
|
["ō", []],
|
|
538
625
|
["or", ["depon"]],
|
|
539
626
|
["it", ["impers"]],
|
|
540
|
-
["itur", ["depon", "impers"]]
|
|
627
|
+
["itur", ["depon", "impers"]],
|
|
628
|
+
["ī", ["perfaspres"]],
|
|
541
629
|
]));
|
|
542
630
|
if ((0, VerbType_1.hasVerbType)(subtypes, "I")) {
|
|
543
631
|
conjtype = "3rd-io";
|
|
@@ -546,6 +634,14 @@ class LaVerb {
|
|
|
546
634
|
conjtype = "3rd";
|
|
547
635
|
}
|
|
548
636
|
}
|
|
637
|
+
if ((0, VerbType_1.hasVerbType)(subtypes, "perfaspres")) {
|
|
638
|
+
auto_perf = base;
|
|
639
|
+
}
|
|
640
|
+
if ((0, VerbType_1.hasVerbType)(subtypes, "suffix")) {
|
|
641
|
+
auto_perf = "-";
|
|
642
|
+
auto_supine = "-";
|
|
643
|
+
(0, VerbType_1.addVerbType)(subtypes, "sigmpasv");
|
|
644
|
+
}
|
|
549
645
|
}
|
|
550
646
|
else if (conj_arg == "4") {
|
|
551
647
|
conjtype = "4th";
|
|
@@ -553,12 +649,13 @@ class LaVerb {
|
|
|
553
649
|
["iō", []],
|
|
554
650
|
["ior", ["depon"]],
|
|
555
651
|
["it", ["impers"]],
|
|
556
|
-
["ītur", ["depon", "impers"]]
|
|
652
|
+
["ītur", ["depon", "impers"]],
|
|
653
|
+
["ī", ["perfaspres"]]
|
|
557
654
|
]));
|
|
558
|
-
if (
|
|
559
|
-
|
|
655
|
+
if ((0, VerbType_1.hasVerbType)(subtypes, "perfaspres")) {
|
|
656
|
+
auto_perf = base;
|
|
560
657
|
}
|
|
561
|
-
if (auto_perf_supine == "++") {
|
|
658
|
+
else if (auto_perf_supine == "++") {
|
|
562
659
|
auto_perf = base + "īv/" + base + "i";
|
|
563
660
|
auto_supine = base + "īt";
|
|
564
661
|
}
|
|
@@ -566,6 +663,9 @@ class LaVerb {
|
|
|
566
663
|
auto_perf = base + "īv";
|
|
567
664
|
auto_supine = base + "īt";
|
|
568
665
|
}
|
|
666
|
+
if ((0, VerbType_1.hasVerbType)(subtypes, "suffix")) {
|
|
667
|
+
(0, VerbType_1.addVerbType)(subtypes, "sigm");
|
|
668
|
+
}
|
|
569
669
|
}
|
|
570
670
|
else if (conj_arg == "irreg") {
|
|
571
671
|
let prefix;
|
|
@@ -617,13 +717,15 @@ class LaVerb {
|
|
|
617
717
|
args.set("1", base);
|
|
618
718
|
let perf_stem = "";
|
|
619
719
|
let supine_stem = "";
|
|
620
|
-
if ((0, VerbType_1.hasVerbType)(subtypes, "depon") || (0, VerbType_1.hasVerbType)(subtypes, "semidepon")) {
|
|
720
|
+
if ((0, VerbType_1.hasVerbType)(subtypes, "depon") || (0, VerbType_1.hasVerbType)(subtypes, "semidepon") || (0, VerbType_1.hasVerbType)(subtypes, "perfaspres")) {
|
|
621
721
|
supine_stem = args.get("3") || auto_supine;
|
|
622
|
-
if (supine_stem == "-") {
|
|
722
|
+
if (supine_stem == "-" && !(0, VerbType_1.hasVerbType)(subtypes, "suffix")) {
|
|
623
723
|
supine_stem = "";
|
|
624
724
|
}
|
|
625
725
|
if (!supine_stem) {
|
|
626
|
-
(0, VerbType_1.
|
|
726
|
+
if ((0, VerbType_1.hasVerbType)(subtypes, "depon") || (0, VerbType_1.hasVerbType)(subtypes, "semidepon")) {
|
|
727
|
+
(0, VerbType_1.addVerbType)(subtypes, "noperf");
|
|
728
|
+
}
|
|
627
729
|
(0, VerbType_1.addVerbType)(subtypes, "nosup");
|
|
628
730
|
}
|
|
629
731
|
args.set("2", supine_stem);
|
|
@@ -631,14 +733,14 @@ class LaVerb {
|
|
|
631
733
|
}
|
|
632
734
|
else {
|
|
633
735
|
perf_stem = args.get("3") || auto_perf;
|
|
634
|
-
if (perf_stem == "-") {
|
|
736
|
+
if (perf_stem == "-" && !(0, VerbType_1.hasVerbType)(subtypes, "suffix")) {
|
|
635
737
|
perf_stem = "";
|
|
636
738
|
}
|
|
637
739
|
if (!perf_stem) {
|
|
638
740
|
(0, VerbType_1.addVerbType)(subtypes, "noperf");
|
|
639
741
|
}
|
|
640
742
|
supine_stem = args.get("4") || auto_supine;
|
|
641
|
-
if (supine_stem == "-") {
|
|
743
|
+
if (supine_stem == "-" && !(0, VerbType_1.hasVerbType)(subtypes, "suffix")) {
|
|
642
744
|
supine_stem = "";
|
|
643
745
|
}
|
|
644
746
|
if (!supine_stem) {
|
|
@@ -657,7 +759,7 @@ class LaVerb {
|
|
|
657
759
|
}
|
|
658
760
|
for (const subtype of subtypes) {
|
|
659
761
|
if (!this.allowed_subtypes.has(subtype)) {
|
|
660
|
-
if (!(conjtype == "3rd" && subtype == "-I") && !(conjtype == "3rd-io" && subtype == "I")) {
|
|
762
|
+
if (!(conjtype == "3rd" && subtype == "-I") && !(conjtype == "3rd-io" && subtype == "I") && !(subtype == "suffix")) {
|
|
661
763
|
throw Error(`Unrecognized verb subtype: ${subtype}`);
|
|
662
764
|
}
|
|
663
765
|
}
|
|
@@ -705,16 +807,22 @@ class LaVerb {
|
|
|
705
807
|
supine_stem = this.ine(args.get("2"));
|
|
706
808
|
perf_stem = this.ine(args.get("3")); // added by @fpw for reverti
|
|
707
809
|
}
|
|
810
|
+
else if ((0, VerbType_1.hasVerbType)(typeinfo.subtypes, "perfaspres")) {
|
|
811
|
+
perf_stem = this.ine(args.get("1"));
|
|
812
|
+
supine_stem = this.ine(args.get("2"));
|
|
813
|
+
}
|
|
708
814
|
else {
|
|
709
815
|
pres_stem = this.ine(args.get("1"));
|
|
710
816
|
perf_stem = this.ine(args.get("2"));
|
|
711
817
|
supine_stem = this.ine(args.get("3"));
|
|
712
818
|
}
|
|
713
|
-
if ((0, VerbType_1.hasVerbType)(typeinfo.subtypes, "perfaspres") && !pres_stem) {
|
|
714
|
-
pres_stem = "whatever";
|
|
715
|
-
}
|
|
716
819
|
if (!pres_stem) {
|
|
717
|
-
|
|
820
|
+
if ((0, VerbType_1.hasVerbType)(typeinfo.subtypes, "perfaspres")) {
|
|
821
|
+
pres_stem = "-";
|
|
822
|
+
}
|
|
823
|
+
else {
|
|
824
|
+
throw Error("No present stem");
|
|
825
|
+
}
|
|
718
826
|
}
|
|
719
827
|
typeinfo.pres_stem = pres_stem;
|
|
720
828
|
if (perf_stem) {
|
|
@@ -1113,7 +1221,7 @@ class LaVerb {
|
|
|
1113
1221
|
endingMap.set("dat", endings.dat);
|
|
1114
1222
|
endingMap.set("acc", endings.acc);
|
|
1115
1223
|
endingMap.set("abl", endings.abl);
|
|
1116
|
-
if (base.match(/[uv]end$/)) {
|
|
1224
|
+
if (base.match(/[uv]end$/) || (0, VerbType_1.hasVerbType)(typeinfo.subtypes, "nound")) {
|
|
1117
1225
|
und_variant = false;
|
|
1118
1226
|
}
|
|
1119
1227
|
if (this.options.suppressUndVariants) {
|
|
@@ -1254,6 +1362,7 @@ class LaVerb {
|
|
|
1254
1362
|
if ((0, VerbType_1.hasVerbType)(typeinfo.subtypes, "perfaspres")) {
|
|
1255
1363
|
this.insert_if_not(data.categories, "Latin defective verbs");
|
|
1256
1364
|
this.insert_if_not(data.categories, "Latin active-only verbs");
|
|
1365
|
+
this.insert_if_not(data.categories, "Latin verbs with missing present stem");
|
|
1257
1366
|
this.insert_if_not(data.categories, "Latin verbs with perfect forms having imperfective meanings");
|
|
1258
1367
|
(0, VerbForm_1.setVerbForm)(data.forms, "perf_actv_ptc", (0, VerbForm_1.getVerbForm)(data.forms, "perf_pasv_ptc") || []);
|
|
1259
1368
|
(0, VerbForm_1.setVerbForm)(data.forms, "pres_actv_inf", (0, VerbForm_1.getVerbForm)(data.forms, "perf_actv_inf") || []);
|
|
@@ -1422,13 +1531,40 @@ class LaVerb {
|
|
|
1422
1531
|
newvals.push(fv.replace(/^(.*).$/, "$1" + "ier"));
|
|
1423
1532
|
}
|
|
1424
1533
|
(0, VerbForm_1.setVerbForm)(data.forms, form, newvals);
|
|
1425
|
-
data.footnotes.set(form, ["The present passive infinitive in -ier is a rare poetic form which is attested
|
|
1534
|
+
data.footnotes.set(form, ["The present passive infinitive in -ier is a rare poetic form which is attested."]);
|
|
1426
1535
|
}
|
|
1427
1536
|
if ((0, VerbType_1.hasVerbType)(typeinfo.subtypes, "poetsyncperf") && !this.options.suppressPoet) {
|
|
1428
1537
|
const sss = [
|
|
1538
|
+
// infinitive
|
|
1429
1539
|
["perf_actv_inf", "sse"],
|
|
1540
|
+
// perfect actives
|
|
1430
1541
|
["2s_perf_actv_indc", "stī"],
|
|
1542
|
+
["3s_perf_actv_indc", "t"],
|
|
1543
|
+
["1p_perf_actv_indc", "mus"],
|
|
1431
1544
|
["2p_perf_actv_indc", "stis"],
|
|
1545
|
+
["3p_perf_actv_indc", "runt"],
|
|
1546
|
+
// pluperfect actives
|
|
1547
|
+
["1s_plup_actv_indc", "ram"],
|
|
1548
|
+
["2s_plup_actv_indc", "rās"],
|
|
1549
|
+
["3s_plup_actv_indc", "rat"],
|
|
1550
|
+
["1p_plup_actv_indc", "rāmus"],
|
|
1551
|
+
["2p_plup_actv_indc", "rātis"],
|
|
1552
|
+
["3p_plup_actv_indc", "rant"],
|
|
1553
|
+
// future perfect actives
|
|
1554
|
+
["1s_futp_actv_indc", "rō"],
|
|
1555
|
+
["2s_futp_actv_indc", "ris"],
|
|
1556
|
+
["3s_futp_actv_indc", "rit"],
|
|
1557
|
+
["1p_futp_actv_indc", "rimus"],
|
|
1558
|
+
["2p_futp_actv_indc", "ritis"],
|
|
1559
|
+
["3p_futp_actv_indc", "rint"],
|
|
1560
|
+
// perfect subjunctives
|
|
1561
|
+
["1s_perf_actv_subj", "rim"],
|
|
1562
|
+
["2s_perf_actv_subj", "rīs"],
|
|
1563
|
+
["3s_perf_actv_subj", "rit"],
|
|
1564
|
+
["1p_perf_actv_subj", "rīmus"],
|
|
1565
|
+
["2p_perf_actv_subj", "rītis"],
|
|
1566
|
+
["3p_perf_actv_subj", "rint"],
|
|
1567
|
+
// pluperfect subjunctive
|
|
1432
1568
|
["1s_plup_actv_subj", "ssem"],
|
|
1433
1569
|
["2s_plup_actv_subj", "ssēs"],
|
|
1434
1570
|
["3s_plup_actv_subj", "sset"],
|
|
@@ -1439,10 +1575,12 @@ class LaVerb {
|
|
|
1439
1575
|
const add_sync_perf = (form, suff_sync) => {
|
|
1440
1576
|
const formval = (0, VerbForm_1.getVerbForm)(data.forms, form) || [];
|
|
1441
1577
|
for (const fv of formval) {
|
|
1442
|
-
const regex1 = new RegExp(`
|
|
1443
|
-
const regex2 = new RegExp(`
|
|
1444
|
-
|
|
1445
|
-
|
|
1578
|
+
const regex1 = new RegExp(`v[ieē]${suff_sync}$`);
|
|
1579
|
+
const regex2 = new RegExp(`vē${suff_sync}$`);
|
|
1580
|
+
const regex3 = new RegExp(`[aeiouyāēīōūȳăĕĭŏŭ]u[ieē]${suff_sync}$`);
|
|
1581
|
+
const regex4 = new RegExp(`[aeiouyāēīōūȳăĕĭŏŭ]uē${suff_sync}$`);
|
|
1582
|
+
if (fv.match(regex1) || fv.match(regex2) || fv.match(regex3) || fv.match(regex4)) {
|
|
1583
|
+
const rep = fv.substring(0, fv.length - suff_sync.length - 2) + suff_sync;
|
|
1446
1584
|
this.insert_if_not(formval, rep);
|
|
1447
1585
|
}
|
|
1448
1586
|
}
|
|
@@ -1482,12 +1620,13 @@ class LaVerb {
|
|
|
1482
1620
|
return allEmpty;
|
|
1483
1621
|
}
|
|
1484
1622
|
make_perfect_passive(data) {
|
|
1485
|
-
|
|
1623
|
+
var _a;
|
|
1624
|
+
let ppp = (0, VerbForm_1.getVerbForm)(data.forms, "perf_pasv_ptc") || [];
|
|
1486
1625
|
const ppplinks = [];
|
|
1487
1626
|
for (const pppform of ppp) {
|
|
1488
1627
|
ppplinks.push(`[[${pppform}]]`);
|
|
1489
1628
|
}
|
|
1490
|
-
|
|
1629
|
+
let ppplink = ppplinks.join(" or ");
|
|
1491
1630
|
const sumlink = "[[sum]]";
|
|
1492
1631
|
const text_for_slot = new Map([
|
|
1493
1632
|
["perf_pasv_indc", "present active indicative"],
|
|
@@ -1515,6 +1654,14 @@ class LaVerb {
|
|
|
1515
1654
|
(passiveSuffix || "");
|
|
1516
1655
|
(0, VerbForm_1.setVerbForm)(data.forms, slot, [entry]);
|
|
1517
1656
|
}
|
|
1657
|
+
ppp = (0, VerbForm_1.getVerbForm)(data.forms, "1s_pres_actv_indc");
|
|
1658
|
+
if (ppp && ppp[0] == "faciō") {
|
|
1659
|
+
ppplink = "[[factum]]";
|
|
1660
|
+
for (const [slot, text] of text_for_slot) {
|
|
1661
|
+
const ts = (_a = (0, VerbForm_1.getVerbForm)(data.forms, slot)) !== null && _a !== void 0 ? _a : [];
|
|
1662
|
+
(0, VerbForm_1.setVerbForm)(data.forms, slot, [ts[0] + " or " + ppplink + " + " + text + " of " + sumlink]);
|
|
1663
|
+
}
|
|
1664
|
+
}
|
|
1518
1665
|
}
|
|
1519
1666
|
override(data, args) {
|
|
1520
1667
|
for (const slot of this.iter_slots(true, false)) {
|
|
@@ -1590,6 +1737,13 @@ class LaVerb {
|
|
|
1590
1737
|
}
|
|
1591
1738
|
}
|
|
1592
1739
|
}
|
|
1740
|
+
notes_override(data, args) {
|
|
1741
|
+
if (args.get("notes") == "-") {
|
|
1742
|
+
for (const key of data.footnotes.keys()) {
|
|
1743
|
+
data.footnotes.set(key, [""]);
|
|
1744
|
+
}
|
|
1745
|
+
}
|
|
1746
|
+
}
|
|
1593
1747
|
set_linked_forms(data, typeinfo) {
|
|
1594
1748
|
for (const slot of LaVerb.potential_lemma_slots) {
|
|
1595
1749
|
const linked_forms = [];
|
|
@@ -1697,6 +1851,16 @@ class LaVerb {
|
|
|
1697
1851
|
this.make_perf(data, [prefix + "dīx"]);
|
|
1698
1852
|
this.make_supine(data, typeinfo, [prefix + "dict"]);
|
|
1699
1853
|
this.add_form(data, "2s_pres_actv_impr", prefix, "dīc", 1);
|
|
1854
|
+
if (!this.options.suppressArchaic) {
|
|
1855
|
+
this.add_form(data, "2s_pres_actv_impr", prefix, "dīc", 1);
|
|
1856
|
+
data.footnotes.set("2s_pres_actv_impr", ["Archaic."]);
|
|
1857
|
+
if (prefix == "") {
|
|
1858
|
+
this.add_form(data, "1s_futr_actv_indc", prefix, "dīcēbō", 2);
|
|
1859
|
+
this.add_form(data, "3s_futr_actv_indc", prefix, "dīcēbit", 2);
|
|
1860
|
+
data.footnotes.set("1s_futr_actv_indc", ["Archaic."]);
|
|
1861
|
+
data.footnotes.set("3s_futr_actv_indc", ["Archaic."]);
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1700
1864
|
});
|
|
1701
1865
|
this.irreg_conjugations.set("do", (args, data, typeinfo) => {
|
|
1702
1866
|
data.categories.push("Latin first conjugation verbs");
|
|
@@ -1832,7 +1996,7 @@ class LaVerb {
|
|
|
1832
1996
|
prefix_supine = prefix_supine || prefix_pres;
|
|
1833
1997
|
this.make_pres_3rd(data, typeinfo, prefix_pres + "fer");
|
|
1834
1998
|
if (!prefix_perf) {
|
|
1835
|
-
if (this.options.
|
|
1999
|
+
if (this.options.suppressArchaic) {
|
|
1836
2000
|
// added by @fpw
|
|
1837
2001
|
this.make_perf(data, ["tul"]);
|
|
1838
2002
|
}
|
|
@@ -1998,6 +2162,7 @@ class LaVerb {
|
|
|
1998
2162
|
});
|
|
1999
2163
|
this.irreg_conjugations.set("coepi", (args, data, typeinfo) => {
|
|
2000
2164
|
data.categories.push("Latin third conjugation verbs");
|
|
2165
|
+
data.categories.push("Latin verbs with missing present stem");
|
|
2001
2166
|
data.categories.push("Latin defective verbs");
|
|
2002
2167
|
const prefix = typeinfo.prefix;
|
|
2003
2168
|
this.make_perf(data, [prefix + "coep"]);
|
|
@@ -2039,6 +2204,10 @@ class LaVerb {
|
|
|
2039
2204
|
(0, VerbForm_1.setVerbForm)(data.forms, "1p_pres_actv_subj", [prefix_s + "sīmus"]);
|
|
2040
2205
|
(0, VerbForm_1.setVerbForm)(data.forms, "2p_pres_actv_subj", [prefix_s + "sītis"]);
|
|
2041
2206
|
(0, VerbForm_1.setVerbForm)(data.forms, "3p_pres_actv_subj", [prefix_s + "sint"]);
|
|
2207
|
+
if (prefix_s == "ad" && !this.options.suppressArchaic) {
|
|
2208
|
+
this.add_form(data, "3p_pres_actv_subj", "", "adessint", 2);
|
|
2209
|
+
data.footnotes.set("3p_pres_actv_subj", ["Archaic."]);
|
|
2210
|
+
}
|
|
2042
2211
|
(0, VerbForm_1.setVerbForm)(data.forms, "1s_impf_actv_subj", [prefix_e + "essem", prefix_f + "forem"]);
|
|
2043
2212
|
(0, VerbForm_1.setVerbForm)(data.forms, "2s_impf_actv_subj", [prefix_e + "essēs", prefix_f + "forēs"]);
|
|
2044
2213
|
(0, VerbForm_1.setVerbForm)(data.forms, "3s_impf_actv_subj", [prefix_e + "esset", prefix_f + "foret"]);
|