@fpw/en-wiktionary-la-modules 0.2.1 → 0.3.1

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 (63) hide show
  1. package/LICENSE +75 -75
  2. package/README.md +19 -15
  3. package/dist/LaEngine.d.ts +23 -23
  4. package/dist/LaEngine.js +64 -66
  5. package/dist/index.d.ts +12 -11
  6. package/dist/index.js +12 -28
  7. package/dist/modules/common.d.ts +67 -66
  8. package/dist/modules/common.js +145 -157
  9. package/dist/modules/conjugation/LaVerb.d.ts +118 -109
  10. package/dist/modules/conjugation/LaVerb.js +2861 -2295
  11. package/dist/modules/conjugation/VerbAffix.d.ts +18 -18
  12. package/dist/modules/conjugation/VerbAffix.js +19 -23
  13. package/dist/modules/conjugation/VerbForm.d.ts +204 -182
  14. package/dist/modules/conjugation/VerbForm.js +215 -199
  15. package/dist/modules/conjugation/VerbType.d.ts +54 -40
  16. package/dist/modules/conjugation/VerbType.js +66 -58
  17. package/dist/modules/declination/LaAdjData.d.ts +16 -16
  18. package/dist/modules/declination/LaAdjData.js +1474 -908
  19. package/dist/modules/declination/LaNominal.d.ts +136 -130
  20. package/dist/modules/declination/LaNominal.js +1884 -1804
  21. package/dist/modules/declination/LaNounData.d.ts +16 -2
  22. package/dist/modules/declination/LaNounData.js +935 -855
  23. package/dist/modules/declination/LaPersonalPronoun.d.ts +12 -12
  24. package/dist/modules/declination/LaPersonalPronoun.js +80 -85
  25. package/dist/modules/declination/NominalForm.d.ts +85 -69
  26. package/dist/modules/declination/NominalForm.js +101 -91
  27. package/dist/modules/declination/NominalType.d.ts +191 -120
  28. package/dist/modules/declination/NominalType.js +211 -146
  29. package/dist/modules/headword/HeadWord.d.ts +107 -107
  30. package/dist/modules/headword/HeadWord.js +28 -32
  31. package/dist/modules/headword/HeadwordParser.d.ts +29 -29
  32. package/dist/modules/headword/HeadwordParser.js +456 -452
  33. package/package.json +23 -15
  34. package/dist/LaEngine.js.map +0 -1
  35. package/dist/index.js.map +0 -1
  36. package/dist/modules/common.js.map +0 -1
  37. package/dist/modules/conjugation/LaVerb.js.map +0 -1
  38. package/dist/modules/conjugation/VerbAffix.js.map +0 -1
  39. package/dist/modules/conjugation/VerbForm.js.map +0 -1
  40. package/dist/modules/conjugation/VerbType.js.map +0 -1
  41. package/dist/modules/declination/LaAdjData.js.map +0 -1
  42. package/dist/modules/declination/LaNominal.js.map +0 -1
  43. package/dist/modules/declination/LaNounData.js.map +0 -1
  44. package/dist/modules/declination/LaPersonalPronoun.js.map +0 -1
  45. package/dist/modules/declination/NominalForm.js.map +0 -1
  46. package/dist/modules/declination/NominalType.js.map +0 -1
  47. package/dist/modules/headword/HeadWord.js.map +0 -1
  48. package/dist/modules/headword/HeadwordParser.js.map +0 -1
  49. package/src/LaEngine.ts +0 -86
  50. package/src/index.ts +0 -16
  51. package/src/modules/common.ts +0 -164
  52. package/src/modules/conjugation/LaVerb.ts +0 -2669
  53. package/src/modules/conjugation/VerbAffix.ts +0 -18
  54. package/src/modules/conjugation/VerbForm.ts +0 -223
  55. package/src/modules/conjugation/VerbType.ts +0 -55
  56. package/src/modules/declination/LaAdjData.ts +0 -1036
  57. package/src/modules/declination/LaNominal.ts +0 -2025
  58. package/src/modules/declination/LaNounData.ts +0 -897
  59. package/src/modules/declination/LaPersonalPronoun.ts +0 -92
  60. package/src/modules/declination/NominalForm.ts +0 -89
  61. package/src/modules/declination/NominalType.ts +0 -157
  62. package/src/modules/headword/HeadWord.ts +0 -132
  63. package/src/modules/headword/HeadwordParser.ts +0 -515
