@fpw/en-wiktionary-la-modules 0.0.16 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/LaEngine.d.ts +7 -8
  2. package/dist/LaEngine.js +1 -1
  3. package/dist/LaEngine.js.map +1 -1
  4. package/dist/modules/conjugation/LaVerb.d.ts +5 -3
  5. package/dist/modules/conjugation/LaVerb.js +207 -31
  6. package/dist/modules/conjugation/LaVerb.js.map +1 -1
  7. package/dist/modules/conjugation/VerbType.d.ts +5 -1
  8. package/dist/modules/conjugation/VerbType.js +4 -0
  9. package/dist/modules/conjugation/VerbType.js.map +1 -1
  10. package/dist/modules/declination/LaAdjData.d.ts +1 -1
  11. package/dist/modules/declination/LaAdjData.js +45 -24
  12. package/dist/modules/declination/LaAdjData.js.map +1 -1
  13. package/dist/modules/declination/LaNominal.d.ts +6 -3
  14. package/dist/modules/declination/LaNominal.js +190 -168
  15. package/dist/modules/declination/LaNominal.js.map +1 -1
  16. package/dist/modules/declination/LaNounData.js +65 -64
  17. package/dist/modules/declination/LaNounData.js.map +1 -1
  18. package/dist/modules/declination/LaPersonalPronoun.d.ts +7 -29
  19. package/dist/modules/declination/LaPersonalPronoun.js +73 -56
  20. package/dist/modules/declination/LaPersonalPronoun.js.map +1 -1
  21. package/dist/modules/declination/NominalType.d.ts +116 -0
  22. package/dist/modules/declination/NominalType.js +142 -0
  23. package/dist/modules/declination/NominalType.js.map +1 -0
  24. package/dist/modules/headword/HeadWord.d.ts +3 -3
  25. package/dist/modules/headword/HeadwordParser.d.ts +2 -2
  26. package/dist/modules/headword/HeadwordParser.js.map +1 -1
  27. package/package.json +8 -9
  28. package/src/LaEngine.ts +8 -9
  29. package/src/modules/conjugation/LaVerb.ts +213 -36
  30. package/src/modules/conjugation/VerbType.ts +4 -0
  31. package/src/modules/declination/LaAdjData.ts +47 -24
  32. package/src/modules/declination/LaNominal.ts +216 -184
  33. package/src/modules/declination/LaNounData.ts +67 -66
  34. package/src/modules/declination/LaPersonalPronoun.ts +76 -63
  35. package/src/modules/declination/NominalType.ts +153 -0
  36. package/src/modules/headword/HeadWord.ts +3 -3
  37. package/src/modules/headword/HeadwordParser.ts +18 -18
@@ -6,7 +6,7 @@ exports.m_noun_decl = void 0;
6
6
  * It was converted from Lua to TypeScript by Folke Will <folko@solhost.org>.
7
7
  *
8
8
  * Original source: https://en.wiktionary.org/wiki/Module:la-noun/data
9
- * Based on version: https://en.wiktionary.org/w/index.php?title=Module:la-noun/data&oldid=63744261
9
+ * Based on version: https://en.wiktionary.org/w/index.php?title=Module:la-noun/data&oldid=67964055
10
10
  *
11
11
  * Lua idioms, function and variable names kept as in the original in order to easily
12
12
  * backport later changes to this implementation.
@@ -18,6 +18,7 @@ exports.m_noun_decl = void 0;
18
18
  const common_1 = require("../common");
19
19
  const LaNominal_1 = require("./LaNominal");
20
20
  const NominalForm_1 = require("./NominalForm");
21
+ const NominalType_1 = require("./NominalType");
21
22
  exports.m_noun_decl = new Map([
22
23
  ["1", (data, args) => {
23
24
  const stem = args[0];
@@ -33,29 +34,29 @@ exports.m_noun_decl = new Map([
33
34
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl", [stem + "ās"]);
34
35
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl", [stem + "īs"]);
35
36
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem + "ae"]);
36
- if (data.types.has("abus")) {
37
+ if (data.types.has(NominalType_1.NominalType.Abus)) {
37
38
  data.subtitles.push(["dative/ablative plural in ", "'-ābus'"]);
38
39
  (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl", [stem + "ābus"]);
39
40
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl", [stem + "ābus"]);
40
41
  }
41
- else if (data.types.has("not_abus")) {
42
+ else if (data.types.has(NominalType_1.NominalType.NotAbus)) {
42
43
  data.subtitles.push(["dative/ablative plural in ", "'-īs'"]);
43
44
  }
44
- if (data.types.has("am")) {
45
+ if (data.types.has(NominalType_1.NominalType.Am)) {
45
46
  data.subtitles.push(["nominative/vocative singular in ", "'-ām'"]);
46
47
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem + "ām"]);
47
48
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem + "ām"]);
48
49
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg", [stem + "ām"]);
49
50
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg", [stem + "ām", stem + "ā"]);
50
51
  }
51
- else if (data.types.has("Greek")) {
52
- if (data.types.has("Ma")) {
52
+ else if (data.types.has(NominalType_1.NominalType.Greek)) {
53
+ if (data.types.has(NominalType_1.NominalType.Ma)) {
53
54
  data.subtitles.push("masculine Greek-type with nominative singular in '-ās'");
54
55
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem + "ās"]);
55
56
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem + "ān"]);
56
57
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg", [stem + "ā"]);
57
58
  }
58
- else if (data.types.has("Me")) {
59
+ else if (data.types.has(NominalType_1.NominalType.Me)) {
59
60
  data.subtitles.push("masculine Greek-type with nominative singular in '-ēs'");
60
61
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem + "ēs"]);
61
62
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem + "ēn"]);
@@ -71,10 +72,10 @@ exports.m_noun_decl = new Map([
71
72
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg", [stem + "ē"]);
72
73
  }
73
74
  }
74
- else if (data.types.has("not_Greek")) {
75
+ else if (data.types.has(NominalType_1.NominalType.NotGreek)) {
75
76
  data.subtitles.push("non-Greek-type");
76
77
  }
77
- else if (data.types.has("not_am")) {
78
+ else if (data.types.has(NominalType_1.NominalType.NotAm)) {
78
79
  data.subtitles.push(["nominative/vocative singular in ", "'-a'"]);
79
80
  }
80
81
  if (data.loc) {
@@ -97,14 +98,14 @@ exports.m_noun_decl = new Map([
97
98
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl", [stem1 + "ōs"]);
98
99
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl", [stem1 + "īs"]);
99
100
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem1 + "ī"]);
100
- if (data.types.has("N")) {
101
+ if (data.types.has(NominalType_1.NominalType.Neuter)) {
101
102
  data.subtitles.push("neuter");
102
103
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "um"]);
103
104
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg", [stem1 + "um"]);
104
105
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl", [stem1 + "a"]);
105
106
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl", [stem1 + "a"]);
106
107
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem1 + "a"]);
107
- if (data.types.has("ium")) {
108
+ if (data.types.has(NominalType_1.NominalType.Ium)) {
108
109
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "ium"]);
109
110
  if (!data.declOpts.suppressOldGenitive) {
110
111
  (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg", [stem1 + "iī", stem1 + "ī"]);
@@ -126,7 +127,7 @@ exports.m_noun_decl = new Map([
126
127
  data.notes.set("gen_sg2", "Found in older Latin (until the Augustan Age).");
127
128
  }
128
129
  }
129
- else if (data.types.has("a")) {
130
+ else if (data.types.has(NominalType_1.NominalType.a)) {
130
131
  data.subtitles.push("nominative/accusative/vocative plural in '-a'");
131
132
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "us"]);
132
133
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem1 + "us"]);
@@ -135,13 +136,13 @@ exports.m_noun_decl = new Map([
135
136
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl", [stem1 + "a"]);
136
137
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem1 + "a"]);
137
138
  }
138
- else if (data.types.has("vom")) {
139
+ else if (data.types.has(NominalType_1.NominalType.Vom)) {
139
140
  data.subtitles.push("nominative singular in '-om' after 'v'");
140
141
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "om"]);
141
142
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem1 + "om"]);
142
143
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg", [stem1 + "om"]);
143
144
  }
144
- else if (data.types.has("Greek") && data.types.has("us")) {
145
+ else if (data.types.has(NominalType_1.NominalType.Greek) && data.types.has(NominalType_1.NominalType.Us)) {
145
146
  data.subtitles.push("Greek-type");
146
147
  data.subtitles.push("nominative/accusative/vocative in '-os'");
147
148
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "os"]);
@@ -152,13 +153,13 @@ exports.m_noun_decl = new Map([
152
153
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl", [stem1 + "ē"]);
153
154
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem1 + "ē"]);
154
155
  }