@@ -1,908 +1,1474 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.m_adj_decl = void 0;
4
- /**
5
- * This is a complete re-implementation of Wiktionary's Module:la-adj/data, developed by Benwing2.
6
- * It was converted from Lua to TypeScript by Folke Will <folko@solhost.org>.
7
- *
8
- * Original source: https://en.wiktionary.org/wiki/Module:la-adj/data
9
- * Based on version: https://en.wiktionary.org/w/index.php?title=Module:la-adj/data&oldid=71117358
10
- *
11
- * Lua idioms, function and variable names kept as in the original in order to easily
12
- * backport later changes to this implementation.
13
- *
14
- * For that reason, it's suggested to add a type-aware wrapper around this class and leave
15
- * this code unchanged instead of improving the types and use of idioms in this class.
16
- *
17
- */
18
- const LaNominal_1 = require("./LaNominal");
19
- const NominalForm_1 = require("./NominalForm");
20
- const NominalType_1 = require("./NominalType");
21
- exports.m_adj_decl = new Map([
22
- ["0", (data, args) => {
23
- data.title = "indeclinable " + singularize(data.pos);
24
- const stem = args[0];
25
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", [stem]);
26
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", [stem]);
27
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", [stem]);
28
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", [stem]);
29
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", [stem]);
30
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", [stem]);
31
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", [stem]);
32
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", [stem]);
33
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [stem]);
34
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", [stem]);
35
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_m", [stem]);
36
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_m", [stem]);
37
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_m", [stem]);
38
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_m", [stem]);
39
- data.categories.push("Latin indeclinable " + data.pos);
40
- }],
41
- ["1&2", (data, args) => {
42
- const singpos = singularize(data.pos);
43
- if (data.gender == "F") {
44
- data.title = "first-declension " + singpos;
45
- }
46
- else if (data.gender) {
47
- data.title = "second-declension " + singpos;
48
- }
49
- else {
50
- data.title = "first/second-declension " + singpos;
51
- }
52
- let stem = args[0];
53
- let original;
54
- if (data.types.has(NominalType_1.NominalType.Er)) {
55
- if (stem.match(/er$/)) {
56
- data.subtitles.push("nominative masculine singular in '-er'");
57
- data.categories.push("Latin first and second declension " + data.pos + " with nominative masculine singular in -er");
58
- }
59
- else if (stem.match(/ur$/)) {
60
- data.subtitles.push("nominative masculine singular in '-ur'");
61
- data.categories.push("Latin first and second declension " + data.pos + " with nominative masculine singular in -ur");
62
- }
63
- else {
64
- throw Error(`Unrecognized '-r' stem (doesn't and in '-er' or '-ur'): ${stem}`);
65
- }
66
- original = stem;
67
- stem = args[1];
68
- }
69
- let us = "us";
70
- let a_sf = "a";
71
- let um = "um";
72
- let ae_gsf = "ae";
73
- let am = "am";
74
- let a_macron = "ā";
75
- if (data.types.has(NominalType_1.NominalType.GreekA) || data.types.has(NominalType_1.NominalType.GreekE)) {
76
- data.subtitles.push("Greek-type");
77
- data.categories.push("Latin first and second declension " + data.pos + " with Greek declension");
78
- if (data.types.has(NominalType_1.NominalType.GreekA)) {
79
- us = "os";
80
- um = "on";
81
- am = "ān";
82
- }
83
- else {
84
- us = "os",
85
- a_sf = "ē";
86
- um = "on";
87
- ae_gsf = "ēs";
88
- am = "ēn";
89
- a_macron = "ē";
90
- }
91
- }
92
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", [original || (stem + us)]);
93
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_f", [stem + a_sf]);
94
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", [stem + um]);
95
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", [stem + "ī"]);
96
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_f", [stem + "ae"]);
97
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", [stem + "a"]);
98
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", [stem + "ī"]);
99
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_f", [stem + ae_gsf]);
100
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", [stem + "ī"]);
101
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", [stem + "ōrum"]);
102
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_f", [stem + "ārum"]);
103
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", [stem + "ōrum"]);
104
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", [stem + "ō"]);
105
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_f", [stem + "ae"]);
106
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", [stem + "ō"]);
107
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", [stem + "īs"]);
108
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_f", [stem + "īs"]);
109
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", [stem + "īs"]);
110
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", [stem + um]);
111
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_f", [stem + am]);
112
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", [stem + um]);
113
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", [stem + "ōs"]);
114
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_f", [stem + "ās"]);
115
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", [stem + "a"]);
116
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [stem + "ō"]);
117
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_f", [stem + a_macron]);
118
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", [stem + "ō"]);
119
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", [stem + "īs"]);
120
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_f", [stem + "īs"]);
121
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", [stem + "īs"]);
122
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_m", [original || (stem + "e")]);
123
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_f", [stem + a_sf]);
124
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_n", [stem + um]);
125
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_m", [stem + "ī"]);
126
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_f", [stem + "ae"]);
127
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_n", [stem + "a"]);
128
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_m", [stem + "ī"]);
129
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_f", [stem + "ae"]);
130
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_n", [stem + "ī"]);
131
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_m", [stem + "īs"]);
132
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_f", [stem + "īs"]);
133
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_n", [stem + "īs"]);
134
- if (data.types.has(NominalType_1.NominalType.Ius)) {
135
- data.subtitles.push("pronominal");
136
- data.categories.push("Latin first and second declension " + data.pos + " with genitive singular in -ī̆us");
137
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", [stem + "ī̆us"]);
138
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_f", [stem + "ī̆us"]);
139
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", [stem + "ī̆us"]);
140
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", [stem + "ī"]);
141
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_f", [stem + "ī"]);
142
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", [stem + "ī"]);
143
- }
144
- else if (data.types.has(NominalType_1.NominalType.NotIus)) {
145
- data.subtitles.push("non-pronominal");
146
- }
147
- if (stem == "me") {
148
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_m", [""]);
149
- }
150
- if (data.types.has(NominalType_1.NominalType.Ic)) {
151
- data.subtitles.push("'hic'-type");
152
- let oc = "oc";
153
- let oc_macron = "ōc";
154
- if (stem == "ill") {
155
- oc = "uc";
156
- oc_macron = "ūc";
157
- }
158
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", [stem + "ic"]);
159
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_f", [stem + "aec"]);
160
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", [stem + oc]);
161
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", [stem + "aec"]);
162
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", [stem + "uius"]);
163
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_f", [stem + "uius"]);
164
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", [stem + "uius"]);
165
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", [stem + "uic"]);
166
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_f", [stem + "uic"]);
167
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", [stem + "uic"]);
168
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", [stem + "unc"]);
169
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_f", [stem + "anc"]);
170
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", [stem + oc]);
171
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", [stem + "aec"]);
172
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [stem + "ōc"]);
173
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_f", [stem + "āc"]);
174
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", [stem + oc_macron]);
175
- data.voc = false;
176
- }
177
- data.categories.push("Latin first and second declension " + data.pos);
178
- }],
179
- ["1-1", (data, args) => {
180
- data.title = "first-declension " + singularize(data.pos);
181
- data.subtitles.push("masculine and neuter forms identical to feminine forms");
182
- const stem = args[0];
183
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", [stem + "a"]);
184
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", [stem + "ae"]);
185
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", [stem + "a"]);
186
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", [stem + "ae"]);
187
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", [stem + "ārum"]);
188
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", [stem + "ae"]);
189
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", [stem + "īs"]);
190
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", [stem + "am"]);
191
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", [stem + "a"]);
192
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", [stem + "ās"]);
193
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", [stem + "a"]);
194
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [stem + "ā"]);
195
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", [stem + "īs"]);
196
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_m", [stem + "ae"]);
197
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_m", [stem + "īs"]);
198
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_m", [stem + "a"]);
199
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_m", [stem + "ae"]);
200
- data.categories.push("Latin first declension " + data.pos);
201
- }],
202
- ["2-2", (data, args) => {
203
- data.title = "second-declension " + singularize(data.pos);
204
- data.subtitles.push("feminine forms identical to masculine forms");
205
- const stem = args[0];
206
- let us = "us";
207
- let um = "um";
208
- let i_pl = "ī";
209
- if (data.types.has(NominalType_1.NominalType.greek)) {
210
- data.subtitles.push("Greek-type");
211
- data.categories.push("Latin second declension " + data.pos + " with Greek declension");
212
- us = "os";
213
- um = "on";
214
- i_pl = "oe";
215
- }
216
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", [stem + us]);
217
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", [stem + um]);
218
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", [stem + i_pl]);
219
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", [stem + "a"]);
220
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", [stem + "ī"]);
221
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", [stem + "ī"]);
222
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", [stem + "ōrum"]);
223
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", [stem + "ōrum"]);
224
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", [stem + "ō"]);
225
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", [stem + "ō"]);
226
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", [stem + "īs"]);
227
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", [stem + "īs"]);
228
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", [stem + um]);
229
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", [stem + um]);
230
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", [stem + "ōs"]);
231
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", [stem + "a"]);
232
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [stem + "ō"]);
233
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", [stem + "ō"]);
234
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", [stem + "īs"]);
235
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", [stem + "īs"]);
236
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_m", [stem + "ī"]);
237
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_n", [stem + "ī"]);
238
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_m", [stem + "īs"]);
239
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_n", [stem + "īs"]);
240
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_m", [stem + "e"]);
241
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_n", [stem + um]);
242
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_m", [stem + i_pl]);
243
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_n", [stem + "a"]);
244
- data.categories.push("Latin second declension " + data.pos);
245
- }],
246
- ["3-1", (data, args) => {
247
- const singpos = singularize(data.pos);
248
- if (data.gender) {
249
- data.title = "third-declension " + singpos;
250
- }
251
- else {
252
- data.title = "third-declension one-termination " + singpos;
253
- }
254
- const stem1 = args[0];
255
- const stem2 = args[1];
256
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", [stem1]);
257
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", [stem1]);
258
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", [stem2 + "ēs"]);
259
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", [stem2 + "ia"]);
260
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", [stem2 + "is"]);
261
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", [stem2 + "is"]);
262
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", [stem2 + "ium"]);
263
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", [stem2 + "ium"]);
264
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", [stem2 + "ī"]);
265
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", [stem2 + "ī"]);
266
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", [stem2 + "ibus"]);
267
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", [stem2 + "ibus"]);
268
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", [stem2 + "em"]);
269
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", [stem1]);
270
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", [stem2 + "ēs"]);
271
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", [stem2 + "ia"]);
272
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [stem2 + "ī"]);
273
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", [stem2 + "ī"]);
274
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", [stem2 + "ibus"]);
275
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", [stem2 + "ibus"]);
276
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_m", [stem2 + "ī"]);
277
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_n", [stem2 + "ī"]);
278
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_m", [stem2 + "ibus"]);
279
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_n", [stem2 + "ibus"]);
280
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_m", [stem1]);
281
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_n", [stem1]);
282
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_m", [stem2 + "ēs"]);
283
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_n", [stem2 + "ia"]);
284
- if (data.types.has(NominalType_1.NominalType.Par)) {
285
- data.subtitles.push("non-i-stem");
286
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", [stem2 + "a"]);
287
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", [stem2 + "um"]);
288
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", [stem2 + "um"]);
289
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [stem2 + "e"]);
290
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", [stem2 + "e"]);
291
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_m", [stem2 + "ī", stem2 + "e"]);
292
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_n", [stem2 + "ī", stem2 + "e"]);
293
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", [stem2 + "a"]);
294
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_n", [stem2 + "a"]);
295
- }
296
- else if (data.types.has(NominalType_1.NominalType.NotPar)) {
297
- data.subtitles.push("i-stem");
298
- }
299
- const es_base = stem1.match(/^(.*)ēs$/);
300
- if (es_base && es_base[1] == stem2) {
301
- if (data.types.has(NominalType_1.NominalType.greek)) {
302
- const note = "It is unknown if Classical Latin preserved (or would have preserved) the shortness of the original Greek short ending.";
303
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", [stem2 + "es", stem2 + "ēs"]);
304
- data.notes.set("nom_sg_n1", note);
305
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", [stem2 + "es", stem2 + "ēs"]);
306
- data.notes.set("acc_sg_n1", note);
307
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_m", [stem2 + "es", stem2 + "ēs"]);
308
- data.notes.set("voc_sg_m1", note);
309
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_n", [stem2 + "es", stem2 + "ēs"]);
310
- data.notes.set("voc_sg_n1", note);
311
- data.subtitles.push("Greek-type");
312
- }
313
- else if (data.types.has(NominalType_1.NominalType.Notgreek)) {
314
- data.subtitles.push("non-Greek-type");
315
- }
316
- }
317
- data.categories.push("Latin third declension " + data.pos);
318
- data.categories.push("Latin third declension " + data.pos + " of one termination");
319
- }],
320
- ["3-C", (data, args) => {
321
- const stem = args[0];
322
- data.types.add(NominalType_1.NominalType.Par);
323
- const d = exports.m_adj_decl.get("3-1");
324
- if (!d) {
325
- throw Error("Decl 3-1 not ready");
326
- }
327
- d(data, [stem + "or", stem + "ōr"]);
328
- data.title = "third-declension comparative " + singularize(data.pos);
329
- data.subtitles = [];
330
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", [stem + "us"]);
331
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", [stem + "us"]);
332
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_n", [stem + "us"]);
333
- }],
334
- ["3-P", (data, args) => {
335
- const stem1 = args[0];
336
- const stem2 = args[1];
337
- const d = exports.m_adj_decl.get("3-1");
338
- if (!d) {
339
- throw Error("Decl 3-1 not ready");
340
- }
341
- d(data, args);
342
- data.title = "third-declension participle";
343
- if (!data.declOpts.suppressAdjPtcForms) {
344
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [stem2 + "e", stem2 + "ī"]);
345
- data.notes.set("abl_sg_m2", "When used purely as an adjective.");
346
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", [stem2 + "e", stem2 + "ī"]);
347
- data.notes.set("abl_sg_n2", "When used purely as an adjective.");
348
- }
349
- else {
350
- if (data.types.has(NominalType_1.NominalType.Participle)) {
351
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [stem2 + "e"]);
352
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", [stem2 + "e"]);
353
- }
354
- else {
355
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [stem2 + "ī"]);
356
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", [stem2 + "ī"]);
357
- }
358
- }
359
- if (!data.declOpts.suppressNonNeuterIStemAccIs) {
360
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", [stem2 + "ēs", stem2 + "īs"]);
361
- }
362
- else {
363
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", [stem2 + "ēs"]);
364
- }
365
- }],
366
- ["3-2", (data, args) => {
367
- const singpos = singularize(data.pos);
368
- if (data.gender) {
369
- data.title = "third-declension " + singpos;
370
- }
371
- else {
372
- data.title = "third-declension two-termination " + singpos;
373
- }
374
- const stem = args[0];
375
- const stem2 = args[1];
376
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", [stem + "is"]);
377
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", [stem + "e"]);
378
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", [stem + "ēs"]);
379
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", [stem + "ia"]);
380
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", [stem + "is"]);
381
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", [stem + "is"]);
382
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", [stem + "ium"]);
383
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", [stem + "ium"]);
384
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", [stem + "ī"]);
385
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", [stem + "ī"]);
386
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", [stem + "ibus"]);
387
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", [stem + "ibus"]);
388
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", [stem + "em"]);
389
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", [stem + "e"]);
390
- if (!data.declOpts.suppressNonNeuterIStemAccIs) {
391
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", [stem + "ēs", stem + "īs"]);
392
- }
393
- else {
394
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", [stem + "ēs"]);
395
- }
396
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", [stem + "ia"]);
397
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [stem + "ī"]);
398
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", [stem + "ī"]);
399
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", [stem + "ibus"]);
400
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", [stem + "ibus"]);
401
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_m", [stem + "ī"]);
402
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_n", [stem + "ī"]);
403
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_m", [stem + "ibus"]);
404
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_n", [stem + "ibus"]);
405
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_m", [stem + "is"]);
406
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_n", [stem + "e"]);
407
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_m", [stem + "ēs"]);
408
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_n", [stem + "ia"]);
409
- data.categories.push("Latin third declension " + data.pos);
410
- data.categories.push("Latin third declension " + data.pos + " of two terminations");
411
- }],
412
- ["3-3", (data, args) => {
413
- const singpos = singularize(data.pos);
414
- if (data.gender) {
415
- data.title = "third-declension " + singpos;
416
- }
417
- else {
418
- data.title = "third-declension three-termination " + singpos;
419
- }
420
- const stem1 = args[0];
421
- const stem2 = args[1];
422
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", [stem1]);
423
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_f", [stem2 + "is"]);
424
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", [stem2 + "e"]);
425
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", [stem2 + "ēs"]);
426
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_f", [stem2 + "ēs"]);
427
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", [stem2 + "ia"]);
428
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", [stem2 + "is"]);
429
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_f", [stem2 + "is"]);
430
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", [stem2 + "is"]);
431
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", [stem2 + "ium"]);
432
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_f", [stem2 + "ium"]);
433
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", [stem2 + "ium"]);
434
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", [stem2 + "ī"]);
435
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_f", [stem2 + "ī"]);
436
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", [stem2 + "ī"]);
437
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", [stem2 + "ibus"]);
438
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_f", [stem2 + "ibus"]);
439
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", [stem2 + "ibus"]);
440
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", [stem2 + "em"]);
441
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_f", [stem2 + "em"]);
442
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", [stem2 + "e"]);
443
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", [stem2 + "ēs"]);
444
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_f", [stem2 + "ēs"]);
445
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", [stem2 + "ia"]);
446
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [stem2 + "ī"]);
447
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_f", [stem2 + "ī"]);
448
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", [stem2 + "ī"]);
449
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", [stem2 + "ibus"]);
450
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_f", [stem2 + "ibus"]);
451
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", [stem2 + "ibus"]);
452
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_m", [stem2 + "ī"]);
453
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_f", [stem2 + "ī"]);
454
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_sg_n", [stem2 + "ī"]);
455
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_m", [stem2 + "ibus"]);
456
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_f", [stem2 + "ibus"]);
457
- (0, NominalForm_1.setNominalForm)(data.forms, "loc_pl_n", [stem2 + "ibus"]);
458
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_m", [stem1]);
459
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_f", [stem2 + "is"]);
460
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_n", [stem2 + "e"]);
461
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_m", [stem2 + "ēs"]);
462
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_f", [stem2 + "ēs"]);
463
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_n", [stem2 + "ia"]);
464
- data.categories.push("Latin third declension " + data.pos);
465
- data.categories.push("Latin third declension " + data.pos + " of three terminations");
466
- }],
467
- ["irreg", (data, args) => {
468
- if (args[0] == "duo" || args[0] == "ambō") {
469
- const stem = args[0] == "duo" ? "du" : "amb";
470
- data.title = (stem == "amb") ? "irregular adjective" : "numeral";
471
- data.num = LaNominal_1.NumberTantum.Plural;
472
- const stem_with_o = stem + (stem == "amb" ? "ō" : "o");
473
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", [stem_with_o]);
474
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_f", [stem + "ae"]);
475
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", [stem_with_o]);
476
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", [stem + "ōrum"]);
477
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_f", [stem + "ārum"]);
478
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", [stem + "ōrum"]);
479
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", [stem + "ōbus"]);
480
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_f", [stem + "ābus"]);
481
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", [stem + "ōbus"]);
482
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", [stem + "ōs", stem_with_o]);
483
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_f", [stem + "ās"]);
484
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", [stem_with_o]);
485
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", [stem + "ōbus"]);
486
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_f", [stem + "ābus"]);
487
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", [stem + "ōbus"]);
488
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_m", [stem_with_o]);
489
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_f", [stem + "ae"]);
490
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_n", [stem_with_o]);
491
- if (stem == "du") {
492
- data.footnote = "Note: The genitive masculine and neuter can also be found in the contracted form 'duum' (also spelt 'duûm').";
493
- }
494
- }
495
- else if (args[0] == "mīlle") {
496
- data.title = "semi-indeclinable numeral";
497
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["mīlle"]);
498
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", ["mīlia", "mīllia"]);
499
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", ["mīlle"]);
500
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", ["mīlium", "mīllium"]);
501
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", ["mīlle"]);
502
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", ["mīlibus", "mīllibus"]);
503
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", ["mīlle"]);
504
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", ["mīlia", "mīllia"]);
505
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", ["mīlle"]);
506
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", ["mīlibus", "mīllibus"]);
507
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_m", ["mīlle"]);
508
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_m", ["mīlia", "mīllia"]);
509
- }
510
- else if (args[0] == "illic") {
511
- data.title = "demonstrative pronoun";
512
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["illic"]);
513
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_f", ["illaec"]);
514
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", ["illuc", "illoc"]);
515
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", ["illaec"]);
516
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", [""]);
517
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_f", [""]);
518
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", [""]);
519
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_f", [""]);
520
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", [""]);
521
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", [""]);
522
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_f", [""]);
523
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", [""]);
524
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", [""]);
525
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_f", [""]);
526
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", [""]);
527
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", [""]);
528
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_f", [""]);
529
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", [""]);
530
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", ["illunc"]);
531
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_f", ["illanc"]);
532
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", ["illuc", "illoc"]);
533
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", [""]);
534
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_f", [""]);
535
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", ["illaec"]);
536
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", ["illōc"]);
537
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_f", ["illāc"]);
538
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", ["illōc"]);
539
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", [""]);
540
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_f", [""]);
541
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", [""]);
542
- data.voc = false;
543
- }
544
- else if (args[0] == "hice") {
545
- data.title = "demonstrative pronoun";
546
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["hice"]);
547
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_f", ["haece"]);
548
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", ["hoce"]);
549
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", ["hīce"]);
550
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", ["haece"]);
551
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_f", ["haece"]);
552
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", ["huiusce"]);
553
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_f", ["huiusce"]);
554
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", ["huiusce"]);
555
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", ["hōrunce", "hōrumce"]);
556
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_f", ["hārunce", "hārumce"]);
557
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", ["hōrunce", "hōrumce"]);
558
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", ["huīce"]);
559
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_f", ["huīce"]);
560
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", ["huīce"]);
561
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", ["hīsce"]);
562
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_f", ["hīsce"]);
563
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", ["hīsce"]);
564
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", ["hunce"]);
565
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_f", ["hance"]);
566
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", ["hoce"]);
567
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", ["hōsce"]);
568
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_f", ["hāsce"]);
569
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", ["haece"]);
570
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", ["hōce"]);
571
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_f", ["hāce"]);
572
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", ["hōce"]);
573
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", ["hīsce"]);
574
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_f", ["hīsce"]);
575
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", ["hīsce"]);
576
- data.voc = false;
577
- }
578
- else if (args[0] == "plūs") {
579
- data.title = "irregular third-declension comparative adjective";
580
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", [""]);
581
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", ["plūs"]);
582
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", ["plūrēs"]);
583
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", ["plūra"]);
584
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", [""]);
585
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", ["plūris"]);
586
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", ["plūrium"]);
587
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", ["plūrium"]);
588
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", [""]);
589
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", [""]);
590
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", ["plūribus"]);
591
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", ["plūribus"]);
592
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", [""]);
593
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", ["plūs"]);
594
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", ["plūrēs"]);
595
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", ["plūra"]);
596
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", [""]);
597
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", ["plūre"]);
598
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", ["plūribus"]);
599
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", ["plūribus"]);
600
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_m", [""]);
601
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_n", ["plūs"]);
602
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_m", ["plūrēs"]);
603
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_n", ["plūra"]);
604
- data.footnote = "Note: Singular forms take the genitive of the whole and do not function as adjectives.";
605
- data.categories.push("Latin third declension " + data.pos);
606
- data.categories.push("Latin third declension " + data.pos + " of one termination");
607
- }
608
- else if (args[0] == "is" || args[0] == "īdem") {
609
- data.title = "demonstrative pronoun";
610
- const note1 = "The dat. singular is found spelled EIEI (here represented as 'ēī') and scanned as two longs in Plautus, but also as a monosyllable. The latter is its normal scansion in Classical. Other spellings include EEI, IEI.";
611
- const note2 = "The nom./dat./abl. plural forms regularly developed into a monosyllable /iː(s)/, with later remodelling - compare the etymology of deus. This /iː/ was normally spelled as EI during and as II after the Republic; a disyllabic 'iī', spelled II, Iꟾ, apears in Silver Age poetry, while disyllabic 'eīs' is only post-Classical. Other spellings include EEI(S), EIEI(S), IEI(S).";
612
- if (!data.declOpts.suppressRareIrregForms) {
613
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", ["ī", "iī", "eī"]);
614
- data.notes.set("nom_pl_m1", note2);
615
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", ["ei", "ēī"]);
616
- data.notes.set("dat_sg_m1", note1);
617
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_f", ["ei", "ēī"]);
618
- data.notes.set("dat_sg_f1", note1);
619
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", ["ei", "ēī"]);
620
- data.notes.set("dat_sg_n1", note1);
621
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", ["īs", "iīs", "eīs"]);
622
- data.notes.set("dat_pl_m1", note2);
623
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_f", ["īs", "iīs", "eīs"]);
624
- data.notes.set("dat_pl_f1", note2);
625
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", ["īs", "iīs", "eīs"]);
626
- data.notes.set("dat_pl_n1", note2);
627
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", ["īs", "iīs", "eīs"]);
628
- data.notes.set("abl_pl_m1", note2);
629
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_f", ["īs", "iīs", "eīs"]);
630
- data.notes.set("abl_pl_f1", note2);
631
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", ["īs", "iīs", "eīs"]);
632
- data.notes.set("abl_pl_n1", note2);
633
- }
634
- else {
635
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", [""]);
636
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", ["eī"]);
637
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_f", ["eī"]);
638
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", ["eī"]);
639
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", ["iīs"]);
640
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_f", ["iīs"]);
641
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", ["iīs"]);
642
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", ["iīs"]);
643
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_f", ["iīs"]);
644
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", ["iīs"]);
645
- }
646
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["is"]);
647
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_f", ["ea"]);
648
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", ["id"]);
649
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_f", ["eae"]);
650
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", ["ea"]);
651
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", ["eius"]);
652
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_f", ["eius"]);
653
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", ["eius"]);
654
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", ["eōrum"]);
655
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_f", ["eārum"]);
656
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", ["eōrum"]);
657
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", ["eum"]);
658
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_f", ["eam"]);
659
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", ["id"]);
660
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", ["eōs"]);
661
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_f", ["eās"]);
662
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", ["ea"]);
663
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", ["eō"]);
664
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_f", [""]);
665
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", [""]);
666
- data.voc = false;
667
- if (args[0] == "īdem") {
668
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["ī"]);
669
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", ["i"]);
670
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", ["ī"]);
671
- if (!data.declOpts.suppressRareIrregForms) {
672
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", ["eōrun", "eōrum"]);
673
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_f", ["eārun", "eārum"]);
674
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", ["eōrun", "eōrum"]);
675
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", ["eun", "eum"]);
676
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_f", ["ean", "eam"]);
677
- }
678
- else {
679
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", ["eōrun"]);
680
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_f", ["eārun"]);
681
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", ["eōrun"]);
682
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", ["eun"]);
683
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_f", ["ean"]);
684
- }
685
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", ["i"]);
686
- }
687
- }
688
- else if (args[0] == "ille") {
689
- data.types.add(NominalType_1.NominalType.Ius);
690
- const d = exports.m_adj_decl.get("1&2");
691
- if (!d) {
692
- throw Error("Decl 1&2 not ready");
693
- }
694
- d(data, ["ill"]);
695
- data.title = "demonstrative pronoun";
696
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["ille"]);
697
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", ["illud"]);
698
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", ["illud"]);
699
- data.voc = false;
700
- data.categories = [];
701
- }
702
- else if (args[0] == "iste") {
703
- data.types.add(NominalType_1.NominalType.Ius);
704
- const d = exports.m_adj_decl.get("1&2");
705
- if (!d) {
706
- throw Error("Decl 1&2 not ready");
707
- }
708
- d(data, ["ist"]);
709
- data.title = "demonstrative pronoun";
710
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["iste"]);
711
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", ["istud"]);
712
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", ["istud"]);
713
- data.voc = false;
714
- data.categories = [];
715
- }
716
- else if (args[0] == "ipse") {
717
- data.types.add(NominalType_1.NominalType.Ius);
718
- const d = exports.m_adj_decl.get("1&2");
719
- if (!d) {
720
- throw Error("Decl 1&2 not ready");
721
- }
722
- d(data, ["ips"]);
723
- data.title = "demonstrative pronoun";
724
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["ipse"]);
725
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", ["ipsum"]);
726
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", ["ipsum"]);
727
- data.voc = false;
728
- data.categories = [];
729
- }
730
- else if (args[0] == "quis" || args[0] == "quī") {
731
- if (data.declOpts.useSimpleQuis) {
732
- let id = "id";
733
- if (args[0] == "quī") {
734
- id = "od";
735
- }
736
- data.title = "relative/interrogative pronoun";
737
- if (args[0] == "quī") {
738
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["quī"]);
739
- }
740
- else {
741
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["quis"]);
742
- }
743
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_f", ["quae"]);
744
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", ["qu" + id]);
745
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", ["quī"]);
746
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_f", ["quae"]);
747
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", ["quae"]);
748
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", ["quem"]);
749
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_f", ["quam"]);
750
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", ["qu" + id]);
751
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", ["quōs"]);
752
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_f", ["quās"]);
753
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", ["quae"]);
754
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", ["cuius"]);
755
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_f", ["cuius"]);
756
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", ["cuius"]);
757
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", ["quōrum"]);
758
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_f", ["quārum"]);
759
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", ["quōrum"]);
760
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", ["cui"]);
761
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_f", ["cui"]);
762
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", ["cui"]);
763
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", ["quibus"]);
764
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_f", ["quibus"]);
765
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", ["quibus"]);
766
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", ["quō"]);
767
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_f", ["quā"]);
768
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", ["quō"]);
769
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", ["quibus"]);
770
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_f", ["quibus"]);
771
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", ["quibus"]);
772
- data.voc = false;
773
- }
774
- else {
775
- const note1 = "When used as an indefinite pronoun or adjective, the feminine nominative singular and neuter nominative/accusative plural is usually 'qua' instead of 'quae'. Indefinite 'qua' is generally only found directly after the accompanying '[[si#Latin|sī]]', '[[nisi#Latin|nisi]]', '[[num#Latin|num]]', or '[[ne#Latin|nē]]' and may be considered to be either enclitic to it or forming a compound with it; sometimes '[[siqua#Latin|sīqua]]', '[[numqua#Latin|numqua]]', and '[[nequa#Latin|nēqua]]' are written together. The form 'qua' is never found for any form of the interrogative or relative pronouns, nor for the feminine plural of the indefinite pronoun or adjective.";
776
- const note2 = "In Republican Latin or earlier, 'quī' was often spelled as '[[quei]]', 'cuius' as '[[quoius]]', 'cui' as '[[quoi]]' (or '[[quoiei]]'), and 'quīs' as '[[queis]]'.";
777
- let id = "id";
778
- if (args[0] == "quī") {
779
- id = "od";
780
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["quī", "quis"]);
781
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_f", ["quae", "qua"]);
782
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_f", ["quam"]);
783
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", ["quō"]);
784
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_f", ["quā"]);
785
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", ["quō"]);
786
- data.notes.set("nom_sg_m1", note2);
787
- data.notes.set("nom_sg_f2", note1);
788
- }
789
- else {
790
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["quis", "quī"]);
791
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_f", ["quae", "qua", "quis"]);
792
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_f", ["quam", "quem"]);
793
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", ["quō", "quī"]);
794
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_f", ["quā", "quī"]);
795
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", ["quō", "quī"]);
796
- data.notes.set("nom_sg_m2", note2);
797
- data.notes.set("nom_sg_f2", note1);
798
- }
799
- data.title = "relative/interrogative pronoun";
800
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", ["qu" + id]);
801
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", ["quī"]);
802
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_f", ["quae"]);
803
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", ["quae", "qua"]);
804
- data.notes.set("nom_pl_m1", note2);
805
- data.notes.set("nom_pl_n2", note1);
806
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", ["cuius"]);
807
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_f", ["cuius"]);
808
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", ["cuius"]);
809
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", ["quōrum"]);
810
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_f", ["quārum"]);
811
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", ["quōrum"]);
812
- data.notes.set("gen_sg_m1", note2);
813
- data.notes.set("gen_sg_f1", note2);
814
- data.notes.set("gen_sg_n1", note2);
815
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", ["cui"]);
816
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_f", ["cui"]);
817
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", ["cui"]);
818
- data.notes.set("dat_sg_m1", note2);
819
- data.notes.set("dat_sg_f1", note2);
820
- data.notes.set("dat_sg_n1", note2);
821
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", ["quibus", "quīs"]);
822
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_f", ["quibus", "quīs"]);
823
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", ["quibus", "quīs"]);
824
- data.notes.set("dat_pl_m2", note2);
825
- data.notes.set("dat_pl_f2", note2);
826
- data.notes.set("dat_pl_n2", note2);
827
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", ["quibus", "quīs"]);
828
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_f", ["quibus", "quīs"]);
829
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", ["quibus", "quīs"]);
830
- data.notes.set("abl_pl_m2", note2);
831
- data.notes.set("abl_pl_f2", note2);
832
- data.notes.set("abl_pl_n2", note2);
833
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", ["quem"]);
834
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", ["qu" + id]);
835
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", ["quōs"]);
836
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_f", ["quās"]);
837
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", ["quae", "qua"]);
838
- data.notes.set("acc_pl_n2", note1);
839
- data.voc = false;
840
- }
841
- }
842
- else if (args[0] == "quisquis") {
843
- data.title = "relative/interrogative pronoun";
844
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_m", ["quisquis"]);
845
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_f", ["quisquis"]);
846
- if (!data.declOpts.suppressRareIrregForms) {
847
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", ["quidquid", "quicquid"]);
848
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", ["quibusquibus", "quīsquīs"]);
849
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_f", ["quibusquibus", "quīsquīs"]);
850
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", ["quibusquibus", "quīsquīs"]);
851
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", ["quidquid", "quicquid"]);
852
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", ["quibusquibus", "quīsquīs"]);
853
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_f", ["quibusquibus", "quīsquīs"]);
854
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", ["quibusquibus", "quīsquīs"]);
855
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_n", ["quidquid", "quicquid"]);
856
- }
857
- else {
858
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_sg_n", ["quidquid"]);
859
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_m", ["quibusquibus"]);
860
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_f", ["quibusquibus"]);
861
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_pl_n", ["quibusquibus"]);
862
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_n", ["quidquid"]);
863
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_m", ["quibusquibus"]);
864
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_f", ["quibusquibus"]);
865
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_pl_n", ["quibusquibus"]);
866
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_n", ["quidquid"]);
867
- }
868
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_m", ["quīquī"]);
869
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_f", ["quaequae"]);
870
- (0, NominalForm_1.setNominalForm)(data.forms, "nom_pl_n", ["quaequae"]);
871
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_m", ["cuiuscuius"]);
872
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_f", ["cuiuscuius"]);
873
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_sg_n", ["cuiuscuius"]);
874
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_m", ["quōrumquōrum"]);
875
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_f", ["quārumquārum"]);
876
- (0, NominalForm_1.setNominalForm)(data.forms, "gen_pl_n", ["quōrumquōrum"]);
877
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_m", ["cuicui"]);
878
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_f", ["cuicui"]);
879
- (0, NominalForm_1.setNominalForm)(data.forms, "dat_sg_n", ["cuicui"]);
880
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_m", ["quemquem"]);
881
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_sg_f", ["quamquam"]);
882
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_m", ["quōsquōs"]);
883
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_f", ["quāsquās"]);
884
- (0, NominalForm_1.setNominalForm)(data.forms, "acc_pl_n", ["quaequae"]);
885
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_m", ["quōquō"]);
886
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_f", ["quāquā"]);
887
- (0, NominalForm_1.setNominalForm)(data.forms, "abl_sg_n", ["quōquō"]);
888
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_m", ["quisquis"]);
889
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_sg_f", ["quisquis"]);
890
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_m", ["quīquī"]);
891
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_f", ["quaequae"]);
892
- (0, NominalForm_1.setNominalForm)(data.forms, "voc_pl_n", ["quaequae"]);
893
- data.voc = true;
894
- }
895
- else {
896
- throw Error(`Adjective '${args[0]}' not recognized`);
897
- }
898
- }],
899
- ]);
900
- function singularize(plural) {
901
- if (plural.match(/xes$/) || plural.match(/[cs]hes$/)) {
902
- return plural.replace(/es$/, "");
903
- }
904
- else {
905
- return plural.replace(/s$/, "");
906
- }
907
- }
908
- //# sourceMappingURL=LaAdjData.js.map
1
+ /**
2
+ * This is a complete re-implementation of Wiktionary's Module:la-adj/data, developed by Benwing2.
3
+ * It was converted from Lua to TypeScript by Folke Will <folko@solhost.org>.
4
+ *
5
+ * Original source: https://en.wiktionary.org/wiki/Module:la-adj/data
6
+ * Based on version 2026-03-03
7
+ *
8
+ * Lua idioms, function and variable names kept as in the original in order to easily
9
+ * backport later changes to this implementation.
10
+ *
11
+ * For that reason, it's suggested to add a type-aware wrapper around this class and leave
12
+ * this code unchanged instead of improving the types and use of idioms in this class.
13
+ *
14
+ */
15
+ import { NumberTantum } from "./LaNominal.js";
16
+ import { getNominalForm, setNominalForm } from "./NominalForm.js";
17
+ import { NominalType } from "./NominalType.js";
18
+ export const m_adj_decl = new Map([
19
+ ["0+", (data, args) => {
20
+ data.title = "indeclinable " + singularize(data.pos);
21
+ const stem = args[0];
22
+ setNominalForm(data.forms, "nom_sg_m", [stem]);
23
+ setNominalForm(data.forms, "nom_pl_m", [stem]);
24
+ setNominalForm(data.forms, "gen_sg_m", [stem]);
25
+ setNominalForm(data.forms, "gen_pl_m", [stem]);
26
+ setNominalForm(data.forms, "dat_sg_m", [stem]);
27
+ setNominalForm(data.forms, "dat_pl_m", [stem]);
28
+ setNominalForm(data.forms, "acc_sg_m", [stem]);
29
+ setNominalForm(data.forms, "acc_pl_m", [stem]);
30
+ setNominalForm(data.forms, "abl_sg_m", [stem]);
31
+ setNominalForm(data.forms, "abl_pl_m", [stem]);
32
+ setNominalForm(data.forms, "loc_sg_m", [stem]);
33
+ setNominalForm(data.forms, "loc_pl_m", [stem]);
34
+ setNominalForm(data.forms, "voc_sg_m", [stem]);
35
+ setNominalForm(data.forms, "voc_pl_m", [stem]);
36
+ data.categories.push("Latin indeclinable " + data.pos);
37
+ }],
38
+ ["indecl+", (data, args) => {
39
+ const stem = args[0];
40
+ data.subtitles.push("used only in the nominative and accusative");
41
+ setNominalForm(data.forms, "nom_sg_m", [stem]);
42
+ setNominalForm(data.forms, "nom_pl_m", ["-"]);
43
+ setNominalForm(data.forms, "gen_sg_m", ["-"]);
44
+ setNominalForm(data.forms, "gen_pl_m", ["-"]);
45
+ setNominalForm(data.forms, "dat_sg_m", ["-"]);
46
+ setNominalForm(data.forms, "dat_pl_m", ["-"]);
47
+ setNominalForm(data.forms, "acc_sg_m", [stem]);
48
+ setNominalForm(data.forms, "acc_pl_m", ["-"]);
49
+ setNominalForm(data.forms, "abl_sg_m", ["-"]);
50
+ setNominalForm(data.forms, "abl_pl_m", ["-"]);
51
+ setNominalForm(data.forms, "voc_sg_m", ["-"]);
52
+ setNominalForm(data.forms, "voc_pl_m", ["-"]);
53
+ setNominalForm(data.forms, "loc_sg_m", ["-"]);
54
+ setNominalForm(data.forms, "loc_pl_m", ["-"]);
55
+ data.categories.push("Latin indeclinable " + data.pos);
56
+ }],
57
+ ["1&2+", (data, args) => {
58
+ const singpos = singularize(data.pos);
59
+ if (data.gender == "F") {
60
+ data.title = "first-declension " + singpos;
61
+ }
62
+ else if (data.gender) {
63
+ data.title = "second-declension " + singpos;
64
+ }
65
+ else {
66
+ data.title = "first/second-declension " + singpos;
67
+ }
68
+ let stem = args[0];
69
+ let original;
70
+ if (data.types.has(NominalType.Er)) {
71
+ if (stem.match(/er$/)) {
72
+ data.subtitles.push("nominative masculine singular in ''-er''");
73
+ data.categories.push("Latin first and second declension " + data.pos + " with nominative masculine singular in -er");
74
+ }
75
+ else if (stem.match(/ur$/)) {
76
+ data.subtitles.push("nominative masculine singular in ''-ur''");
77
+ data.categories.push("Latin first and second declension " + data.pos + " with nominative masculine singular in -ur");
78
+ }
79
+ else {
80
+ throw Error(`Unrecognized '-r' stem (doesn't and in '-er' or '-ur'): ${stem}`);
81
+ }
82
+ original = stem;
83
+ stem = args[1];
84
+ }
85
+ let us = "us";
86
+ let a_sf = "a";
87
+ let um = "um";
88
+ let ae_gsf = "ae";
89
+ let am = "am";
90
+ let a_macron = "ā";
91
+ let i_pl = [stem + "ī"];
92
+ if (data.types.has(NominalType.GreekA) || data.types.has(NominalType.GreekE)) {
93
+ data.subtitles.push("Greek-type");
94
+ data.categories.push("Latin first and second declension " + data.pos + " with Greek declension");
95
+ if (data.types.has(NominalType.GreekA)) {
96
+ us = "os";
97
+ um = "on";
98
+ am = "ān";
99
+ }
100
+ else {
101
+ us = "os";
102
+ a_sf = "ē";
103
+ um = "on";
104
+ ae_gsf = "ēs";
105
+ am = "ēn";
106
+ a_macron = "ē";
107
+ }
108
+ i_pl = [stem + "ī", stem + "oe"]; // Lua: include Greek plural in -oe
109
+ }
110
+ setNominalForm(data.forms, "nom_sg_m", [original || (stem + us)]);
111
+ setNominalForm(data.forms, "nom_sg_f", [stem + a_sf]);
112
+ setNominalForm(data.forms, "nom_sg_n", [stem + um]);
113
+ setNominalForm(data.forms, "nom_pl_m", i_pl);
114
+ setNominalForm(data.forms, "nom_pl_f", [stem + "ae"]);
115
+ setNominalForm(data.forms, "nom_pl_n", [stem + "a"]);
116
+ setNominalForm(data.forms, "voc_pl_m", i_pl);
117
+ setNominalForm(data.forms, "gen_sg_m", [stem + "ī"]);
118
+ setNominalForm(data.forms, "gen_sg_f", [stem + ae_gsf]);
119
+ setNominalForm(data.forms, "gen_sg_n", [stem + "ī"]);
120
+ setNominalForm(data.forms, "gen_pl_m", [stem + "ōrum"]);
121
+ setNominalForm(data.forms, "gen_pl_f", [stem + "ārum"]);
122
+ setNominalForm(data.forms, "gen_pl_n", [stem + "ōrum"]);
123
+ setNominalForm(data.forms, "dat_sg_m", [stem + "ō"]);
124
+ setNominalForm(data.forms, "dat_sg_f", [stem + "ae"]);
125
+ setNominalForm(data.forms, "dat_sg_n", [stem + "ō"]);
126
+ setNominalForm(data.forms, "dat_pl_m", [stem + "īs"]);
127
+ setNominalForm(data.forms, "dat_pl_f", [stem + "īs"]);
128
+ setNominalForm(data.forms, "dat_pl_n", [stem + "īs"]);
129
+ setNominalForm(data.forms, "acc_sg_m", [stem + um]);
130
+ setNominalForm(data.forms, "acc_sg_f", [stem + am]);
131
+ setNominalForm(data.forms, "acc_sg_n", [stem + um]);
132
+ setNominalForm(data.forms, "acc_pl_m", [stem + "ōs"]);
133
+ setNominalForm(data.forms, "acc_pl_f", [stem + "ās"]);
134
+ setNominalForm(data.forms, "acc_pl_n", [stem + "a"]);
135
+ setNominalForm(data.forms, "abl_sg_m", [stem + "ō"]);
136
+ setNominalForm(data.forms, "abl_sg_f", [stem + a_macron]);
137
+ setNominalForm(data.forms, "abl_sg_n", [stem + "ō"]);
138
+ setNominalForm(data.forms, "abl_pl_m", [stem + "īs"]);
139
+ setNominalForm(data.forms, "abl_pl_f", [stem + "īs"]);
140
+ setNominalForm(data.forms, "abl_pl_n", [stem + "īs"]);
141
+ setNominalForm(data.forms, "voc_sg_m", [original || (stem + "e")]);
142
+ setNominalForm(data.forms, "voc_sg_f", [stem + a_sf]);
143
+ setNominalForm(data.forms, "voc_sg_n", [stem + um]);
144
+ setNominalForm(data.forms, "voc_pl_m", i_pl);
145
+ setNominalForm(data.forms, "voc_pl_f", [stem + "ae"]);
146
+ setNominalForm(data.forms, "voc_pl_n", [stem + "a"]);
147
+ setNominalForm(data.forms, "loc_sg_m", [stem + "ī"]);
148
+ setNominalForm(data.forms, "loc_sg_f", [stem + "ae"]);
149
+ setNominalForm(data.forms, "loc_sg_n", [stem + "ī"]);
150
+ setNominalForm(data.forms, "loc_pl_m", [stem + "īs"]);
151
+ setNominalForm(data.forms, "loc_pl_f", [stem + "īs"]);
152
+ setNominalForm(data.forms, "loc_pl_n", [stem + "īs"]);
153
+ if (data.types.has(NominalType.Ius)) {
154
+ data.subtitles.push("pronominal declension");
155
+ data.categories.push("Latin first and second declension " + data.pos + " with genitive singular in -ī̆us");
156
+ setNominalForm(data.forms, "gen_sg_m", [stem + "ī̆us"]);
157
+ setNominalForm(data.forms, "gen_sg_f", [stem + "ī̆us"]);
158
+ setNominalForm(data.forms, "gen_sg_n", [stem + "ī̆us"]);
159
+ setNominalForm(data.forms, "dat_sg_m", [stem + "ī"]);
160
+ setNominalForm(data.forms, "dat_sg_f", [stem + "ī"]);
161
+ setNominalForm(data.forms, "dat_sg_n", [stem + "ī"]);
162
+ }
163
+ else if (data.types.has(NominalType.NotIus)) {
164
+ data.subtitles.push("non-pronominal declension");
165
+ }
166
+ if (stem == "me") {
167
+ setNominalForm(data.forms, "voc_sg_m", [""]);
168
+ }
169
+ if (data.types.has(NominalType.Ic)) {
170
+ data.subtitles.push("''hic''-type");
171
+ let oc = "oc";
172
+ let oc_macron = "ōc";
173
+ if (stem == "ill") {
174
+ oc = "uc";
175
+ oc_macron = "ūc";
176
+ }
177
+ setNominalForm(data.forms, "nom_sg_m", [stem + "ic"]);
178
+ setNominalForm(data.forms, "nom_sg_f", [stem + "aec"]);
179
+ setNominalForm(data.forms, "nom_sg_n", [stem + oc]);
180
+ setNominalForm(data.forms, "nom_pl_n", [stem + "aec"]);
181
+ setNominalForm(data.forms, "gen_sg_m", [stem + "uius"]);
182
+ setNominalForm(data.forms, "gen_sg_f", [stem + "uius"]);
183
+ setNominalForm(data.forms, "gen_sg_n", [stem + "uius"]);
184
+ setNominalForm(data.forms, "dat_sg_m", [stem + "uic"]);
185
+ setNominalForm(data.forms, "dat_sg_f", [stem + "uic"]);
186
+ setNominalForm(data.forms, "dat_sg_n", [stem + "uic"]);
187
+ setNominalForm(data.forms, "acc_sg_m", [stem + "unc"]);
188
+ setNominalForm(data.forms, "acc_sg_f", [stem + "anc"]);
189
+ setNominalForm(data.forms, "acc_sg_n", [stem + oc]);
190
+ setNominalForm(data.forms, "acc_pl_n", [stem + "aec"]);
191
+ setNominalForm(data.forms, "abl_sg_m", [stem + "ōc"]);
192
+ setNominalForm(data.forms, "abl_sg_f", [stem + "āc"]);
193
+ setNominalForm(data.forms, "abl_sg_n", [stem + oc_macron]);
194
+ setNominalForm(data.forms, "voc_sg_m", ["-"]);
195
+ setNominalForm(data.forms, "voc_sg_f", ["-"]);
196
+ setNominalForm(data.forms, "voc_sg_n", ["-"]);
197
+ setNominalForm(data.forms, "voc_pl_m", ["-"]);
198
+ setNominalForm(data.forms, "voc_pl_f", ["-"]);
199
+ setNominalForm(data.forms, "voc_pl_n", ["-"]);
200
+ }
201
+ if (data.types.has(NominalType.distr)) {
202
+ if (stem.match(/n$/)) {
203
+ data.subtitles.push("distributive, normally plural-only; short genitive plurals in ''-num'' preferred");
204
+ setNominalForm(data.forms, "gen_pl_m", [stem + "um", stem + "ōrum"]);
205
+ setNominalForm(data.forms, "gen_pl_f", [stem + "um", stem + "ārum"]);
206
+ setNominalForm(data.forms, "gen_pl_n", [stem + "um", stem + "ōrum"]);
207
+ }
208
+ else {
209
+ throw Error(`Unrecognized distributive numeral stem (doesn't end in ''n''): ${stem}`);
210
+ }
211
+ original = stem;
212
+ stem = args[1];
213
+ }
214
+ data.categories.push("Latin first and second declension " + data.pos);
215
+ }],
216
+ ["1-1+", (data, args) => {
217
+ data.title = "first-declension one-termination " + singularize(data.pos);
218
+ const stem = args[0];
219
+ setNominalForm(data.forms, "nom_sg_m", [stem + "a"]);
220
+ setNominalForm(data.forms, "nom_pl_m", [stem + "ae"]);
221
+ setNominalForm(data.forms, "nom_pl_n", [stem + "a"]);
222
+ setNominalForm(data.forms, "gen_sg_m", [stem + "ae"]);
223
+ setNominalForm(data.forms, "gen_pl_m", [stem + "ārum"]);
224
+ setNominalForm(data.forms, "dat_sg_m", [stem + "ae"]);
225
+ setNominalForm(data.forms, "dat_pl_m", [stem + "īs"]);
226
+ setNominalForm(data.forms, "acc_sg_m", [stem + "am"]);
227
+ setNominalForm(data.forms, "acc_sg_n", [stem + "a"]);
228
+ setNominalForm(data.forms, "acc_pl_m", [stem + "ās"]);
229
+ setNominalForm(data.forms, "acc_pl_n", [stem + "a"]);
230
+ setNominalForm(data.forms, "abl_sg_m", [stem + "ā"]);
231
+ setNominalForm(data.forms, "abl_pl_m", [stem + "īs"]);
232
+ setNominalForm(data.forms, "loc_sg_m", [stem + "ae"]);
233
+ setNominalForm(data.forms, "loc_pl_m", [stem + "īs"]);
234
+ setNominalForm(data.forms, "voc_sg_m", [stem + "a"]);
235
+ setNominalForm(data.forms, "voc_pl_m", [stem + "ae"]);
236
+ setNominalForm(data.forms, "voc_pl_n", [stem + "a"]);
237
+ data.categories.push("Latin first declension " + data.pos);
238
+ }],
239
+ ["2-2+", (data, args) => {
240
+ data.title = "second-declension two-termination " + singularize(data.pos);
241
+ const stem = args[0];
242
+ let us = "us";
243
+ let um = "um";
244
+ let i_pl = [stem + "ī"];
245
+ if (data.types.has(NominalType.greek)) {
246
+ data.subtitles.push("Greek-type");
247
+ data.categories.push("Latin second declension " + data.pos + " with Greek declension");
248
+ us = "os";
249
+ um = "on";
250
+ i_pl = [stem + "ī", stem + "oe"];
251
+ }
252
+ setNominalForm(data.forms, "nom_sg_m", [stem + us]);
253
+ setNominalForm(data.forms, "nom_sg_n", [stem + um]);
254
+ setNominalForm(data.forms, "nom_pl_m", i_pl);
255
+ setNominalForm(data.forms, "nom_pl_n", [stem + "a"]);
256
+ setNominalForm(data.forms, "gen_sg_m", [stem + "ī"]);
257
+ setNominalForm(data.forms, "gen_sg_n", [stem + "ī"]);
258
+ setNominalForm(data.forms, "gen_pl_m", [stem + "ōrum"]);
259
+ setNominalForm(data.forms, "gen_pl_n", [stem + "ōrum"]);
260
+ setNominalForm(data.forms, "dat_sg_m", [stem + "ō"]);
261
+ setNominalForm(data.forms, "dat_sg_n", [stem + "ō"]);
262
+ setNominalForm(data.forms, "dat_pl_m", [stem + "īs"]);
263
+ setNominalForm(data.forms, "dat_pl_n", [stem + "īs"]);
264
+ setNominalForm(data.forms, "acc_sg_m", [stem + um]);
265
+ setNominalForm(data.forms, "acc_sg_n", [stem + um]);
266
+ setNominalForm(data.forms, "acc_pl_m", [stem + "ōs"]);
267
+ setNominalForm(data.forms, "acc_pl_n", [stem + "a"]);
268
+ setNominalForm(data.forms, "abl_sg_m", [stem + "ō"]);
269
+ setNominalForm(data.forms, "abl_sg_n", [stem + "ō"]);
270
+ setNominalForm(data.forms, "abl_pl_m", [stem + "īs"]);
271
+ setNominalForm(data.forms, "abl_pl_n", [stem + "īs"]);
272
+ setNominalForm(data.forms, "loc_sg_m", [stem + "ī"]);
273
+ setNominalForm(data.forms, "loc_sg_n", [stem + "ī"]);
274
+ setNominalForm(data.forms, "loc_pl_m", [stem + "īs"]);
275
+ setNominalForm(data.forms, "loc_pl_n", [stem + "īs"]);
276
+ setNominalForm(data.forms, "voc_sg_m", [stem + "e"]);
277
+ setNominalForm(data.forms, "voc_sg_n", [stem + um]);
278
+ setNominalForm(data.forms, "voc_pl_n", [stem + "a"]);
279
+ setNominalForm(data.forms, "voc_pl_m", i_pl);
280
+ setNominalForm(data.forms, "voc_pl_n", [stem + "a"]);
281
+ data.categories.push("Latin second declension " + data.pos);
282
+ }],
283
+ ["3-1+", (data, args) => {
284
+ const singpos = singularize(data.pos);
285
+ if (data.gender) {
286
+ data.title = "third-declension " + singpos;
287
+ }
288
+ else {
289
+ data.title = "third-declension one-termination " + singpos;
290
+ }
291
+ const stem1 = args[0];
292
+ const stem2 = args[1];
293
+ setNominalForm(data.forms, "nom_sg_m", [stem1]);
294
+ setNominalForm(data.forms, "nom_sg_n", [stem1]);
295
+ setNominalForm(data.forms, "nom_pl_m", [stem2 + "ēs"]);
296
+ setNominalForm(data.forms, "nom_pl_n", [stem2 + "ia"]);
297
+ setNominalForm(data.forms, "gen_sg_m", [stem2 + "is"]);
298
+ setNominalForm(data.forms, "gen_sg_n", [stem2 + "is"]);
299
+ setNominalForm(data.forms, "gen_pl_m", [stem2 + "ium"]);
300
+ setNominalForm(data.forms, "gen_pl_n", [stem2 + "ium"]);
301
+ setNominalForm(data.forms, "dat_sg_m", [stem2 + "ī"]);
302
+ setNominalForm(data.forms, "dat_sg_n", [stem2 + "ī"]);
303
+ setNominalForm(data.forms, "dat_pl_m", [stem2 + "ibus"]);
304
+ setNominalForm(data.forms, "dat_pl_n", [stem2 + "ibus"]);
305
+ setNominalForm(data.forms, "acc_sg_m", [stem2 + "em"]);
306
+ setNominalForm(data.forms, "acc_sg_n", [stem1]);
307
+ if (!data.declOpts.suppressNonNeuterIStemAccIs) {
308
+ setNominalForm(data.forms, "acc_pl_m", [stem2 + "īs", stem2 + "ēs"]);
309
+ }
310
+ else {
311
+ setNominalForm(data.forms, "acc_pl_m", [stem2 + "ēs"]);
312
+ }
313
+ setNominalForm(data.forms, "acc_pl_n", [stem2 + "ia"]);
314
+ setNominalForm(data.forms, "abl_sg_m", data.declOpts.suppressAdjPtcForms ? [stem2 + "ī",] : [stem2 + "ī", stem2 + "e"]);
315
+ setNominalForm(data.forms, "abl_sg_n", data.declOpts.suppressAdjPtcForms ? [stem2 + "ī",] : [stem2 + "ī", stem2 + "e"]);
316
+ setNominalForm(data.forms, "abl_pl_m", [stem2 + "ibus"]);
317
+ setNominalForm(data.forms, "abl_pl_n", [stem2 + "ibus"]);
318
+ setNominalForm(data.forms, "loc_sg_m", [stem2 + "ī", stem2 + "e"]);
319
+ setNominalForm(data.forms, "loc_sg_n", [stem2 + "ī", stem2 + "e"]);
320
+ setNominalForm(data.forms, "loc_pl_m", [stem2 + "ibus"]);
321
+ setNominalForm(data.forms, "loc_pl_n", [stem2 + "ibus"]);
322
+ setNominalForm(data.forms, "voc_sg_m", [stem1]);
323
+ setNominalForm(data.forms, "voc_sg_n", [stem1]);
324
+ setNominalForm(data.forms, "voc_pl_m", [stem2 + "ēs"]);
325
+ setNominalForm(data.forms, "voc_pl_n", [stem2 + "ia"]);
326
+ if (data.types.has(NominalType.Par)) {
327
+ data.subtitles.push("non-i-stem");
328
+ setNominalForm(data.forms, "nom_pl_n", [stem2 + "a"]);
329
+ setNominalForm(data.forms, "gen_pl_m", [stem2 + "um"]);
330
+ setNominalForm(data.forms, "gen_pl_n", [stem2 + "um"]);
331
+ setNominalForm(data.forms, "abl_sg_m", [stem2 + "e"]);
332
+ setNominalForm(data.forms, "abl_sg_n", [stem2 + "e"]);
333
+ setNominalForm(data.forms, "loc_sg_m", [stem2 + "ī", stem2 + "e"]);
334
+ setNominalForm(data.forms, "loc_sg_n", [stem2 + "ī", stem2 + "e"]);
335
+ setNominalForm(data.forms, "acc_pl_n", [stem2 + "a"]);
336
+ setNominalForm(data.forms, "voc_pl_n", [stem2 + "a"]);
337
+ }
338
+ else if (data.types.has(NominalType.NotPar)) {
339
+ data.subtitles.push("i-stem");
340
+ }
341
+ const es_base = stem1.match(/^(.*)ēs$/);
342
+ if (es_base && es_base[1] == stem2) {
343
+ if (data.types.has(NominalType.greek)) {
344
+ const note = "It is unknown whether adjectives of this type would use i-stem or consonant-stem endings in Classical Latin: the relevant forms are not attested. Depending on the word, either ending or both may be attested in New Latin.";
345
+ setNominalForm(data.forms, "nom_sg_n", [stem2 + "es"]);
346
+ setNominalForm(data.forms, "acc_sg_n", [stem2 + "es"]);
347
+ setNominalForm(data.forms, "voc_sg_n", [stem2 + "es"]);
348
+ setNominalForm(data.forms, "nom_pl_n", [stem2 + "a", stem2 + "ia"]);
349
+ data.notes.set("nom_pl_n2", note);
350
+ setNominalForm(data.forms, "acc_pl_n", [stem2 + "a", stem2 + "ia"]);
351
+ data.notes.set("acc_pl_n2", note);
352
+ setNominalForm(data.forms, "voc_pl_n", [stem2 + "a", stem2 + "ia"]);
353
+ data.notes.set("voc_pl_n2", note);
354
+ setNominalForm(data.forms, "abl_sg_m", [stem2 + "e", stem2 + "ī"]);
355
+ data.notes.set("abl_sg_m2", note);
356
+ setNominalForm(data.forms, "abl_sg_n", [stem2 + "e", stem2 + "ī"]);
357
+ data.notes.set("abl_sg_n2", note);
358
+ setNominalForm(data.forms, "loc_sg_m", [stem2 + "e", stem2 + "ī"]);
359
+ data.notes.set("loc_sg_m2", note);
360
+ setNominalForm(data.forms, "loc_sg_n", [stem2 + "e", stem2 + "ī"]);
361
+ data.notes.set("loc_sg_n2", note);
362
+ setNominalForm(data.forms, "gen_pl_m", [stem2 + "um", stem2 + "ium"]);
363
+ data.notes.set("gen_pl_m2", note);
364
+ setNominalForm(data.forms, "gen_pl_n", [stem2 + "um", stem2 + "ium"]);
365
+ data.notes.set("gen_pl_n2", note);
366
+ data.subtitles.push("Greek-type");
367
+ }
368
+ else if (data.types.has(NominalType.Notgreek)) {
369
+ data.subtitles.push("non-Greek-type");
370
+ }
371
+ }
372
+ data.categories.push("Latin third declension " + data.pos);
373
+ data.categories.push("Latin third declension " + data.pos + " of one termination");
374
+ }],
375
+ ["3-def+", (data, args) => {
376
+ const stem1 = args[0];
377
+ const stem2 = args[1];
378
+ const singpos = singularize(data.pos);
379
+ if (data.gender) {
380
+ data.title = "third-declension " + singpos;
381
+ }
382
+ else {
383
+ data.title = "third-declension defective " + singpos;
384
+ }
385
+ setNominalForm(data.forms, "nom_sg_m", [stem1]);
386
+ setNominalForm(data.forms, "nom_sg_n", [stem1]);
387
+ setNominalForm(data.forms, "nom_pl_m", [stem2 + "ēs"]);
388
+ setNominalForm(data.forms, "nom_pl_n", [stem2 + "ia"]);
389
+ setNominalForm(data.forms, "gen_sg_m", [stem2 + "is"]);
390
+ setNominalForm(data.forms, "gen_sg_n", [stem2 + "is"]);
391
+ setNominalForm(data.forms, "gen_pl_m", [stem2 + "ium"]);
392
+ setNominalForm(data.forms, "gen_pl_n", [stem2 + "ium"]);
393
+ setNominalForm(data.forms, "dat_sg_m", [stem2 + "ī"]);
394
+ setNominalForm(data.forms, "dat_sg_n", [stem2 + "ī"]);
395
+ setNominalForm(data.forms, "dat_pl_m", [stem2 + "ibus"]);
396
+ setNominalForm(data.forms, "dat_pl_n", [stem2 + "ibus"]);
397
+ setNominalForm(data.forms, "acc_sg_m", [stem2 + "em"]);
398
+ setNominalForm(data.forms, "acc_sg_n", [stem1]);
399
+ setNominalForm(data.forms, "acc_pl_m", [stem2 + "ēs"]);
400
+ setNominalForm(data.forms, "acc_pl_n", [stem2 + "ia"]);
401
+ setNominalForm(data.forms, "abl_sg_m", [stem2 + "ī"]);
402
+ setNominalForm(data.forms, "abl_sg_n", [stem2 + "ī"]);
403
+ setNominalForm(data.forms, "abl_pl_m", [stem2 + "ibus"]);
404
+ setNominalForm(data.forms, "abl_pl_n", [stem2 + "ibus"]);
405
+ setNominalForm(data.forms, "voc_sg_m", [stem1]);
406
+ setNominalForm(data.forms, "voc_sg_n", [stem1]);
407
+ setNominalForm(data.forms, "voc_pl_m", [stem2 + "ēs"]);
408
+ setNominalForm(data.forms, "voc_pl_n", [stem2 + "ia"]);
409
+ if (data.types.has(NominalType.Tor)) {
410
+ data.title = "third-declension masculine-only " + singpos;
411
+ data.subtitles.push("non-i-stem");
412
+ setNominalForm(data.forms, "nom_sg_f", undefined);
413
+ setNominalForm(data.forms, "gen_sg_f", undefined);
414
+ setNominalForm(data.forms, "dat_sg_f", undefined);
415
+ setNominalForm(data.forms, "acc_sg_f", undefined);
416
+ setNominalForm(data.forms, "abl_sg_f", undefined);
417
+ setNominalForm(data.forms, "loc_sg_f", undefined);
418
+ setNominalForm(data.forms, "voc_sg_f", undefined);
419
+ setNominalForm(data.forms, "nom_pl_f", undefined);
420
+ setNominalForm(data.forms, "gen_pl_f", undefined);
421
+ setNominalForm(data.forms, "dat_pl_f", undefined);
422
+ setNominalForm(data.forms, "acc_pl_f", undefined);
423
+ setNominalForm(data.forms, "abl_pl_f", undefined);
424
+ setNominalForm(data.forms, "loc_pl_f", undefined);
425
+ setNominalForm(data.forms, "voc_pl_f", undefined);
426
+ setNominalForm(data.forms, "nom_sg_m", [stem1]);
427
+ setNominalForm(data.forms, "gen_sg_m", [stem2 + "is"]);
428
+ setNominalForm(data.forms, "dat_sg_m", [stem2 + "ī"]);
429
+ setNominalForm(data.forms, "acc_sg_m", [stem2 + "em"]);
430
+ setNominalForm(data.forms, "abl_sg_m", [stem2 + "e"]);
431
+ setNominalForm(data.forms, "voc_sg_m", [stem1]);
432
+ setNominalForm(data.forms, "nom_pl_m", [stem2 + "ēs"]);
433
+ setNominalForm(data.forms, "gen_pl_m", [stem2 + "um"]);
434
+ setNominalForm(data.forms, "dat_pl_m", [stem2 + "ibus"]);
435
+ setNominalForm(data.forms, "acc_pl_m", [stem2 + "ēs"]);
436
+ setNominalForm(data.forms, "abl_pl_m", [stem2 + "ibus"]);
437
+ setNominalForm(data.forms, "voc_pl_m", [stem2 + "ēs"]);
438
+ data.categories.push("Latin third declension masculine-only adjectives");
439
+ }
440
+ if (data.types.has(NominalType.Trix)) {
441
+ data.subtitles.push("feminine-only when singular, feminine or neuter when plural");
442
+ setNominalForm(data.forms, "nom_sg_m", undefined);
443
+ setNominalForm(data.forms, "gen_sg_m", undefined);
444
+ setNominalForm(data.forms, "dat_sg_m", undefined);
445
+ setNominalForm(data.forms, "acc_sg_m", undefined);
446
+ setNominalForm(data.forms, "abl_sg_m", undefined);
447
+ setNominalForm(data.forms, "loc_sg_m", undefined);
448
+ setNominalForm(data.forms, "voc_sg_m", undefined);
449
+ setNominalForm(data.forms, "nom_pl_m", undefined);
450
+ setNominalForm(data.forms, "gen_pl_m", undefined);
451
+ setNominalForm(data.forms, "dat_pl_m", undefined);
452
+ setNominalForm(data.forms, "acc_pl_m", undefined);
453
+ setNominalForm(data.forms, "abl_pl_m", undefined);
454
+ setNominalForm(data.forms, "loc_pl_m", undefined);
455
+ setNominalForm(data.forms, "voc_pl_m", undefined);
456
+ setNominalForm(data.forms, "nom_sg_n", undefined);
457
+ setNominalForm(data.forms, "gen_sg_n", undefined);
458
+ setNominalForm(data.forms, "dat_sg_n", undefined);
459
+ setNominalForm(data.forms, "acc_sg_n", undefined);
460
+ setNominalForm(data.forms, "abl_sg_n", undefined);
461
+ setNominalForm(data.forms, "loc_sg_n", undefined);
462
+ setNominalForm(data.forms, "voc_sg_n", undefined);
463
+ setNominalForm(data.forms, "nom_sg_f", [stem1]);
464
+ setNominalForm(data.forms, "gen_sg_f", [stem2 + "is"]);
465
+ setNominalForm(data.forms, "dat_sg_f", [stem2 + "ī"]);
466
+ setNominalForm(data.forms, "acc_sg_f", [stem2 + "em"]);
467
+ setNominalForm(data.forms, "abl_sg_f", [stem2 + "e", stem2 + "ī"]);
468
+ setNominalForm(data.forms, "voc_sg_f", [stem1]);
469
+ setNominalForm(data.forms, "nom_pl_f", [stem2 + "ēs"]);
470
+ setNominalForm(data.forms, "gen_pl_f", [stem2 + "ium"]);
471
+ setNominalForm(data.forms, "dat_pl_f", [stem2 + "ibus"]);
472
+ setNominalForm(data.forms, "acc_pl_f", [stem2 + "ēs"]);
473
+ setNominalForm(data.forms, "abl_pl_f", [stem2 + "ibus"]);
474
+ setNominalForm(data.forms, "voc_pl_f", [stem2 + "ēs"]);
475
+ data.categories.push("Latin third declension feminine- and neuter-only adjectives");
476
+ }
477
+ if (data.types.has(NominalType.TrixF)) {
478
+ data.types.add(NominalType.I);
479
+ data.title = "third-declension feminine-only " + singpos;
480
+ setNominalForm(data.forms, "nom_sg_m", undefined);
481
+ setNominalForm(data.forms, "gen_sg_m", undefined);
482
+ setNominalForm(data.forms, "dat_sg_m", undefined);
483
+ setNominalForm(data.forms, "acc_sg_m", undefined);
484
+ setNominalForm(data.forms, "abl_sg_m", undefined);
485
+ setNominalForm(data.forms, "loc_sg_m", undefined);
486
+ setNominalForm(data.forms, "voc_sg_m", undefined);
487
+ setNominalForm(data.forms, "nom_pl_m", undefined);
488
+ setNominalForm(data.forms, "gen_pl_m", undefined);
489
+ setNominalForm(data.forms, "dat_pl_m", undefined);
490
+ setNominalForm(data.forms, "acc_pl_m", undefined);
491
+ setNominalForm(data.forms, "abl_pl_m", undefined);
492
+ setNominalForm(data.forms, "loc_pl_m", undefined);
493
+ setNominalForm(data.forms, "voc_pl_m", undefined);
494
+ setNominalForm(data.forms, "nom_sg_n", undefined);
495
+ setNominalForm(data.forms, "gen_sg_n", undefined);
496
+ setNominalForm(data.forms, "dat_sg_n", undefined);
497
+ setNominalForm(data.forms, "acc_sg_n", undefined);
498
+ setNominalForm(data.forms, "abl_sg_n", undefined);
499
+ setNominalForm(data.forms, "loc_sg_n", undefined);
500
+ setNominalForm(data.forms, "voc_sg_n", undefined);
501
+ setNominalForm(data.forms, "nom_pl_n", undefined);
502
+ setNominalForm(data.forms, "gen_pl_n", undefined);
503
+ setNominalForm(data.forms, "dat_pl_n", undefined);
504
+ setNominalForm(data.forms, "acc_pl_n", undefined);
505
+ setNominalForm(data.forms, "abl_pl_n", undefined);
506
+ setNominalForm(data.forms, "loc_pl_n", undefined);
507
+ setNominalForm(data.forms, "voc_pl_n", undefined);
508
+ setNominalForm(data.forms, "nom_sg_f", [stem1]);
509
+ setNominalForm(data.forms, "gen_sg_f", [stem2 + "is"]);
510
+ setNominalForm(data.forms, "dat_sg_f", [stem2 + "ī"]);
511
+ setNominalForm(data.forms, "acc_sg_f", [stem2 + "em"]);
512
+ setNominalForm(data.forms, "abl_sg_f", [stem2 + "e", stem2 + "ī"]);
513
+ setNominalForm(data.forms, "voc_sg_f", [stem1]);
514
+ setNominalForm(data.forms, "nom_pl_f", [stem2 + "ēs"]);
515
+ setNominalForm(data.forms, "gen_pl_f", [stem2 + "ium"]);
516
+ setNominalForm(data.forms, "dat_pl_f", [stem2 + "ibus"]);
517
+ setNominalForm(data.forms, "acc_pl_f", [stem2 + "ēs"]);
518
+ setNominalForm(data.forms, "abl_pl_f", [stem2 + "ibus"]);
519
+ setNominalForm(data.forms, "voc_pl_f", [stem2 + "ēs"]);
520
+ data.categories.push("Latin third declension feminine-only adjectives");
521
+ }
522
+ if (data.types.has(NominalType.Idis)) {
523
+ data.types.add(NominalType.I);
524
+ data.title = "third-declension feminine-only " + singpos;
525
+ data.subtitles.push("non-i-stem");
526
+ setNominalForm(data.forms, "nom_sg_m", undefined);
527
+ setNominalForm(data.forms, "gen_sg_m", undefined);
528
+ setNominalForm(data.forms, "dat_sg_m", undefined);
529
+ setNominalForm(data.forms, "acc_sg_m", undefined);
530
+ setNominalForm(data.forms, "abl_sg_m", undefined);
531
+ setNominalForm(data.forms, "loc_sg_m", undefined);
532
+ setNominalForm(data.forms, "voc_sg_m", undefined);
533
+ setNominalForm(data.forms, "nom_pl_m", undefined);
534
+ setNominalForm(data.forms, "gen_pl_m", undefined);
535
+ setNominalForm(data.forms, "dat_pl_m", undefined);
536
+ setNominalForm(data.forms, "acc_pl_m", undefined);
537
+ setNominalForm(data.forms, "abl_pl_m", undefined);
538
+ setNominalForm(data.forms, "loc_pl_m", undefined);
539
+ setNominalForm(data.forms, "voc_pl_m", undefined);
540
+ setNominalForm(data.forms, "nom_sg_n", undefined);
541
+ setNominalForm(data.forms, "gen_sg_n", undefined);
542
+ setNominalForm(data.forms, "dat_sg_n", undefined);
543
+ setNominalForm(data.forms, "acc_sg_n", undefined);
544
+ setNominalForm(data.forms, "abl_sg_n", undefined);
545
+ setNominalForm(data.forms, "loc_sg_n", undefined);
546
+ setNominalForm(data.forms, "voc_sg_n", undefined);
547
+ setNominalForm(data.forms, "nom_pl_n", undefined);
548
+ setNominalForm(data.forms, "gen_pl_n", undefined);
549
+ setNominalForm(data.forms, "dat_pl_n", undefined);
550
+ setNominalForm(data.forms, "acc_pl_n", undefined);
551
+ setNominalForm(data.forms, "abl_pl_n", undefined);
552
+ setNominalForm(data.forms, "loc_pl_n", undefined);
553
+ setNominalForm(data.forms, "voc_pl_n", undefined);
554
+ setNominalForm(data.forms, "nom_sg_f", [stem1]);
555
+ setNominalForm(data.forms, "gen_sg_f", [stem2 + "is", stem2 + "os"]);
556
+ setNominalForm(data.forms, "dat_sg_f", [stem2 + "ī"]);
557
+ setNominalForm(data.forms, "acc_sg_f", [stem2 + "em", stem2 + "a"]);
558
+ setNominalForm(data.forms, "abl_sg_f", [stem2 + "e"]);
559
+ setNominalForm(data.forms, "voc_sg_f", [stem1]);
560
+ setNominalForm(data.forms, "nom_pl_f", [stem2 + "ēs", stem2 + "es"]);
561
+ setNominalForm(data.forms, "gen_pl_f", [stem2 + "um"]);
562
+ setNominalForm(data.forms, "dat_pl_f", [stem2 + "ibus"]);
563
+ setNominalForm(data.forms, "acc_pl_f", [stem2 + "ēs", stem2 + "as"]);
564
+ setNominalForm(data.forms, "abl_pl_f", [stem2 + "ibus"]);
565
+ setNominalForm(data.forms, "voc_pl_f", [stem2 + "ēs", stem2 + "es"]);
566
+ data.categories.push("Latin third declension feminine-only adjectives");
567
+ }
568
+ setNominalForm(data.forms, "loc_sg_m", getNominalForm(data.forms, "abl_sg_m") || []);
569
+ setNominalForm(data.forms, "loc_sg_f", getNominalForm(data.forms, "abl_sg_f") || []);
570
+ setNominalForm(data.forms, "loc_sg_n", getNominalForm(data.forms, "abl_sg_n") || []);
571
+ setNominalForm(data.forms, "loc_pl_m", getNominalForm(data.forms, "abl_pl_m") || []);
572
+ setNominalForm(data.forms, "loc_pl_f", getNominalForm(data.forms, "abl_pl_f") || []);
573
+ setNominalForm(data.forms, "loc_pl_n", getNominalForm(data.forms, "abl_pl_n") || []);
574
+ data.categories.push("Latin third declension " + data.pos);
575
+ }],
576
+ ["3-C+", (data, args) => {
577
+ const stem = args[0];
578
+ const originalTypes = new Set(data.types);
579
+ data.types.add(NominalType.Par);
580
+ const d = m_adj_decl.get("3-1+");
581
+ if (!d) {
582
+ throw Error("Decl 3-1 not ready");
583
+ }
584
+ d(data, [stem + "or", stem + "ōr"]);
585
+ data.types.clear();
586
+ for (const type of originalTypes) {
587
+ data.types.add(type);
588
+ }
589
+ data.title = "third-declension comparative " + singularize(data.pos);
590
+ data.subtitles = [];
591
+ data.categories = data.categories.filter((category) => category != "Latin third declension " + data.pos + " of one termination");
592
+ data.categories.push("Latin comparative adjectives");
593
+ let ablSg;
594
+ if (data.declOpts.suppressAdjCompI) {
595
+ setNominalForm(data.forms, "acc_pl_m", [stem + "ōrēs"]);
596
+ ablSg = [stem + "ōre"];
597
+ }
598
+ else {
599
+ setNominalForm(data.forms, "acc_pl_m", [stem + "ōrēs", stem + "ōrīs"]);
600
+ if (data.types.has(NominalType.AblEI)) {
601
+ ablSg = [stem + "ōre", stem + "ōrī"];
602
+ }
603
+ else if (data.types.has(NominalType.AblIE)) {
604
+ ablSg = [stem + "ōrī", stem + "ōre"];
605
+ }
606
+ else {
607
+ ablSg = [stem + "ōrī"];
608
+ }
609
+ }
610
+ setNominalForm(data.forms, "abl_sg_m", ablSg);
611
+ setNominalForm(data.forms, "abl_sg_n", ablSg);
612
+ setNominalForm(data.forms, "loc_sg_m", ablSg);
613
+ setNominalForm(data.forms, "loc_sg_n", ablSg);
614
+ setNominalForm(data.forms, "nom_sg_n", [stem + "us"]);
615
+ setNominalForm(data.forms, "acc_sg_n", [stem + "us"]);
616
+ setNominalForm(data.forms, "voc_sg_n", [stem + "us"]);
617
+ }],
618
+ ["3-P+", (data, args) => {
619
+ const stem1 = args[0];
620
+ const stem2 = args[1];
621
+ const d = m_adj_decl.get("3-1+");
622
+ if (!d) {
623
+ throw Error("Decl 3-1 not ready");
624
+ }
625
+ d(data, args);
626
+ data.title = "third-declension participle";
627
+ if (!data.declOpts.suppressAdjPtcForms) {
628
+ setNominalForm(data.forms, "abl_sg_m", [stem2 + "e", stem2 + "ī"]);
629
+ data.notes.set("abl_sg_m2", "When used purely as an adjective.");
630
+ setNominalForm(data.forms, "abl_sg_n", [stem2 + "e", stem2 + "ī"]);
631
+ data.notes.set("abl_sg_n2", "When used purely as an adjective.");
632
+ setNominalForm(data.forms, "loc_sg_m", [stem2 + "e", stem2 + "ī"]);
633
+ data.notes.set("loc_sg_m2", "When used purely as an adjective.");
634
+ setNominalForm(data.forms, "loc_sg_n", [stem2 + "e", stem2 + "ī"]);
635
+ data.notes.set("loc_sg_n2", "When used purely as an adjective.");
636
+ }
637
+ else {
638
+ if (data.types.has(NominalType.Participle)) {
639
+ setNominalForm(data.forms, "abl_sg_m", [stem2 + "e"]);
640
+ setNominalForm(data.forms, "abl_sg_n", [stem2 + "e"]);
641
+ }
642
+ else {
643
+ setNominalForm(data.forms, "abl_sg_m", [stem2 + "ī"]);
644
+ setNominalForm(data.forms, "abl_sg_n", [stem2 + "ī"]);
645
+ }
646
+ }
647
+ if (!data.declOpts.suppressNonNeuterIStemAccIs) {
648
+ setNominalForm(data.forms, "acc_pl_m", [stem2 + "ēs", stem2 + "īs"]);
649
+ }
650
+ else {
651
+ setNominalForm(data.forms, "acc_pl_m", [stem2 + "ēs"]);
652
+ }
653
+ }],
654
+ ["3-2+", (data, args) => {
655
+ const singpos = singularize(data.pos);
656
+ if (data.gender) {
657
+ data.title = "third-declension " + singpos;
658
+ }
659
+ else {
660
+ data.title = "third-declension two-termination " + singpos;
661
+ }
662
+ const stem = args[0];
663
+ const stem2 = args[1];
664
+ setNominalForm(data.forms, "nom_sg_m", [stem + "is"]);
665
+ setNominalForm(data.forms, "nom_sg_n", [stem + "e"]);
666
+ setNominalForm(data.forms, "nom_pl_m", [stem + "ēs"]);
667
+ setNominalForm(data.forms, "nom_pl_n", [stem + "ia"]);
668
+ setNominalForm(data.forms, "gen_sg_m", [stem + "is"]);
669
+ setNominalForm(data.forms, "gen_sg_n", [stem + "is"]);
670
+ setNominalForm(data.forms, "gen_pl_m", [stem + "ium"]);
671
+ setNominalForm(data.forms, "gen_pl_n", [stem + "ium"]);
672
+ setNominalForm(data.forms, "dat_sg_m", [stem + "ī"]);
673
+ setNominalForm(data.forms, "dat_sg_n", [stem + "ī"]);
674
+ setNominalForm(data.forms, "dat_pl_m", [stem + "ibus"]);
675
+ setNominalForm(data.forms, "dat_pl_n", [stem + "ibus"]);
676
+ setNominalForm(data.forms, "acc_sg_m", [stem + "em"]);
677
+ setNominalForm(data.forms, "acc_sg_n", [stem + "e"]);
678
+ if (!data.declOpts.suppressNonNeuterIStemAccIs) {
679
+ setNominalForm(data.forms, "acc_pl_m", [stem + "īs", stem + "ēs"]);
680
+ }
681
+ else {
682
+ setNominalForm(data.forms, "acc_pl_m", [stem + "ēs"]);
683
+ }
684
+ setNominalForm(data.forms, "acc_pl_n", [stem + "ia"]);
685
+ setNominalForm(data.forms, "abl_sg_m", [stem + "ī"]);
686
+ setNominalForm(data.forms, "abl_sg_n", [stem + "ī"]);
687
+ setNominalForm(data.forms, "abl_pl_m", [stem + "ibus"]);
688
+ setNominalForm(data.forms, "abl_pl_n", [stem + "ibus"]);
689
+ setNominalForm(data.forms, "loc_sg_m", [stem + "ī"]);
690
+ setNominalForm(data.forms, "loc_sg_n", [stem + "ī"]);
691
+ setNominalForm(data.forms, "loc_pl_m", [stem + "ibus"]);
692
+ setNominalForm(data.forms, "loc_pl_n", [stem + "ibus"]);
693
+ setNominalForm(data.forms, "voc_sg_m", [stem + "is"]);
694
+ setNominalForm(data.forms, "voc_sg_n", [stem + "e"]);
695
+ setNominalForm(data.forms, "voc_pl_m", [stem + "ēs"]);
696
+ setNominalForm(data.forms, "voc_pl_n", [stem + "ia"]);
697
+ data.categories.push("Latin third declension " + data.pos);
698
+ data.categories.push("Latin third declension " + data.pos + " of two terminations");
699
+ }],
700
+ ["3-3+", (data, args) => {
701
+ const singpos = singularize(data.pos);
702
+ if (data.gender) {
703
+ data.title = "third-declension " + singpos;
704
+ }
705
+ else {
706
+ data.title = "third-declension three-termination " + singpos;
707
+ }
708
+ const stem1 = args[0];
709
+ const stem2 = args[1];
710
+ setNominalForm(data.forms, "nom_sg_m", [stem1]);
711
+ setNominalForm(data.forms, "nom_sg_f", [stem2 + "is"]);
712
+ setNominalForm(data.forms, "nom_sg_n", [stem2 + "e"]);
713
+ setNominalForm(data.forms, "nom_pl_m", [stem2 + "ēs"]);
714
+ setNominalForm(data.forms, "nom_pl_f", [stem2 + "ēs"]);
715
+ setNominalForm(data.forms, "nom_pl_n", [stem2 + "ia"]);
716
+ setNominalForm(data.forms, "gen_sg_m", [stem2 + "is"]);
717
+ setNominalForm(data.forms, "gen_sg_f", [stem2 + "is"]);
718
+ setNominalForm(data.forms, "gen_sg_n", [stem2 + "is"]);
719
+ setNominalForm(data.forms, "gen_pl_m", [stem2 + "ium"]);
720
+ setNominalForm(data.forms, "gen_pl_f", [stem2 + "ium"]);
721
+ setNominalForm(data.forms, "gen_pl_n", [stem2 + "ium"]);
722
+ setNominalForm(data.forms, "dat_sg_m", [stem2 + "ī"]);
723
+ setNominalForm(data.forms, "dat_sg_f", [stem2 + "ī"]);
724
+ setNominalForm(data.forms, "dat_sg_n", [stem2 + "ī"]);
725
+ setNominalForm(data.forms, "dat_pl_m", [stem2 + "ibus"]);
726
+ setNominalForm(data.forms, "dat_pl_f", [stem2 + "ibus"]);
727
+ setNominalForm(data.forms, "dat_pl_n", [stem2 + "ibus"]);
728
+ setNominalForm(data.forms, "acc_sg_m", [stem2 + "em"]);
729
+ setNominalForm(data.forms, "acc_sg_f", [stem2 + "em"]);
730
+ setNominalForm(data.forms, "acc_sg_n", [stem2 + "e"]);
731
+ setNominalForm(data.forms, "acc_pl_m", data.declOpts.suppressRareIrregForms ? [stem2 + "ēs"] : [stem2 + "īs", stem2 + "ēs"]);
732
+ setNominalForm(data.forms, "acc_pl_f", data.declOpts.suppressRareIrregForms ? [stem2 + "ēs"] : [stem2 + "īs", stem2 + "ēs"]);
733
+ setNominalForm(data.forms, "acc_pl_n", [stem2 + "ia"]);
734
+ setNominalForm(data.forms, "abl_sg_m", [stem2 + "ī"]);
735
+ setNominalForm(data.forms, "abl_sg_f", [stem2 + "ī"]);
736
+ setNominalForm(data.forms, "abl_sg_n", [stem2 + "ī"]);
737
+ setNominalForm(data.forms, "abl_pl_m", [stem2 + "ibus"]);
738
+ setNominalForm(data.forms, "abl_pl_f", [stem2 + "ibus"]);
739
+ setNominalForm(data.forms, "abl_pl_n", [stem2 + "ibus"]);
740
+ setNominalForm(data.forms, "loc_sg_m", [stem2 + "ī"]);
741
+ setNominalForm(data.forms, "loc_sg_f", [stem2 + "ī"]);
742
+ setNominalForm(data.forms, "loc_sg_n", [stem2 + "ī"]);
743
+ setNominalForm(data.forms, "loc_pl_m", [stem2 + "ibus"]);
744
+ setNominalForm(data.forms, "loc_pl_f", [stem2 + "ibus"]);
745
+ setNominalForm(data.forms, "loc_pl_n", [stem2 + "ibus"]);
746
+ setNominalForm(data.forms, "voc_sg_m", [stem1]);
747
+ setNominalForm(data.forms, "voc_sg_f", [stem2 + "is"]);
748
+ setNominalForm(data.forms, "voc_sg_n", [stem2 + "e"]);
749
+ setNominalForm(data.forms, "voc_pl_m", [stem2 + "ēs"]);
750
+ setNominalForm(data.forms, "voc_pl_f", [stem2 + "ēs"]);
751
+ setNominalForm(data.forms, "voc_pl_n", [stem2 + "ia"]);
752
+ data.categories.push("Latin third declension " + data.pos);
753
+ data.categories.push("Latin third declension " + data.pos + " of three terminations");
754
+ }],
755
+ ["irreg+", (data, args) => {
756
+ if (args[0] == "duo" || args[0] == "ambō") {
757
+ const stem = args[0] == "duo" ? "du" : "amb";
758
+ data.title = (stem == "amb") ? "irregular adjective" : "numeral";
759
+ data.num = NumberTantum.Plural;
760
+ const stem_with_o = stem + (stem == "amb" ? "ō" : "o");
761
+ const note1 = "'duom' in Old Latin.";
762
+ setNominalForm(data.forms, "nom_pl_m", [stem_with_o]);
763
+ setNominalForm(data.forms, "nom_pl_f", [stem + "ae"]);
764
+ setNominalForm(data.forms, "nom_pl_n", [stem_with_o]);
765
+ setNominalForm(data.forms, "gen_pl_m", [stem + "ōrum"]);
766
+ setNominalForm(data.forms, "gen_pl_f", [stem + "ārum"]);
767
+ setNominalForm(data.forms, "gen_pl_n", [stem + "ōrum"]);
768
+ setNominalForm(data.forms, "dat_pl_m", [stem + "ōbus"]);
769
+ setNominalForm(data.forms, "dat_pl_f", [stem + "ābus"]);
770
+ setNominalForm(data.forms, "dat_pl_n", [stem + "ōbus"]);
771
+ setNominalForm(data.forms, "acc_pl_m", [stem + "ōs", stem_with_o]);
772
+ setNominalForm(data.forms, "acc_pl_f", [stem + "ās"]);
773
+ setNominalForm(data.forms, "acc_pl_n", [stem_with_o]);
774
+ setNominalForm(data.forms, "abl_pl_m", [stem + "ōbus"]);
775
+ setNominalForm(data.forms, "abl_pl_f", [stem + "ābus"]);
776
+ setNominalForm(data.forms, "abl_pl_n", [stem + "ōbus"]);
777
+ setNominalForm(data.forms, "voc_pl_m", [stem_with_o]);
778
+ setNominalForm(data.forms, "voc_pl_f", [stem + "ae"]);
779
+ setNominalForm(data.forms, "voc_pl_n", [stem_with_o]);
780
+ if (stem == "du") {
781
+ setNominalForm(data.forms, "gen_pl_m", data.declOpts.suppressRareIrregForms ? [stem + "ōrum"] : [stem + "ōrum", "duum"]);
782
+ setNominalForm(data.forms, "gen_pl_n", data.declOpts.suppressRareIrregForms ? [stem + "ōrum"] : [stem + "ōrum", "duum"]);
783
+ if (!data.declOpts.suppressRareIrregForms) {
784
+ data.notes.set("gen_pl_m2", note1);
785
+ data.notes.set("gen_pl_n2", note1);
786
+ }
787
+ }
788
+ }
789
+ else if (args[0].endsWith("mīlle")) {
790
+ data.title = "semi-[[Appendix:Glossary#indeclinable|indeclinable]] numeral";
791
+ const stem = args[0].slice(0, -2);
792
+ setNominalForm(data.forms, "nom_sg_m", [stem + "le"]);
793
+ setNominalForm(data.forms, "nom_pl_m", [stem + "ia", stem + "lia"]);
794
+ setNominalForm(data.forms, "gen_sg_m", [stem + "le"]);
795
+ setNominalForm(data.forms, "gen_pl_m", [stem + "ium", stem + "lium"]);
796
+ setNominalForm(data.forms, "dat_sg_m", [stem + "le"]);
797
+ setNominalForm(data.forms, "dat_pl_m", [stem + "ibus", stem + "libus"]);
798
+ setNominalForm(data.forms, "acc_sg_m", [stem + "le"]);
799
+ setNominalForm(data.forms, "acc_pl_m", [stem + "ia", stem + "lia"]);
800
+ setNominalForm(data.forms, "abl_sg_m", [stem + "le"]);
801
+ setNominalForm(data.forms, "abl_pl_m", [stem + "ibus", stem + "libus"]);
802
+ setNominalForm(data.forms, "loc_sg_m", [stem + "le"]);
803
+ setNominalForm(data.forms, "loc_pl_m", [stem + "ibus", stem + "libus"]);
804
+ setNominalForm(data.forms, "voc_sg_m", [stem + "le"]);
805
+ setNominalForm(data.forms, "voc_pl_m", [stem + "ia", stem + "lia"]);
806
+ }
807
+ else if (args[0] == "illic" || args[0] == "istic" || args[0] == "isthic") {
808
+ data.title = "[[Appendix:Glossary#demonstrative|demonstrative]] " + singularize(data.pos);
809
+ const stem = args[0].slice(0, -2);
810
+ setNominalForm(data.forms, "nom_sg_m", [stem + "ic"]);
811
+ setNominalForm(data.forms, "nom_sg_f", [stem + "aec"]);
812
+ setNominalForm(data.forms, "nom_sg_n", [stem + "uc", stem + "ucce", stem + "oc"]);
813
+ setNominalForm(data.forms, "gen_sg_m", [stem + "ī̆usce"]);
814
+ setNominalForm(data.forms, "gen_sg_f", [stem + "ī̆usce"]);
815
+ setNominalForm(data.forms, "gen_sg_n", [stem + "ī̆usce"]);
816
+ setNominalForm(data.forms, "dat_sg_m", [stem + "īc"]);
817
+ setNominalForm(data.forms, "dat_sg_f", [stem + "īc"]);
818
+ setNominalForm(data.forms, "dat_sg_n", [stem + "īc"]);
819
+ setNominalForm(data.forms, "acc_sg_m", [stem + "unc"]);
820
+ setNominalForm(data.forms, "acc_sg_f", [stem + "anc"]);
821
+ setNominalForm(data.forms, "acc_sg_n", [stem + "uc", stem + "ucce", stem + "oc"]);
822
+ setNominalForm(data.forms, "abl_sg_m", [stem + "ōc"]);
823
+ setNominalForm(data.forms, "abl_sg_f", [stem + "āc"]);
824
+ setNominalForm(data.forms, "abl_sg_n", [stem + "ōc"]);
825
+ setNominalForm(data.forms, "loc_sg_m", [stem + "ī̆usce"]);
826
+ setNominalForm(data.forms, "loc_sg_f", [stem + "ī̆usce"]);
827
+ setNominalForm(data.forms, "loc_sg_n", [stem + "ī̆usce"]);
828
+ setNominalForm(data.forms, "nom_pl_m", [stem + "īsce"]);
829
+ setNominalForm(data.forms, "nom_pl_f", [stem + "aec"]);
830
+ setNominalForm(data.forms, "nom_pl_n", [stem + "aec"]);
831
+ setNominalForm(data.forms, "gen_pl_m", [stem + "ōrunc"]);
832
+ setNominalForm(data.forms, "gen_pl_f", [stem + "ārunc"]);
833
+ setNominalForm(data.forms, "gen_pl_n", [stem + "ōrunc"]);
834
+ setNominalForm(data.forms, "dat_pl_m", [stem + "īsce"]);
835
+ setNominalForm(data.forms, "dat_pl_f", [stem + "īsce"]);
836
+ setNominalForm(data.forms, "dat_pl_n", [stem + "īsce"]);
837
+ setNominalForm(data.forms, "acc_pl_m", [stem + "ōsce"]);
838
+ setNominalForm(data.forms, "acc_pl_f", [stem + "āsce"]);
839
+ setNominalForm(data.forms, "acc_pl_n", [stem + "aec"]);
840
+ setNominalForm(data.forms, "abl_pl_m", [stem + "īsce"]);
841
+ setNominalForm(data.forms, "abl_pl_f", [stem + "īsce"]);
842
+ setNominalForm(data.forms, "abl_pl_n", [stem + "īsce"]);
843
+ setNominalForm(data.forms, "loc_pl_m", [stem + "īsce"]);
844
+ setNominalForm(data.forms, "loc_pl_f", [stem + "īsce"]);
845
+ setNominalForm(data.forms, "loc_pl_n", [stem + "īsce"]);
846
+ }
847
+ else if (args[0] == "hice") {
848
+ data.title = "demonstrative pronoun";
849
+ setNominalForm(data.forms, "nom_sg_m", ["hice"]);
850
+ setNominalForm(data.forms, "nom_sg_f", ["haece"]);
851
+ setNominalForm(data.forms, "nom_sg_n", ["hoce"]);
852
+ setNominalForm(data.forms, "nom_pl_m", ["hīce"]);
853
+ setNominalForm(data.forms, "nom_pl_n", ["haece"]);
854
+ setNominalForm(data.forms, "nom_pl_f", ["haece"]);
855
+ setNominalForm(data.forms, "gen_sg_m", ["huiusce"]);
856
+ setNominalForm(data.forms, "gen_sg_f", ["huiusce"]);
857
+ setNominalForm(data.forms, "gen_sg_n", ["huiusce"]);
858
+ setNominalForm(data.forms, "gen_pl_m", ["hōrunce", "hōrumce"]);
859
+ setNominalForm(data.forms, "gen_pl_f", ["hārunce", "hārumce"]);
860
+ setNominalForm(data.forms, "gen_pl_n", ["hōrunce", "hōrumce"]);
861
+ setNominalForm(data.forms, "dat_sg_m", ["huīce"]);
862
+ setNominalForm(data.forms, "dat_sg_f", ["huīce"]);
863
+ setNominalForm(data.forms, "dat_sg_n", ["huīce"]);
864
+ setNominalForm(data.forms, "dat_pl_m", ["hīsce"]);
865
+ setNominalForm(data.forms, "dat_pl_f", ["hīsce"]);
866
+ setNominalForm(data.forms, "dat_pl_n", ["hīsce"]);
867
+ setNominalForm(data.forms, "acc_sg_m", ["hunce"]);
868
+ setNominalForm(data.forms, "acc_sg_f", ["hance"]);
869
+ setNominalForm(data.forms, "acc_sg_n", ["hoce"]);
870
+ setNominalForm(data.forms, "acc_pl_m", ["hōsce"]);
871
+ setNominalForm(data.forms, "acc_pl_f", ["hāsce"]);
872
+ setNominalForm(data.forms, "acc_pl_n", ["haece"]);
873
+ setNominalForm(data.forms, "abl_sg_m", ["hōce"]);
874
+ setNominalForm(data.forms, "abl_sg_f", ["hāce"]);
875
+ setNominalForm(data.forms, "abl_sg_n", ["hōce"]);
876
+ setNominalForm(data.forms, "abl_pl_m", ["hīsce"]);
877
+ setNominalForm(data.forms, "abl_pl_f", ["hīsce"]);
878
+ setNominalForm(data.forms, "abl_pl_n", ["hīsce"]);
879
+ data.voc = false;
880
+ }
881
+ else if (args[0] == "plūs") {
882
+ data.title = "[[Appendix:Glossary#irregular|irregular]] [[Appendix:Latin third declension|third-declension]] comparative adjective, plural-only in Classical Latin";
883
+ const note1 = "None of the singular forms are used as adjectives in Classical Latin.";
884
+ setNominalForm(data.forms, "nom_sg_n", ["plūs"]);
885
+ data.notes.set("nom_sg_n1", note1);
886
+ setNominalForm(data.forms, "nom_pl_m", ["plūrēs"]);
887
+ setNominalForm(data.forms, "nom_pl_n", ["plūra"]);
888
+ setNominalForm(data.forms, "gen_sg_m", ["plūris"]);
889
+ data.notes.set("gen_sg_m1", note1);
890
+ setNominalForm(data.forms, "gen_sg_n", ["plūris"]);
891
+ data.notes.set("gen_sg_n1", note1);
892
+ setNominalForm(data.forms, "gen_pl_m", ["plūrium"]);
893
+ setNominalForm(data.forms, "gen_pl_n", ["plūrium"]);
894
+ setNominalForm(data.forms, "dat_sg_m", ["plūrī"]);
895
+ data.notes.set("dat_sg_m1", note1);
896
+ setNominalForm(data.forms, "dat_sg_n", ["plūrī"]);
897
+ data.notes.set("dat_sg_n1", note1);
898
+ setNominalForm(data.forms, "dat_pl_m", ["plūribus"]);
899
+ setNominalForm(data.forms, "dat_pl_n", ["plūribus"]);
900
+ setNominalForm(data.forms, "acc_sg_m", ["plūrem"]);
901
+ data.notes.set("acc_sg_m1", note1);
902
+ setNominalForm(data.forms, "acc_sg_f", ["plūrem"]);
903
+ data.notes.set("acc_sg_f1", note1);
904
+ setNominalForm(data.forms, "acc_sg_n", ["plūs"]);
905
+ data.notes.set("acc_sg_n1", note1);
906
+ setNominalForm(data.forms, "acc_pl_m", data.declOpts.suppressAdjCompI ? ["plūrēs"] : ["plūrēs", "plūrīs"]);
907
+ setNominalForm(data.forms, "acc_pl_n", ["plūra"]);
908
+ setNominalForm(data.forms, "abl_sg_m", ["plūrī", "plūre"]);
909
+ data.notes.set("abl_sg_m1", note1);
910
+ data.notes.set("abl_sg_m2", note1);
911
+ setNominalForm(data.forms, "abl_sg_f", ["plūrī", "plūre"]);
912
+ data.notes.set("abl_sg_f1", note1);
913
+ data.notes.set("abl_sg_f2", note1);
914
+ setNominalForm(data.forms, "abl_sg_n", ["plūrī", "plūre"]);
915
+ data.notes.set("abl_sg_n1", note1);
916
+ data.notes.set("abl_sg_n2", note1);
917
+ setNominalForm(data.forms, "abl_pl_m", ["plūribus"]);
918
+ setNominalForm(data.forms, "abl_pl_n", ["plūribus"]);
919
+ setNominalForm(data.forms, "voc_sg_n", ["plūs"]);
920
+ data.notes.set("voc_sg_n1", note1);
921
+ setNominalForm(data.forms, "voc_pl_m", ["plūrēs"]);
922
+ setNominalForm(data.forms, "voc_pl_n", ["plūra"]);
923
+ setNominalForm(data.forms, "loc_sg_m", ["plūrī", "plūre"]);
924
+ setNominalForm(data.forms, "loc_sg_f", ["plūrī", "plūre"]);
925
+ setNominalForm(data.forms, "loc_sg_n", ["plūrī", "plūre"]);
926
+ setNominalForm(data.forms, "loc_pl_m", ["plūribus"]);
927
+ setNominalForm(data.forms, "loc_pl_n", ["plūribus"]);
928
+ data.notes.set("loc_sg_m1", note1);
929
+ data.notes.set("loc_sg_m2", note1);
930
+ data.notes.set("loc_sg_f1", note1);
931
+ data.notes.set("loc_sg_f2", note1);
932
+ data.notes.set("loc_sg_n1", note1);
933
+ data.notes.set("loc_sg_n2", note1);
934
+ data.categories.push("Latin third declension " + data.pos);
935
+ data.categories.push("Latin third declension " + data.pos + " of one termination");
936
+ }
937
+ else if (args[0] == "is" || args[0] == "īdem") {
938
+ data.title = "demonstrative pronoun";
939
+ const note1 = "The dat. singular is found spelled EIEI (here represented as 'ēī') and scanned as two longs in Plautus, but also as a monosyllable. The latter is its normal scansion in Classical. Other spellings include EEI, IEI.";
940
+ const note2 = "The nom./dat./abl. plural forms regularly developed into a monosyllable /iː(s)/, with later remodelling - compare the etymology of deus. This /iː/ was normally spelled as EI during and as II after the Republic; a disyllabic 'iī', spelled II, Iꟾ, appears in Silver Age poetry, while disyllabic 'eīs' is only post-Classical. Other spellings include EEI(S), EIEI(S), IEI(S).";
941
+ if (!data.declOpts.suppressRareIrregForms) {
942
+ setNominalForm(data.forms, "nom_pl_m", ["iī", "eī", "ī"]);
943
+ data.notes.set("nom_pl_m1", note2);
944
+ setNominalForm(data.forms, "dat_sg_m", ["eī", "e͡i", "ēī"]);
945
+ data.notes.set("dat_sg_m1", note1);
946
+ setNominalForm(data.forms, "dat_sg_f", ["eī", "e͡i", "ēī", "eae"]);
947
+ data.notes.set("dat_sg_f1", note1);
948
+ setNominalForm(data.forms, "dat_sg_n", ["eī", "e͡i", "ēī"]);
949
+ data.notes.set("dat_sg_n1", note1);
950
+ setNominalForm(data.forms, "dat_pl_m", ["iīs", "eīs", "īs"]);
951
+ data.notes.set("dat_pl_m1", note2);
952
+ setNominalForm(data.forms, "dat_pl_f", ["iīs", "eīs", "īs", "eābus"]);
953
+ data.notes.set("dat_pl_f1", note2);
954
+ setNominalForm(data.forms, "dat_pl_n", ["iīs", "eīs", "īs"]);
955
+ data.notes.set("dat_pl_n1", note2);
956
+ setNominalForm(data.forms, "abl_pl_m", ["iīs", "eīs", "īs"]);
957
+ data.notes.set("abl_pl_m1", note2);
958
+ setNominalForm(data.forms, "abl_pl_f", ["iīs", "eīs", "īs"]);
959
+ data.notes.set("abl_pl_f1", note2);
960
+ setNominalForm(data.forms, "abl_pl_n", ["iīs", "eīs", "īs"]);
961
+ data.notes.set("abl_pl_n1", note2);
962
+ }
963
+ else {
964
+ setNominalForm(data.forms, "nom_pl_m", ["iī"]);
965
+ setNominalForm(data.forms, "dat_sg_m", ["eī"]);
966
+ setNominalForm(data.forms, "dat_sg_f", ["eī"]);
967
+ setNominalForm(data.forms, "dat_sg_n", ["eī"]);
968
+ setNominalForm(data.forms, "dat_pl_m", ["iīs"]);
969
+ setNominalForm(data.forms, "dat_pl_f", ["iīs"]);
970
+ setNominalForm(data.forms, "dat_pl_n", ["iīs"]);
971
+ setNominalForm(data.forms, "abl_pl_m", ["iīs"]);
972
+ setNominalForm(data.forms, "abl_pl_f", ["iīs"]);
973
+ setNominalForm(data.forms, "abl_pl_n", ["iīs"]);
974
+ }
975
+ setNominalForm(data.forms, "nom_sg_m", ["is"]);
976
+ setNominalForm(data.forms, "nom_sg_f", ["ea"]);
977
+ setNominalForm(data.forms, "nom_sg_n", ["id"]);
978
+ setNominalForm(data.forms, "nom_pl_f", ["eae"]);
979
+ setNominalForm(data.forms, "nom_pl_n", ["ea"]);
980
+ setNominalForm(data.forms, "gen_sg_m", data.declOpts.suppressRareIrregForms ? ["eius"] : ["eius", "ejus"]);
981
+ setNominalForm(data.forms, "gen_sg_f", data.declOpts.suppressRareIrregForms ? ["eius"] : ["eius", "ejus"]);
982
+ setNominalForm(data.forms, "gen_sg_n", data.declOpts.suppressRareIrregForms ? ["eius"] : ["eius", "ejus"]);
983
+ setNominalForm(data.forms, "gen_pl_m", data.declOpts.suppressRareIrregForms ? ["eōrum"] : ["eōrum", "eum"]);
984
+ setNominalForm(data.forms, "gen_pl_f", ["eārum"]);
985
+ setNominalForm(data.forms, "gen_pl_n", data.declOpts.suppressRareIrregForms ? ["eōrum"] : ["eōrum", "eum"]);
986
+ setNominalForm(data.forms, "acc_sg_m", ["eum"]);
987
+ setNominalForm(data.forms, "acc_sg_f", ["eam"]);
988
+ setNominalForm(data.forms, "acc_sg_n", ["id"]);
989
+ setNominalForm(data.forms, "acc_pl_m", ["eōs"]);
990
+ setNominalForm(data.forms, "acc_pl_f", ["eās"]);
991
+ setNominalForm(data.forms, "acc_pl_n", ["ea"]);
992
+ setNominalForm(data.forms, "abl_sg_m", ["eō"]);
993
+ setNominalForm(data.forms, "abl_sg_f", ["eā"]);
994
+ setNominalForm(data.forms, "abl_sg_n", ["eō"]);
995
+ data.voc = false;
996
+ if (args[0] == "īdem") {
997
+ setNominalForm(data.forms, "nom_sg_m", ["ī"]);
998
+ setNominalForm(data.forms, "nom_sg_n", ["i"]);
999
+ setNominalForm(data.forms, "acc_sg_n", ["i"]);
1000
+ }
1001
+ }
1002
+ else if (args[0] == "ille" || args[0] == "olle") {
1003
+ data.types.add(NominalType.Ius);
1004
+ const d = m_adj_decl.get("1&2+");
1005
+ if (!d) {
1006
+ throw Error("Decl 1&2 not ready");
1007
+ }
1008
+ const stem = args[0].slice(0, -1);
1009
+ d(data, [stem]);
1010
+ data.title = "[[Appendix:Glossary#demonstrative|demonstrative]] " + singularize(data.pos);
1011
+ setNominalForm(data.forms, "nom_sg_m", [args[0]]);
1012
+ setNominalForm(data.forms, "nom_sg_n", [stem + "ud"]);
1013
+ setNominalForm(data.forms, "acc_sg_n", [stem + "ud"]);
1014
+ setNominalForm(data.forms, "voc_sg_m", ["-"]);
1015
+ setNominalForm(data.forms, "voc_sg_f", ["-"]);
1016
+ setNominalForm(data.forms, "voc_sg_n", ["-"]);
1017
+ setNominalForm(data.forms, "voc_pl_m", ["-"]);
1018
+ setNominalForm(data.forms, "voc_pl_f", ["-"]);
1019
+ setNominalForm(data.forms, "voc_pl_n", ["-"]);
1020
+ data.categories = [];
1021
+ }
1022
+ else if (args[0] == "iste") {
1023
+ data.types.add(NominalType.Ius);
1024
+ const d = m_adj_decl.get("1&2+");
1025
+ if (!d) {
1026
+ throw Error("Decl 1&2 not ready");
1027
+ }
1028
+ d(data, ["ist"]);
1029
+ data.title = "[[Appendix:Glossary#demonstrative|demonstrative]] " + singularize(data.pos);
1030
+ setNominalForm(data.forms, "nom_sg_m", ["iste"]);
1031
+ setNominalForm(data.forms, "nom_sg_n", ["istud"]);
1032
+ setNominalForm(data.forms, "acc_sg_n", ["istud"]);
1033
+ setNominalForm(data.forms, "voc_sg_m", ["-"]);
1034
+ setNominalForm(data.forms, "voc_sg_f", ["-"]);
1035
+ setNominalForm(data.forms, "voc_sg_n", ["-"]);
1036
+ setNominalForm(data.forms, "voc_pl_m", ["-"]);
1037
+ setNominalForm(data.forms, "voc_pl_f", ["-"]);
1038
+ setNominalForm(data.forms, "voc_pl_n", ["-"]);
1039
+ data.categories = [];
1040
+ }
1041
+ else if (args[0] == "ipse") {
1042
+ data.types.add(NominalType.Ius);
1043
+ const d = m_adj_decl.get("1&2+");
1044
+ if (!d) {
1045
+ throw Error("Decl 1&2 not ready");
1046
+ }
1047
+ const note1 = "Medieval Latin.";
1048
+ d(data, ["ips"]);
1049
+ data.title = "[[Appendix:Glossary#demonstrative|demonstrative]] " + singularize(data.pos);
1050
+ setNominalForm(data.forms, "nom_sg_m", ["ipse"]);
1051
+ setNominalForm(data.forms, "nom_sg_n", data.declOpts.suppressRareIrregForms ? ["ipsum"] : ["ipsum", "ipsud"]);
1052
+ data.notes.set("nom_sg_n2", note1);
1053
+ setNominalForm(data.forms, "acc_sg_n", data.declOpts.suppressRareIrregForms ? ["ipsum"] : ["ipsum", "ipsud"]);
1054
+ data.notes.set("acc_sg_n2", note1);
1055
+ setNominalForm(data.forms, "voc_sg_m", ["—"]);
1056
+ setNominalForm(data.forms, "voc_sg_f", ["—"]);
1057
+ setNominalForm(data.forms, "voc_sg_n", ["—"]);
1058
+ setNominalForm(data.forms, "voc_pl_m", ["—"]);
1059
+ setNominalForm(data.forms, "voc_pl_f", ["—"]);
1060
+ setNominalForm(data.forms, "voc_pl_n", ["—"]);
1061
+ data.categories = [];
1062
+ }
1063
+ else if (args[0] == "aliquī") {
1064
+ data.title = "[[Appendix:Glossary#indefinite|indefinite]] [[Appendix:Glossary#determiner|determiner]]";
1065
+ const note1 = "Normatively, [[aliqui#Latin|aliquī]] is a determiner (used adjectivally) and [[aliquis#Latin|aliquis]] is a pronoun (used substantively), but the opposite usages can be found, even among the best Classical writers.";
1066
+ const note2 = "The feminine nominative singular form is usually 'aliqua', but there are a handful of possible examples of 'aliquae' as a feminine nominative singular form; see [[Citations:aliquae]]. The feminine nominative plural can only be 'aliquae', and there are perhaps no solid examples of the neuter nominative/accusative plural taking any form other than 'aliqua'.";
1067
+ const note3 = "Alternative spelling [[aliquoius]] (used in Republican Latin or earlier).";
1068
+ const note4 = "Alternative spelling [[aliqueis]] (used in Republican Latin or earlier).";
1069
+ const note5 = "Alternative spelling [[aliquoi]] (used in Republican Latin or earlier).";
1070
+ setNominalForm(data.forms, "nom_sg_m", ["aliquī", "aliquis"]);
1071
+ data.notes.set("nom_sg_m2", note1);
1072
+ setNominalForm(data.forms, "nom_sg_f", ["aliqua"]);
1073
+ data.notes.set("nom_sg_f1", note2);
1074
+ setNominalForm(data.forms, "nom_sg_n", ["aliquod"]);
1075
+ setNominalForm(data.forms, "nom_pl_m", ["aliquī"]);
1076
+ setNominalForm(data.forms, "nom_pl_f", ["aliquae"]);
1077
+ data.notes.set("nom_pl_f1", note2);
1078
+ setNominalForm(data.forms, "nom_pl_n", ["aliqua"]);
1079
+ data.notes.set("nom_pl_n1", note2);
1080
+ setNominalForm(data.forms, "gen_sg_m", ["alicuius"]);
1081
+ data.notes.set("gen_sg_m1", note3);
1082
+ setNominalForm(data.forms, "gen_sg_f", ["alicuius"]);
1083
+ data.notes.set("gen_sg_f1", note3);
1084
+ setNominalForm(data.forms, "gen_sg_n", ["alicuius"]);
1085
+ data.notes.set("gen_sg_n1", note3);
1086
+ setNominalForm(data.forms, "gen_pl_m", ["aliquōrum"]);
1087
+ setNominalForm(data.forms, "gen_pl_f", ["aliquārum"]);
1088
+ setNominalForm(data.forms, "gen_pl_n", ["aliquōrum"]);
1089
+ setNominalForm(data.forms, "dat_sg_m", ["alicui"]);
1090
+ data.notes.set("dat_sg_m1", note5);
1091
+ setNominalForm(data.forms, "dat_sg_f", ["alicui"]);
1092
+ data.notes.set("dat_sg_f1", note5);
1093
+ setNominalForm(data.forms, "dat_sg_n", ["alicui"]);
1094
+ data.notes.set("dat_sg_n1", note5);
1095
+ setNominalForm(data.forms, "dat_pl_m", ["aliquīs", "aliquibus"]);
1096
+ data.notes.set("dat_pl_m1", note4);
1097
+ setNominalForm(data.forms, "dat_pl_f", ["aliquīs", "aliquibus"]);
1098
+ data.notes.set("dat_pl_f1", note4);
1099
+ setNominalForm(data.forms, "dat_pl_n", ["aliquīs", "aliquibus"]);
1100
+ data.notes.set("dat_pl_n1", note4);
1101
+ setNominalForm(data.forms, "acc_sg_m", ["aliquem"]);
1102
+ setNominalForm(data.forms, "acc_sg_f", ["aliquam"]);
1103
+ setNominalForm(data.forms, "acc_sg_n", ["aliquod"]);
1104
+ setNominalForm(data.forms, "acc_pl_m", ["aliquōs"]);
1105
+ setNominalForm(data.forms, "acc_pl_f", ["aliquās"]);
1106
+ setNominalForm(data.forms, "acc_pl_n", ["aliqua"]);
1107
+ data.notes.set("acc_pl_n1", note2);
1108
+ setNominalForm(data.forms, "abl_sg_m", ["aliquō"]);
1109
+ setNominalForm(data.forms, "abl_sg_f", ["aliquā"]);
1110
+ setNominalForm(data.forms, "abl_sg_n", ["aliquō"]);
1111
+ setNominalForm(data.forms, "abl_pl_m", ["aliquīs", "aliquibus"]);
1112
+ data.notes.set("abl_pl_m1", note4);
1113
+ setNominalForm(data.forms, "abl_pl_f", ["aliquīs", "aliquibus"]);
1114
+ data.notes.set("abl_pl_f1", note4);
1115
+ setNominalForm(data.forms, "abl_pl_n", ["aliquīs", "aliquibus"]);
1116
+ data.notes.set("abl_pl_n1", note4);
1117
+ }
1118
+ else if (args[0] == "quis" || args[0] == "quī") {
1119
+ if (data.declOpts.useSimpleQuis) {
1120
+ let id = "id";
1121
+ if (args[0] == "quī") {
1122
+ id = "od";
1123
+ }
1124
+ data.title = "relative/interrogative pronoun";
1125
+ if (args[0] == "quī") {
1126
+ setNominalForm(data.forms, "nom_sg_m", ["quī"]);
1127
+ }
1128
+ else {
1129
+ setNominalForm(data.forms, "nom_sg_m", ["quis"]);
1130
+ }
1131
+ setNominalForm(data.forms, "nom_sg_f", ["quae"]);
1132
+ setNominalForm(data.forms, "nom_sg_n", ["qu" + id]);
1133
+ setNominalForm(data.forms, "nom_pl_m", ["quī"]);
1134
+ setNominalForm(data.forms, "nom_pl_f", ["quae"]);
1135
+ setNominalForm(data.forms, "nom_pl_n", ["quae"]);
1136
+ setNominalForm(data.forms, "acc_sg_m", ["quem"]);
1137
+ setNominalForm(data.forms, "acc_sg_f", ["quam"]);
1138
+ setNominalForm(data.forms, "acc_sg_n", ["qu" + id]);
1139
+ setNominalForm(data.forms, "acc_pl_m", ["quōs"]);
1140
+ setNominalForm(data.forms, "acc_pl_f", ["quās"]);
1141
+ setNominalForm(data.forms, "acc_pl_n", ["quae"]);
1142
+ setNominalForm(data.forms, "gen_sg_m", ["cuius"]);
1143
+ setNominalForm(data.forms, "gen_sg_f", ["cuius"]);
1144
+ setNominalForm(data.forms, "gen_sg_n", ["cuius"]);
1145
+ setNominalForm(data.forms, "gen_pl_m", ["quōrum"]);
1146
+ setNominalForm(data.forms, "gen_pl_f", ["quārum"]);
1147
+ setNominalForm(data.forms, "gen_pl_n", ["quōrum"]);
1148
+ setNominalForm(data.forms, "dat_sg_m", ["cui"]);
1149
+ setNominalForm(data.forms, "dat_sg_f", ["cui"]);
1150
+ setNominalForm(data.forms, "dat_sg_n", ["cui"]);
1151
+ setNominalForm(data.forms, "dat_pl_m", ["quibus"]);
1152
+ setNominalForm(data.forms, "dat_pl_f", ["quibus"]);
1153
+ setNominalForm(data.forms, "dat_pl_n", ["quibus"]);
1154
+ setNominalForm(data.forms, "abl_sg_m", ["quō"]);
1155
+ setNominalForm(data.forms, "abl_sg_f", ["quā"]);
1156
+ setNominalForm(data.forms, "abl_sg_n", ["quō"]);
1157
+ setNominalForm(data.forms, "abl_pl_m", ["quibus"]);
1158
+ setNominalForm(data.forms, "abl_pl_f", ["quibus"]);
1159
+ setNominalForm(data.forms, "abl_pl_n", ["quibus"]);
1160
+ data.voc = false;
1161
+ }
1162
+ else {
1163
+ const note1 = "'Qua' (with short 'ă') occurs only as an indefinite pronoun or determiner placed immediately after '[[si#Latin|sī]]', '[[ne#Latin|nē]]', or '[[num#Latin|num]]'. The combinations '[[siqua#Latin|sīqua]]', '[[nequa#Latin|nēqua]]', and '[[numqua#Latin|numqua]]' are sometimes written without spacing (as also are the masculines '[[siquis#Latin|sīquis]]', '[[nequis#Latin|nēquis]]' and '[[numquis#Latin|numquis]]'). Compare '[[aliquis#Latin|aliquis, aliqua, aliquid]]'. 'Quae' can also be used instead of 'quă'. 'Quă' is never used as an interrogative pronoun/determiner, relative pronoun/determiner, or feminine nominative plural.";
1164
+ const note2 = "In Republican Latin or earlier, alternative spellings could be found for the following forms of '[[qui#Latin|quī]]'/'[[quis#Latin|quis]]' and its compounds: the masculine nominative singular or plural 'quī' (old spelling '[[quei]]'), the genitive singular 'cuius' (old spelling '[[quoius]]'), the dative singular 'cui' (old spelling '[[quoi]]' or '[[quoiei]]'), the dative/ablative plural 'quīs' (old spelling '[[queis]]').";
1165
+ const note3 = "Feminine 'quis' and 'quem' are attested mainly in early Latin authors (Ennius, Pacuvius, and Plautus).";
1166
+ let id = "id";
1167
+ if (args[0] == "quī") {
1168
+ id = "od";
1169
+ setNominalForm(data.forms, "nom_sg_m", ["quī", "quis"]);
1170
+ setNominalForm(data.forms, "nom_sg_f", ["quae", "qua"]);
1171
+ setNominalForm(data.forms, "acc_sg_f", ["quam"]);
1172
+ setNominalForm(data.forms, "abl_sg_m", ["quō"]);
1173
+ setNominalForm(data.forms, "abl_sg_f", ["quā"]);
1174
+ setNominalForm(data.forms, "abl_sg_n", ["quō"]);
1175
+ data.notes.set("nom_sg_m1", note2);
1176
+ data.notes.set("nom_sg_f2", note1);
1177
+ }
1178
+ else {
1179
+ setNominalForm(data.forms, "nom_sg_m", ["quis", "quī"]);
1180
+ setNominalForm(data.forms, "nom_sg_f", ["quae", "qua", "quis"]);
1181
+ setNominalForm(data.forms, "acc_sg_f", ["quam", "quem"]);
1182
+ setNominalForm(data.forms, "abl_sg_m", ["quō", "quī"]);
1183
+ setNominalForm(data.forms, "abl_sg_f", ["quā", "quī"]);
1184
+ setNominalForm(data.forms, "abl_sg_n", ["quō", "quī"]);
1185
+ data.notes.set("nom_sg_m2", note2);
1186
+ data.notes.set("nom_sg_f2", note1);
1187
+ data.notes.set("nom_sg_f3", note3);
1188
+ data.notes.set("acc_sg_f2", note3);
1189
+ }
1190
+ data.title = args[0] == "quī" ? "relative/interrogative determiner" : "relative/interrogative pronoun";
1191
+ setNominalForm(data.forms, "nom_sg_n", ["qu" + id]);
1192
+ setNominalForm(data.forms, "nom_pl_m", ["quī"]);
1193
+ setNominalForm(data.forms, "nom_pl_f", ["quae"]);
1194
+ setNominalForm(data.forms, "nom_pl_n", ["quae", "qua"]);
1195
+ data.notes.set("nom_pl_m1", note2);
1196
+ data.notes.set("nom_pl_n2", note1);
1197
+ setNominalForm(data.forms, "gen_sg_m", ["cuius"]);
1198
+ setNominalForm(data.forms, "gen_sg_f", ["cuius"]);
1199
+ setNominalForm(data.forms, "gen_sg_n", ["cuius"]);
1200
+ setNominalForm(data.forms, "gen_pl_m", ["quōrum"]);
1201
+ setNominalForm(data.forms, "gen_pl_f", ["quārum"]);
1202
+ setNominalForm(data.forms, "gen_pl_n", ["quōrum"]);
1203
+ data.notes.set("gen_sg_m1", note2);
1204
+ data.notes.set("gen_sg_f1", note2);
1205
+ data.notes.set("gen_sg_n1", note2);
1206
+ setNominalForm(data.forms, "dat_sg_m", ["cui"]);
1207
+ setNominalForm(data.forms, "dat_sg_f", ["cui"]);
1208
+ setNominalForm(data.forms, "dat_sg_n", ["cui"]);
1209
+ data.notes.set("dat_sg_m1", note2);
1210
+ data.notes.set("dat_sg_f1", note2);
1211
+ data.notes.set("dat_sg_n1", note2);
1212
+ setNominalForm(data.forms, "dat_pl_m", ["quibus", "quīs"]);
1213
+ setNominalForm(data.forms, "dat_pl_f", ["quibus", "quīs"]);
1214
+ setNominalForm(data.forms, "dat_pl_n", ["quibus", "quīs"]);
1215
+ data.notes.set("dat_pl_m2", note2);
1216
+ data.notes.set("dat_pl_f2", note2);
1217
+ data.notes.set("dat_pl_n2", note2);
1218
+ setNominalForm(data.forms, "abl_pl_m", ["quibus", "quīs"]);
1219
+ setNominalForm(data.forms, "abl_pl_f", ["quibus", "quīs"]);
1220
+ setNominalForm(data.forms, "abl_pl_n", ["quibus", "quīs"]);
1221
+ data.notes.set("abl_pl_m2", note2);
1222
+ data.notes.set("abl_pl_f2", note2);
1223
+ data.notes.set("abl_pl_n2", note2);
1224
+ setNominalForm(data.forms, "acc_sg_m", ["quem"]);
1225
+ setNominalForm(data.forms, "acc_sg_n", ["qu" + id]);
1226
+ setNominalForm(data.forms, "acc_pl_m", ["quōs"]);
1227
+ setNominalForm(data.forms, "acc_pl_f", ["quās"]);
1228
+ setNominalForm(data.forms, "acc_pl_n", ["quae", "qua"]);
1229
+ data.notes.set("acc_pl_n2", note1);
1230
+ data.voc = false;
1231
+ }
1232
+ }
1233
+ else if (args[0] == "quisquam") {
1234
+ const note1 = "Only attested in postclassical Latin. In Classical Latin, forms of [[ullus#Latin|ūllus]] were used instead.";
1235
+ const note2 = "Only attested as a feminine form in the preclassical Latin of authors like Plautus.";
1236
+ const note3 = "Attested only once in Classical Latin. Usually [[ullus#Latin|ūllam]] was used instead.";
1237
+ const note4 = "Attested, but rare in Classical Latin. Usually [[ullus#Latin|ūllō]] was used instead.";
1238
+ data.title = "[[Appendix:Glossary#negative polarity item|negative polarity]] [[Appendix:Glossary#indefinite|indefinite]] [[Appendix:Glossary#determiner|determiner]]";
1239
+ setNominalForm(data.forms, "nom_sg_m", ["quisquam"]);
1240
+ setNominalForm(data.forms, "nom_sg_f", ["quaequam", "quisquam"]);
1241
+ data.notes.set("nom_sg_f1", note1);
1242
+ data.notes.set("nom_sg_f2", note2);
1243
+ setNominalForm(data.forms, "nom_sg_n", ["quodquam"]);
1244
+ data.notes.set("nom_sg_n1", note1);
1245
+ setNominalForm(data.forms, "nom_pl_m", ["quīquam"]);
1246
+ data.notes.set("nom_pl_m1", note1);
1247
+ setNominalForm(data.forms, "nom_pl_f", ["quaequam"]);
1248
+ data.notes.set("nom_pl_f1", note1);
1249
+ setNominalForm(data.forms, "nom_pl_n", ["quaequam"]);
1250
+ data.notes.set("nom_pl_n1", note1);
1251
+ setNominalForm(data.forms, "gen_sg_m", ["cuiusquam"]);
1252
+ setNominalForm(data.forms, "gen_sg_f", ["cuiusquam"]);
1253
+ setNominalForm(data.forms, "gen_sg_n", ["cuiusquam"]);
1254
+ setNominalForm(data.forms, "gen_pl_m", ["quōrumquam"]);
1255
+ data.notes.set("gen_pl_m1", note1);
1256
+ setNominalForm(data.forms, "gen_pl_f", ["quārumquam"]);
1257
+ data.notes.set("gen_pl_f1", note1);
1258
+ setNominalForm(data.forms, "gen_pl_n", ["quōrumquam"]);
1259
+ data.notes.set("gen_pl_n1", note1);
1260
+ setNominalForm(data.forms, "dat_sg_m", ["cuiquam"]);
1261
+ setNominalForm(data.forms, "dat_sg_f", ["cuiquam"]);
1262
+ setNominalForm(data.forms, "dat_sg_n", ["cuiquam"]);
1263
+ setNominalForm(data.forms, "dat_pl_m", ["quibusquam"]);
1264
+ data.notes.set("dat_pl_m1", note1);
1265
+ setNominalForm(data.forms, "dat_pl_f", ["quibusquam"]);
1266
+ data.notes.set("dat_pl_f1", note1);
1267
+ setNominalForm(data.forms, "dat_pl_n", ["quibusquam"]);
1268
+ data.notes.set("dat_pl_n1", note1);
1269
+ setNominalForm(data.forms, "acc_sg_m", ["quemquam"]);
1270
+ setNominalForm(data.forms, "acc_sg_f", ["quamquam", "quemquam"]);
1271
+ data.notes.set("acc_sg_f1", note3);
1272
+ data.notes.set("acc_sg_f2", note2);
1273
+ setNominalForm(data.forms, "acc_sg_n", ["quodquam"]);
1274
+ data.notes.set("acc_sg_n1", note1);
1275
+ setNominalForm(data.forms, "acc_pl_m", ["quōsquam"]);
1276
+ data.notes.set("acc_pl_m1", note1);
1277
+ setNominalForm(data.forms, "acc_pl_f", ["quāsquam"]);
1278
+ data.notes.set("acc_pl_f1", note1);
1279
+ setNominalForm(data.forms, "acc_pl_n", ["quaequam"]);
1280
+ data.notes.set("acc_pl_n1", note1);
1281
+ setNominalForm(data.forms, "abl_sg_m", ["quōquam", "quīquam"]);
1282
+ data.notes.set("abl_sg_m1", note4);
1283
+ data.notes.set("abl_sg_m2", note2);
1284
+ setNominalForm(data.forms, "abl_sg_f", ["quāquam"]);
1285
+ data.notes.set("abl_sg_f1", note1);
1286
+ setNominalForm(data.forms, "abl_sg_n", ["quōquam"]);
1287
+ data.notes.set("abl_sg_n1", note4);
1288
+ setNominalForm(data.forms, "abl_pl_m", ["quibusquam"]);
1289
+ data.notes.set("abl_pl_m1", note1);
1290
+ setNominalForm(data.forms, "abl_pl_f", ["quibusquam"]);
1291
+ data.notes.set("abl_pl_f1", note1);
1292
+ setNominalForm(data.forms, "abl_pl_n", ["quibusquam"]);
1293
+ data.notes.set("abl_pl_n1", note1);
1294
+ setNominalForm(data.forms, "voc_sg_m", ["quisquam"]);
1295
+ data.notes.set("voc_sg_m1", note1);
1296
+ setNominalForm(data.forms, "voc_sg_f", ["quaequam"]);
1297
+ data.notes.set("voc_sg_f1", note1);
1298
+ setNominalForm(data.forms, "voc_sg_n", ["quodquam"]);
1299
+ data.notes.set("voc_sg_n1", note1);
1300
+ setNominalForm(data.forms, "voc_pl_m", ["quīquam"]);
1301
+ data.notes.set("voc_pl_m1", note1);
1302
+ setNominalForm(data.forms, "voc_pl_f", ["quaequam"]);
1303
+ data.notes.set("voc_pl_f1", note1);
1304
+ setNominalForm(data.forms, "voc_pl_n", ["quaequam"]);
1305
+ data.notes.set("voc_pl_n1", note1);
1306
+ }
1307
+ else if (args[0] == "quisquis") {
1308
+ data.title = "relative/interrogative pronoun";
1309
+ setNominalForm(data.forms, "nom_sg_m", ["quisquis"]);
1310
+ setNominalForm(data.forms, "nom_sg_f", ["quisquis"]);
1311
+ if (!data.declOpts.suppressRareIrregForms) {
1312
+ setNominalForm(data.forms, "nom_sg_n", ["quidquid", "quicquid"]);
1313
+ setNominalForm(data.forms, "dat_pl_m", ["quibusquibus", "quīsquīs"]);
1314
+ setNominalForm(data.forms, "dat_pl_f", ["quibusquibus", "quīsquīs"]);
1315
+ setNominalForm(data.forms, "dat_pl_n", ["quibusquibus", "quīsquīs"]);
1316
+ setNominalForm(data.forms, "acc_sg_n", ["quidquid", "quicquid"]);
1317
+ setNominalForm(data.forms, "abl_pl_m", ["quibusquibus", "quīsquīs"]);
1318
+ setNominalForm(data.forms, "abl_pl_f", ["quibusquibus", "quīsquīs"]);
1319
+ setNominalForm(data.forms, "abl_pl_n", ["quibusquibus", "quīsquīs"]);
1320
+ setNominalForm(data.forms, "voc_sg_n", ["quidquid", "quicquid"]);
1321
+ }
1322
+ else {
1323
+ setNominalForm(data.forms, "nom_sg_n", ["quidquid"]);
1324
+ setNominalForm(data.forms, "dat_pl_m", ["quibusquibus"]);
1325
+ setNominalForm(data.forms, "dat_pl_f", ["quibusquibus"]);
1326
+ setNominalForm(data.forms, "dat_pl_n", ["quibusquibus"]);
1327
+ setNominalForm(data.forms, "acc_sg_n", ["quidquid"]);
1328
+ setNominalForm(data.forms, "abl_pl_m", ["quibusquibus"]);
1329
+ setNominalForm(data.forms, "abl_pl_f", ["quibusquibus"]);
1330
+ setNominalForm(data.forms, "abl_pl_n", ["quibusquibus"]);
1331
+ setNominalForm(data.forms, "voc_sg_n", ["quidquid"]);
1332
+ }
1333
+ setNominalForm(data.forms, "nom_pl_m", ["quīquī"]);
1334
+ setNominalForm(data.forms, "nom_pl_f", ["quaequae"]);
1335
+ setNominalForm(data.forms, "nom_pl_n", ["quaequae"]);
1336
+ setNominalForm(data.forms, "gen_sg_m", ["cuiuscuius"]);
1337
+ setNominalForm(data.forms, "gen_sg_f", ["cuiuscuius"]);
1338
+ setNominalForm(data.forms, "gen_sg_n", ["cuiuscuius"]);
1339
+ setNominalForm(data.forms, "gen_pl_m", ["quōrumquōrum"]);
1340
+ setNominalForm(data.forms, "gen_pl_f", ["quārumquārum"]);
1341
+ setNominalForm(data.forms, "gen_pl_n", ["quōrumquōrum"]);
1342
+ setNominalForm(data.forms, "dat_sg_m", ["cuicui"]);
1343
+ setNominalForm(data.forms, "dat_sg_f", ["cuicui"]);
1344
+ setNominalForm(data.forms, "dat_sg_n", ["cuicui"]);
1345
+ setNominalForm(data.forms, "acc_sg_m", ["quemquem"]);
1346
+ setNominalForm(data.forms, "acc_sg_f", ["quamquam"]);
1347
+ setNominalForm(data.forms, "acc_pl_m", ["quōsquōs"]);
1348
+ setNominalForm(data.forms, "acc_pl_f", ["quāsquās"]);
1349
+ setNominalForm(data.forms, "acc_pl_n", ["quaequae"]);
1350
+ setNominalForm(data.forms, "abl_sg_m", ["quōquō"]);
1351
+ setNominalForm(data.forms, "abl_sg_f", ["quāquā"]);
1352
+ setNominalForm(data.forms, "abl_sg_n", ["quōquō"]);
1353
+ setNominalForm(data.forms, "voc_sg_m", ["quisquis"]);
1354
+ setNominalForm(data.forms, "voc_sg_f", ["quisquis"]);
1355
+ setNominalForm(data.forms, "voc_pl_m", ["quīquī"]);
1356
+ setNominalForm(data.forms, "voc_pl_f", ["quaequae"]);
1357
+ setNominalForm(data.forms, "voc_pl_n", ["quaequae"]);
1358
+ data.voc = true;
1359
+ }
1360
+ else if (args[0] == "ecquis") {
1361
+ const note1 = "Unattested in classical Latin.";
1362
+ const note2 = "Attested only twice in Classical Latin.";
1363
+ data.title = "interrogative pronoun";
1364
+ setNominalForm(data.forms, "nom_sg_m", ["ecquis", "ecquī"]);
1365
+ setNominalForm(data.forms, "nom_sg_f", ["ecqua", "ecquae"]);
1366
+ setNominalForm(data.forms, "nom_sg_n", ["ecquid"]);
1367
+ setNominalForm(data.forms, "nom_pl_m", ["ecquī"]);
1368
+ setNominalForm(data.forms, "nom_pl_f", ["ecquae"]);
1369
+ setNominalForm(data.forms, "nom_pl_n", ["ecqua", "ecquae"]);
1370
+ setNominalForm(data.forms, "gen_sg_m", ["eccuius"]);
1371
+ setNominalForm(data.forms, "gen_sg_f", ["eccuius"]);
1372
+ setNominalForm(data.forms, "gen_sg_n", ["eccuius"]);
1373
+ data.notes.set("gen_sg_m1", note1);
1374
+ data.notes.set("gen_sg_f1", note1);
1375
+ data.notes.set("gen_sg_n1", note1);
1376
+ setNominalForm(data.forms, "dat_sg_m", ["eccui"]);
1377
+ setNominalForm(data.forms, "dat_sg_f", ["eccui"]);
1378
+ setNominalForm(data.forms, "dat_sg_n", ["eccui"]);
1379
+ data.notes.set("dat_sg_m1", note2);
1380
+ data.notes.set("dat_sg_f1", note2);
1381
+ data.notes.set("dat_sg_n1", note2);
1382
+ setNominalForm(data.forms, "acc_sg_m", ["ecquem"]);
1383
+ setNominalForm(data.forms, "acc_sg_f", ["ecquam"]);
1384
+ setNominalForm(data.forms, "acc_sg_n", ["ecquod"]);
1385
+ setNominalForm(data.forms, "acc_pl_m", ["ecquōs"]);
1386
+ setNominalForm(data.forms, "acc_pl_f", ["ecquās"]);
1387
+ setNominalForm(data.forms, "acc_pl_n", ["ecqua", "ecquae"]);
1388
+ setNominalForm(data.forms, "abl_sg_m", ["ecquō", "ecquī"]);
1389
+ setNominalForm(data.forms, "abl_sg_f", ["ecquā", "ecquī"]);
1390
+ setNominalForm(data.forms, "abl_sg_n", ["ecquō", "ecquī"]);
1391
+ }
1392
+ else if (args[0] == "quīdam") {
1393
+ const note1 = "The genitive singular was spelled '[[quoiusdam#Latin|quoiusdam]]' before the Augustan period.";
1394
+ const note2 = "The dative singular was spelled '[[quoidam#Latin|quoidam]]' before the Augustan period.";
1395
+ const note3 = "An alternative masculine nominative/accusative plural form '[[quesdam#Latin|quēsdam]]' occurs in Accius.";
1396
+ const note4 = "The dative/ablative plural has a rare alternative form '[[quisdam#Latin|quīsdam]]'/'[[queisdam#Latin|queisdam]]'.";
1397
+ data.title = "indefinite pronoun";
1398
+ setNominalForm(data.forms, "nom_sg_m", ["quīdam"]);
1399
+ setNominalForm(data.forms, "nom_sg_f", ["quaedam"]);
1400
+ setNominalForm(data.forms, "nom_sg_n", ["quiddam"]);
1401
+ setNominalForm(data.forms, "nom_pl_m", ["quīdam"]);
1402
+ data.notes.set("nom_pl_m1", note3);
1403
+ setNominalForm(data.forms, "nom_pl_f", ["quaedam"]);
1404
+ setNominalForm(data.forms, "nom_pl_n", ["quaedam"]);
1405
+ setNominalForm(data.forms, "gen_sg_m", ["cuiusdam"]);
1406
+ setNominalForm(data.forms, "gen_sg_f", ["cuiusdam"]);
1407
+ setNominalForm(data.forms, "gen_sg_n", ["cuiusdam"]);
1408
+ data.notes.set("gen_sg_m1", note1);
1409
+ data.notes.set("gen_sg_f1", note1);
1410
+ data.notes.set("gen_sg_n1", note1);
1411
+ setNominalForm(data.forms, "gen_pl_m", ["quōrundam", "quōrumdam"]);
1412
+ setNominalForm(data.forms, "gen_pl_f", ["quārundam", "quārumdam"]);
1413
+ setNominalForm(data.forms, "gen_pl_n", ["quōrundam", "quōrumdam"]);
1414
+ setNominalForm(data.forms, "dat_sg_m", ["cuidam"]);
1415
+ setNominalForm(data.forms, "dat_sg_f", ["cuidam"]);
1416
+ setNominalForm(data.forms, "dat_sg_n", ["cuidam"]);
1417
+ data.notes.set("dat_sg_m1", note2);
1418
+ data.notes.set("dat_sg_f1", note2);
1419
+ data.notes.set("dat_sg_n1", note2);
1420
+ setNominalForm(data.forms, "dat_pl_m", ["quibusdam"]);
1421
+ setNominalForm(data.forms, "dat_pl_f", ["quibusdam"]);
1422
+ setNominalForm(data.forms, "dat_pl_n", ["quibusdam"]);
1423
+ data.notes.set("dat_pl_m1", note4);
1424
+ data.notes.set("dat_pl_f1", note4);
1425
+ data.notes.set("dat_pl_n1", note4);
1426
+ setNominalForm(data.forms, "acc_sg_m", ["quendam", "quemdam"]);
1427
+ setNominalForm(data.forms, "acc_sg_f", ["quandam", "quamdam"]);
1428
+ setNominalForm(data.forms, "acc_sg_n", ["quiddam"]);
1429
+ setNominalForm(data.forms, "acc_pl_m", ["quōsdam"]);
1430
+ data.notes.set("acc_pl_m1", note3);
1431
+ setNominalForm(data.forms, "acc_pl_f", ["quāsdam"]);
1432
+ setNominalForm(data.forms, "acc_pl_n", ["quaedam"]);
1433
+ setNominalForm(data.forms, "abl_sg_m", ["quōdam"]);
1434
+ setNominalForm(data.forms, "abl_sg_f", ["quādam"]);
1435
+ setNominalForm(data.forms, "abl_sg_n", ["quōdam"]);
1436
+ setNominalForm(data.forms, "abl_pl_m", ["quibusdam"]);
1437
+ setNominalForm(data.forms, "abl_pl_f", ["quibusdam"]);
1438
+ setNominalForm(data.forms, "abl_pl_n", ["quibusdam"]);
1439
+ data.notes.set("abl_pl_m1", note4);
1440
+ data.notes.set("abl_pl_f1", note4);
1441
+ data.notes.set("abl_pl_n1", note4);
1442
+ }
1443
+ else if (args[0] == "nēmō") {
1444
+ const note1 = "The genitive 'nēminis' is not used in Classical Latin, and is generally also avoided by later authors.";
1445
+ const note2 = "The ablative 'nēmine' is not used in Classical Latin, but can be seen in authors from the Imperial period onwards.";
1446
+ data.title = "Negative pronoun and [[Appendix:Glossary#determiner|determiner]]";
1447
+ setNominalForm(data.forms, "nom_sg_m", ["nēmō"]);
1448
+ setNominalForm(data.forms, "nom_sg_f", ["nēmō"]);
1449
+ setNominalForm(data.forms, "gen_sg_m", ["nūllī̆us", "nēminis"]);
1450
+ setNominalForm(data.forms, "gen_sg_f", ["nūllī̆us", "nēminis"]);
1451
+ data.notes.set("gen_sg_m2", note1);
1452
+ data.notes.set("gen_sg_f2", note1);
1453
+ setNominalForm(data.forms, "dat_sg_m", ["nēminī"]);
1454
+ setNominalForm(data.forms, "dat_sg_f", ["nēminī"]);
1455
+ setNominalForm(data.forms, "acc_sg_m", ["nēminem"]);
1456
+ setNominalForm(data.forms, "acc_sg_f", ["nēminem"]);
1457
+ setNominalForm(data.forms, "abl_sg_m", ["nūllō", "nēmine"]);
1458
+ setNominalForm(data.forms, "abl_sg_f", ["nūllā", "nēmine"]);
1459
+ data.notes.set("abl_sg_m2", note2);
1460
+ data.notes.set("abl_sg_f2", note2);
1461
+ }
1462
+ else {
1463
+ throw Error(`Adjective '${args[0]}' not recognized`);
1464
+ }
1465
+ }],
1466
+ ]);
1467
+ function singularize(plural) {
1468
+ if (plural.match(/xes$/) || plural.match(/[cs]hes$/)) {
1469
+ return plural.replace(/es$/, "");
1470
+ }
1471
+ else {
1472
+ return plural.replace(/s$/, "");
1473
+ }
1474
+ }