155
- else if (data.types.has("Greek")) {
156
+ else if (data.types.has(NominalType_1.NominalType.Greek)) {
156
157
  data.subtitles.push("Greek-type");
157
158
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "on"]);
158
159
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem1 + "on"]);
159
160
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg", [stem1 + "on"]);
160
161
  }
161
- else if (data.types.has("us")) {
162
+ else if (data.types.has(NominalType_1.NominalType.Us)) {
162
163
  data.subtitles.push("nominative/accusative/vocative in '-us'");
163
164
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "us"]);
164
165
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem1 + "us"]);
@@ -167,11 +168,11 @@ exports.m_noun_decl = new Map([
167
168
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl", [stem1 + "ōs"]);
168
169
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem1 + "ī"]);
169
170
  }
170
- else if (data.types.has("not_Greek") || data.types.has("not_us")) {
171
+ else if (data.types.has(NominalType_1.NominalType.NotGreek) || data.types.has(NominalType_1.NominalType.NotUs)) {
171
172
  data.subtitles.push("nominative/accusative/vocative in '-um'");
172
173
  }
173
174
  }
174
- else if (data.types.has("er")) {
175
+ else if (data.types.has(NominalType_1.NominalType.Er)) {
175
176
  if (stem1.match(/[aiouy]r$/)) {
176
177
  data.subtitles.push("nominative singular in '-r'");
177
178
  }
@@ -191,7 +192,7 @@ exports.m_noun_decl = new Map([
191
192
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl", [stem2 + "īs"]);
192
193
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem2 + "ī"]);
193
194
  }
194
- else if (data.types.has("ius")) {
195
+ else if (data.types.has(NominalType_1.NominalType.Ius)) {
195
196
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "ius"]);
196
197
  if (!data.declOpts.suppressOldGenitive) {
197
198
  (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg", [stem1 + "iī", stem1 + "ī"]);
@@ -202,7 +203,7 @@ exports.m_noun_decl = new Map([
202
203
  (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg", [stem1 + "iō"]);
203
204
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem1 + "ium"]);
204
205
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg", [stem1 + "iō"]);
205
- if (data.types.has("voci")) {
206
+ if (data.types.has(NominalType_1.NominalType.VocI)) {
206
207
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg", [stem1 + "ī"]);
207
208
  }
208
209
  else {
@@ -218,34 +219,34 @@ exports.m_noun_decl = new Map([
218
219
  data.notes.set("gen_sg2", "Found in older Latin (until the Augustan Age).");
219
220
  }
220
221
  }
221
- else if (data.types.has("vos")) {
222
+ else if (data.types.has(NominalType_1.NominalType.Vos)) {
222
223
  data.subtitles.push("nominative singular in '-os' after 'v'");
223
224
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "os"]);
224
225
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem1 + "om"]);
225
226
  }
226
- else if (data.types.has("Greek")) {
227
+ else if (data.types.has(NominalType_1.NominalType.Greek)) {
227
228
  data.subtitles.push("Greek-type");
228
229
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "os"]);
229
230
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem1 + "on"]);
230
231
  }
231
- else if (data.types.has("not_Greek")) {
232
+ else if (data.types.has(NominalType_1.NominalType.NotGreek)) {
232
233
  data.subtitles.push("non-Greek-type");
233
234
  }
234
- if (data.types.has("genplum")) {
235
+ if (data.types.has(NominalType_1.NominalType.GenPluM)) {
235
236
  data.subtitles.push(["contracted", " genitive plural"]);
236
237
  data.notes.set("gen_pl2", "Contraction found in poetry.");
237
- if (data.types.has("ius") || data.types.has("ium")) {
238
+ if (data.types.has(NominalType_1.NominalType.Ius) || data.types.has(NominalType_1.NominalType.Ium)) {
238
239
  (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl", [stem2 + "iōrum", stem2 + "ium"]);
239
240
  }
240
241
  else {
241
242
  (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl", [stem2 + "ōrum", stem2 + "um"]);
242
243
  }
243
244
  }
244
- else if (data.types.has("not_genplum")) {
245
+ else if (data.types.has(NominalType_1.NominalType.NotGenPluM)) {
245
246
  data.subtitles.push(["normal", " genitive plural"]);
246
247
  }
247
248
  if (data.loc) {
248
- if (data.types.has("ius") || data.types.has("ium")) {
249
+ if (data.types.has(NominalType_1.NominalType.Ius) || data.types.has(NominalType_1.NominalType.Ium)) {
249
250
  (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg", [stem2 + "iī"]);
250
251
  (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl", [stem2 + "iīs"]);
251
252
  }
@@ -287,7 +288,7 @@ exports.m_noun_decl = new Map([
287
288
  }
288
289
  }
289
290
  for (const [acc_sg_subtype, [endings, title]] of acc_sg_i_stem_subtypes) {
290
- if (data.types.has("not_" + acc_sg_subtype)) {
291
+ if ((0, NominalType_1.hasNominalType)(data.types, "not_" + acc_sg_subtype)) {
291
292
  not_acc_sg_i_stem_subtype = true;
292
293
  break;
293
294
  }
@@ -301,14 +302,14 @@ exports.m_noun_decl = new Map([
301
302
  }
302
303
  }
303
304
  for (const [abl_sg_subtype, [endings, title]] of abl_sg_i_stem_subtypes) {
304
- if (data.types.has("not_" + abl_sg_subtype)) {
305
+ if ((0, NominalType_1.hasNominalType)(data.types, "not_" + abl_sg_subtype)) {
305
306
  not_abl_sg_i_stem_subtype = true;
306
307
  break;
307
308
  }
308
309
  }
309
- if (data.types.has("Greek")) {
310
+ if (data.types.has(NominalType_1.NominalType.Greek)) {
310
311
  data.subtitles.push("Greek-type");
311
- if (data.types.has("er")) {
312
+ if (data.types.has(NominalType_1.NominalType.Er)) {
312
313
  data.subtitles.push("variant with nominative singular in '-ēr'");
313
314
  stem1 = extract_stem(stem1, "ēr");
314
315
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "ēr"]);
@@ -324,7 +325,7 @@ exports.m_noun_decl = new Map([
324
325
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl", [stem1 + "eribus"]);
325
326
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem1 + "erēs"]);
326
327
  }
327
- else if (data.types.has("on")) {
328
+ else if (data.types.has(NominalType_1.NominalType.On)) {
328
329
  data.subtitles.push("variant with nominative singular in '-ōn'");
329
330
  stem1 = extract_stem(stem1, "ōn");
330
331
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "ōn"]);
@@ -340,7 +341,7 @@ exports.m_noun_decl = new Map([
340
341
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl", [stem1 + "ontibus"]);
341
342
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem1 + "ontēs"]);
342
343
  }
343
- else if (data.types.has("I")) {
344
+ else if (data.types.has(NominalType_1.NominalType.I)) {
344
345
  data.subtitles.push("i-stem");
345
346
  (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg", [stem2 + "is", stem2 + "eōs", stem2 + "ios"]);
346
347
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem2 + "im", stem2 + "in", stem2 + "em"]);
@@ -352,7 +353,7 @@ exports.m_noun_decl = new Map([
352
353
  (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl", [stem2 + "ium", stem2 + "eōn"]);
353
354
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl", [stem2 + "ēs", stem2 + "eis"]);
354
355
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem2 + "ēs", stem2 + "eis"]);
355
- if (data.types.has("poetic_esi")) {
356
+ if (data.types.has(NominalType_1.NominalType.poetic_esi)) {
356
357
  (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl", [stem2 + "ibus", stem2 + "esi"]);
357
358
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl", [stem2 + "ibus", stem2 + "esi"]);
358
359
  data.notes.set("dat_pl2", "Primarily in poetry.");
@@ -377,10 +378,10 @@ exports.m_noun_decl = new Map([
377
378
  }
378
379
  }
379
380
  }
380
- else if (data.types.has("not_Greek")) {
381
+ else if (data.types.has(NominalType_1.NominalType.NotGreek)) {
381
382
  data.subtitles.push("non-Greek-type");
382
383
  }
383
- if (data.types.has("polis")) {
384
+ if (data.types.has(NominalType_1.NominalType.Polis)) {
384
385
  stem1 = extract_stem(stem1, "polis");
385
386
  data.subtitles.push("i-stem, partially Greek-type");
386
387
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem1 + "polis"]);
@@ -390,14 +391,14 @@ exports.m_noun_decl = new Map([
390
391
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg", [stem1 + "polī"]);
391
392
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg", [stem1 + "polis", stem1 + "polī"]);
392
393
  }
393
- else if (data.types.has("not_polis")) {
394
+ else if (data.types.has(NominalType_1.NominalType.NotPolis)) {
394
395
  data.subtitles.push(non_i_stem_type());
395
396
  }
396
- if (data.types.has("N")) {
397
+ if (data.types.has(NominalType_1.NominalType.Neuter)) {
397
398
  data.subtitles.push("neuter");
398
399
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem1]);
399
- if (data.types.has("I")) {
400
- if (data.types.has("pure")) {
400
+ if (data.types.has(NominalType_1.NominalType.I)) {
401
+ if (data.types.has(NominalType_1.NominalType.Pure)) {
401
402
  data.subtitles.push("“pure” i-stem");
402
403
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg", [stem2 + "ī"]);
403
404
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl", [stem2 + "ia"]);
@@ -420,8 +421,8 @@ exports.m_noun_decl = new Map([
420
421
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem2 + "a"]);
421
422
  }
422
423
  }
423
- else if (data.types.has("I") || acc_sg_i_stem_subtype || abl_sg_i_stem_subtype) {
424
- if (data.types.has("not_N")) {
424
+ else if (data.types.has(NominalType_1.NominalType.I) || acc_sg_i_stem_subtype || abl_sg_i_stem_subtype) {
425
+ if (data.types.has(NominalType_1.NominalType.NotNeuter)) {
425
426
  data.subtitles.push("non-neuter i-stem");
426
427
  }
427
428
  else {
@@ -461,13 +462,13 @@ exports.m_noun_decl = new Map([
461
462
  }
462
463
  }
463
464
  }
464
- else if (data.types.has("not_N") && data.types.has("not_I")) {
465
+ else if (data.types.has(NominalType_1.NominalType.Neuter) && data.types.has(NominalType_1.NominalType.NotI)) {
465
466
  data.subtitles.push("non-neuter " + non_i_stem_type());
466
467
  }
467
- else if (data.types.has("not_N")) {
468
+ else if (data.types.has(NominalType_1.NominalType.NotNeuter)) {
468
469
  data.subtitles.push("non-neuter");
469
470
  }
470
- else if (data.types.has("not_I")) {
471
+ else if (data.types.has(NominalType_1.NominalType.NotI)) {
471
472
  data.subtitles.push(non_i_stem_type());
472
473
  }
473
474
  if (data.loc) {
@@ -494,19 +495,19 @@ exports.m_noun_decl = new Map([
494
495
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl", [stem + "ūs"]);
495
496
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl", [stem + "ibus"]);
496
497
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem + "ūs"]);
497
- if (data.types.has("echo")) {
498
+ if (data.types.has(NominalType_1.NominalType.Echo)) {
498
499
  data.subtitles.push("nominative/vocative singular in '-ō'");
499
500
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem + "ō"]);
500
501
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg", [stem + "ō"]);
501
502
  }
502
- else if (data.types.has("argo")) {
503
+ else if (data.types.has(NominalType_1.NominalType.argo)) {
503
504
  data.subtitles.push("nominative/accusative/vocative singular in '-ō', ablative singular in '-uī'");
504
505
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem + "ō"]);
505
506
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg", [stem + "ō"]);
506
507
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg", [stem + "uī"]);
507
508
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg", [stem + "ō"]);
508
509
  }
509
- else if (data.types.has("Callisto")) {
510
+ else if (data.types.has(NominalType_1.NominalType.Callisto)) {
510
511
  data.subtitles.push("all cases except the genitive singular in '-ō'");
511
512
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem + "ō"]);
512
513
  (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg", [stem + "ō"]);
@@ -514,7 +515,7 @@ exports.m_noun_decl = new Map([
514
515
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg", [stem + "ō"]);
515
516
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg", [stem + "ō"]);
516
517
  }
517
- if (data.types.has("N")) {
518
+ if (data.types.has(NominalType_1.NominalType.Neuter)) {
518
519
  data.subtitles.push("neuter");
519
520
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem + "ū"]);
520
521
  (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg", [stem + "ū"]);
@@ -524,12 +525,12 @@ exports.m_noun_decl = new Map([
524
525
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl", [stem + "ua"]);
525
526
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem + "ua"]);
526
527
  }
527
- if (data.types.has("ubus")) {
528
+ if (data.types.has(NominalType_1.NominalType.Ubus)) {
528
529
  data.subtitles.push("dative/ablative plural in '-ubus'");
529
530
  (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl", [stem + "ubus"]);
530
531
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl", [stem + "ubus"]);
531
532
  }
532
- else if (data.types.has("not_ubus")) {
533
+ else if (data.types.has(NominalType_1.NominalType.NotUbus)) {
533
534
  data.subtitles.push("'-ibus'");
534
535
  }
535
536
  if (data.loc) {
@@ -539,7 +540,7 @@ exports.m_noun_decl = new Map([
539
540
  }],
540
541
  ["5", (data, args) => {
541
542
  let stem = args[0];
542
- if (data.types.has("i")) {
543
+ if (data.types.has(NominalType_1.NominalType.i)) {
543
544
  stem = stem + "i";
544
545
  }
545
546
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", [stem + "ēs"]);
@@ -554,7 +555,7 @@ exports.m_noun_decl = new Map([
554
555
  (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl", [stem + "ēs"]);
555
556
  (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl", [stem + "ēbus"]);
556
557
  (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl", [stem + "ēs"]);
557
- if (data.types.has("i")) {
558
+ if (data.types.has(NominalType_1.NominalType.i)) {
558
559
  (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg", [stem + "ēī"]);
559
560
  (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg", [stem + "ēī"]);
560
561
  }
@@ -583,7 +584,7 @@ exports.m_noun_decl = new Map([
583
584
  }
584
585
  }],
585
586
  ["indecl", (data, args) => {
586
- data.title = "Not declined; used only in the nominative and accusative singular.";
587
+ data.title = "Not declined; used only in the nominative and accusative singular";
587
588
  const stem = args[0];
588
589
  (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg", ["-"]);
589
590
  (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg", ["-"]);
@@ -820,18 +821,18 @@ exports.m_noun_decl = new Map([
820
821
  }],
821
822
  ]);
822
823
  const acc_sg_i_stem_subtypes = new Map([
823
- ["acc_im", [["im"], "accusative singular in '-im'"]],
824
- ["acc_im_in", [["im", "in"], "accusative singular in '-im' or '-in'"]],
825
- ["acc_im_in_em", [["im", "in", "em"], "accusative singular in '-im', '-in' or '-em'"]],
826
- ["acc_im_em", [["im", "em"], "accusative singular in '-im' or '-em'"]],
827
- ["acc_im_occ_em", [["im", "em"], "accusative singular in '-im' or occasionally '-em'"]],
828
- ["acc_em_im", [["em", "im"], "accusative singular in '-em' or '-im'"]],
824
+ [NominalType_1.NominalType.AccIm, [["im"], "accusative singular in '-im'"]],
825
+ [NominalType_1.NominalType.AccImIn, [["im", "in"], "accusative singular in '-im' or '-in'"]],
826
+ [NominalType_1.NominalType.AccImInEm, [["im", "in", "em"], "accusative singular in '-im', '-in' or '-em'"]],
827
+ [NominalType_1.NominalType.AccImEm, [["im", "em"], "accusative singular in '-im' or '-em'"]],
828
+ [NominalType_1.NominalType.AccImOccEm, [["im", "em"], "accusative singular in '-im' or occasionally '-em'"]],
829
+ [NominalType_1.NominalType.AccEmIm, [["em", "im"], "accusative singular in '-em' or '-im'"]],
829
830
  ]);
830
831
  const abl_sg_i_stem_subtypes = new Map([
831
- ["abl_i", [["ī"], "ablative singular in '-ī'"]],
832
- ["abl_i_e", [["ī", "e"], "ablative singular in '-ī' or '-e'"]],
833
- ["abl_e_i", [["e", "ī"], "ablative singular in '-e' or '-ī'"]],
834
- ["abl_e_occ_i", [["e", "ī"], "ablative singular in '-e' or occasionally '-ī'"]],
832
+ [NominalType_1.NominalType.AblI, [["ī"], "ablative singular in '-ī'"]],
833
+ [NominalType_1.NominalType.AblIE, [["ī", "e"], "ablative singular in '-ī' or '-e'"]],
834
+ [NominalType_1.NominalType.AblEI, [["e", "ī"], "ablative singular in '-e' or '-ī'"]],
835
+ [NominalType_1.NominalType.AblEOccI, [["e", "ī"], "ablative singular in '-e' or occasionally '-ī'"]],
835
836
  ]);
836
837
  function extract_stem(form, ending) {
837
838
  const base = form.match(new RegExp(`^(.*)${ending}$`));