@movnia/strii-slova 0.0.2

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 (43) hide show
  1. package/.eslintrc.cjs +1 -0
  2. package/README.md +0 -0
  3. package/package.json +47 -0
  4. package/tsconfig.json +26 -0
  5. package//320/267/320/261/321/226/321/200/320/272/320/260/tsconfig.tsbuildinfo +1 -0
  6. package//320/267/320/261/321/226/321/200/320/272/320/260//320/262/320/270/320/264/320/270.d.ts +21 -0
  7. package//320/267/320/261/321/226/321/200/320/272/320/260//320/262/320/270/320/264/320/270.js +2 -0
  8. package//320/267/320/261/321/226/321/200/320/272/320/260//320/262/320/270/320/264/320/270.js.map +1 -0
  9. package//320/267/320/261/321/226/321/200/320/272/320/260//320/263/320/276/320/273/320/276/320/262/320/260.d.ts +11 -0
  10. package//320/267/320/261/321/226/321/200/320/272/320/260//320/263/320/276/320/273/320/276/320/262/320/260.js +21 -0
  11. package//320/267/320/261/321/226/321/200/320/272/320/260//320/263/320/276/320/273/320/276/320/262/320/260.js.map +1 -0
  12. package//320/267/320/261/321/226/321/200/320/272/320/260//320/276/320/261/321/200/320/276/320/261/320/275/321/226.d.ts +18 -0
  13. package//320/267/320/261/321/226/321/200/320/272/320/260//320/276/320/261/321/200/320/276/320/261/320/275/321/226.js +192 -0
  14. package//320/267/320/261/321/226/321/200/320/272/320/260//320/276/320/261/321/200/320/276/320/261/320/275/321/226.js.map +1 -0
  15. package//320/267/320/261/321/226/321/200/320/272/320/260//320/277/320/265/321/200/320/265/320/264/321/207/320/265/320/277/320/270.d.ts +8 -0
  16. package//320/267/320/261/321/226/321/200/320/272/320/260//320/277/320/265/321/200/320/265/320/264/321/207/320/265/320/277/320/270.js +156 -0
  17. package//320/267/320/261/321/226/321/200/320/272/320/260//320/277/320/265/321/200/320/265/320/264/321/207/320/265/320/277/320/270.js.map +1 -0
  18. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/320/265/321/200/320/265/320/264/321/207/320/265/320/277/321/226/320/262//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/320/265/321/200/320/265/320/264/321/207/320/265/320/277/321/226/320/262.d.ts +9 -0
  19. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/320/265/321/200/320/265/320/264/321/207/320/265/320/277/321/226/320/262//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/320/265/321/200/320/265/320/264/321/207/320/265/320/277/321/226/320/262.js +63 -0
  20. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/320/265/321/200/320/265/320/264/321/207/320/265/320/277/321/226/320/262//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/320/265/321/200/320/265/320/264/321/207/320/265/320/277/321/226/320/262.js.map +1 -0
  21. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/320/265/321/200/320/265/320/264/321/207/320/265/320/277/321/226/320/262//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/321/207/320/265/321/200/320/277/320/260/320/275/320/270/321/205-/320/277/320/265/321/200/320/265/320/264/321/207/320/265/320/277/321/226/320/262.txt +27 -0
  22. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/321/200/320/270/321/207/320/265/320/277/320/275/320/270/321/205-/320/276/321/201/320/275/320/276/320/262//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/321/200/320/270/321/207/320/265/320/277/320/275/320/270/321/205-/320/276/321/201/320/275/320/276/320/262.d.ts +3 -0
  23. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/321/200/320/270/321/207/320/265/320/277/320/275/320/270/321/205-/320/276/321/201/320/275/320/276/320/262//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/321/200/320/270/321/207/320/265/320/277/320/275/320/270/321/205-/320/276/321/201/320/275/320/276/320/262.js +18 -0
  24. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/321/200/320/270/321/207/320/265/320/277/320/275/320/270/321/205-/320/276/321/201/320/275/320/276/320/262//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/321/200/320/270/321/207/320/265/320/277/320/275/320/270/321/205-/320/276/321/201/320/275/320/276/320/262.js.map +1 -0
  25. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/321/200/320/270/321/207/320/265/320/277/320/275/320/270/321/205-/320/276/321/201/320/275/320/276/320/262//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/321/207/320/265/321/200/320/277/320/260/320/275/320/270/321/205-/320/277/321/200/320/270/321/207/320/265/320/277/320/275/320/270/321/205-/320/276/321/201/320/275/320/276/320/262.txt +110 -0
  26. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/320/273/320/276/320/262/320/276-/320/262-/321/201/321/202/321/200/321/226/320/271.d.ts +5 -0
  27. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/320/273/320/276/320/262/320/276-/320/262-/321/201/321/202/321/200/321/226/320/271.js +227 -0
  28. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/320/273/320/276/320/262/320/276-/320/262-/321/201/321/202/321/200/321/226/320/271.js.map +1 -0
  29. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/320/260/320/273/321/226.d.ts +2 -0
  30. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/320/260/320/273/321/226.js +13 -0
  31. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/320/260/320/273/321/226.js.map +1 -0
  32. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/320/262/320/276/321/200/320/265/320/275/320/275/321/217-/321/201/320/273/320/276/320/262/320/275/320/270/320/272/320/260-/321/201/321/202/321/200/320/276/321/227/320/262//320/267/320/260/320/277/320/270/321/202/320/270.d.ts +1 -0
  33. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/320/262/320/276/321/200/320/265/320/275/320/275/321/217-/321/201/320/273/320/276/320/262/320/275/320/270/320/272/320/260-/321/201/321/202/321/200/320/276/321/227/320/262//320/267/320/260/320/277/320/270/321/202/320/270.js +10 -0
  34. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/320/262/320/276/321/200/320/265/320/275/320/275/321/217-/321/201/320/273/320/276/320/262/320/275/320/270/320/272/320/260-/321/201/321/202/321/200/320/276/321/227/320/262//320/267/320/260/320/277/320/270/321/202/320/270.js.map +1 -0
  35. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/320/262/320/276/321/200/320/265/320/275/320/275/321/217-/321/201/320/273/320/276/320/262/320/275/320/270/320/272/320/260-/321/201/321/202/321/200/320/276/321/227/320/262//321/200/321/203/321/207/320/270/321/202/320/270-/321/201/320/273/320/276/320/262/320/275/320/270/320/272-/321/201/321/202/321/200/320/276/321/227/320/262./320/277/321/200/320/270/320/277/320/270/321/201.d.ts +2 -0
  36. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/320/262/320/276/321/200/320/265/320/275/320/275/321/217-/321/201/320/273/320/276/320/262/320/275/320/270/320/272/320/260-/321/201/321/202/321/200/320/276/321/227/320/262//321/200/321/203/321/207/320/270/321/202/320/270-/321/201/320/273/320/276/320/262/320/275/320/270/320/272-/321/201/321/202/321/200/320/276/321/227/320/262./320/277/321/200/320/270/320/277/320/270/321/201.js +77 -0
  37. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/320/262/320/276/321/200/320/265/320/275/320/275/321/217-/321/201/320/273/320/276/320/262/320/275/320/270/320/272/320/260-/321/201/321/202/321/200/320/276/321/227/320/262//321/200/321/203/321/207/320/270/321/202/320/270-/321/201/320/273/320/276/320/262/320/275/320/270/320/272-/321/201/321/202/321/200/320/276/321/227/320/262./320/277/321/200/320/270/320/277/320/270/321/201.js.map +1 -0
  38. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/320/262/320/276/321/200/320/265/320/275/320/275/321/217-/321/201/320/273/320/276/320/262/320/275/320/270/320/272/320/260-/321/201/321/202/321/200/320/276/321/227/320/262//321/201/320/273/320/276/320/262/320/275/320/270/320/272-/320/277/321/200/320/276/320/277/320/270/321/201/320/260/320/275/320/270/321/205-/321/201/321/202/321/200/320/276/321/227/320/262.txt +29 -0
  39. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/321/200/321/226/321/207/320/272/320/260-/321/201/321/202/321/200/320/276/321/216.d.ts +12 -0
  40. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/321/200/321/226/321/207/320/272/320/260-/321/201/321/202/321/200/320/276/321/216.js +100 -0
  41. package//320/267/320/261/321/226/321/200/320/272/320/260//321/201/321/202/321/200/321/226/321/207/320/272/320/260-/321/201/321/202/321/200/320/276/321/216.js.map +1 -0
  42. package//320/277/321/200/320/270/320/277/320/270/321/201/320/270//321/200/321/203/321/207/320/270/321/202/320/270-/321/201/320/273/320/276/320/262/320/275/320/270/320/272-/321/207/320/265/321/200/320/277/320/260/320/275/320/270/321/205-/320/277/320/265/321/200/320/265/320/264/321/207/320/265/320/277/321/226/320/262.ts +32 -0
  43. package//320/277/321/200/320/270/320/277/320/270/321/201/320/270//321/200/321/203/321/207/320/270/321/202/320/270-/321/201/320/273/320/276/320/262/320/275/320/270/320/272-/321/207/320/265/321/200/320/277/320/260/320/275/320/270/321/205-/320/277/321/200/320/270/321/207/320/265/320/277/320/275/320/270/321/205-/320/276/321/201/320/275/320/276/320/262.ts +36 -0
@@ -0,0 +1,227 @@
1
+ import { ВерстваСлів, ОзнакаСлова, ЧастинаМови, } from '@movnia/spilne';
2
+ import { Черпаність, статтяПоИстцю } from '@movnia/ystoslivia';
3
+ import { вПередчепиСлова } from './передчепи.js';
4
+ import { ДОДАТКОВІ_КОРЕНІ, ПІСЛЯРОСТКИ } from './сталі.js';
5
+ import { обрізатиПервиннийСтрійОснови, спільнийКоріньПоВідмінках, коріньПоСтаттіИстця, } from './обробні.js';
6
+ import { витягЧерпанихПричепнихОснов } from './словник-причепних-основ/словник-причепних-основ.js';
7
+ export { стрійВСлово, стрійОсновиВСлово, узгодитиПередчепДоСлова, стрійВБуквостан, спільнеЗакінчення, } from './обробні.js';
8
+ export function словоВСтрій(сзВуз, { ознаки, верства, }) {
9
+ const частинаМови = сзВуз.дані.частинаМови;
10
+ const чиРозбиратиОсновуСлова = визначитиЧиРозбиратиОсновуСлова({
11
+ частинаМови,
12
+ ознаки,
13
+ верства,
14
+ });
15
+ const пСтрійСлова = первиннийСтрійСлова(сзВуз);
16
+ const стрійОснов = пСтрійСлова.основи.map((пСтрійОснови) => {
17
+ return стрійОсновиСлова(пСтрійОснови, сзВуз.первиннаСз.слово, частинаМови, чиРозбиратиОсновуСлова);
18
+ });
19
+ const стрій = {
20
+ основи: стрійОснов,
21
+ сполучникиОснов: пСтрійСлова.сполучникиОснов,
22
+ закінчення: пСтрійСлова.закінчення,
23
+ післячепи: пСтрійСлова.післячепи,
24
+ };
25
+ return стрій;
26
+ }
27
+ function стрійОсновиСлова(первиннийСтрійОснови, первиннеСлово, частинаМови, чиРозбиратиОсновуСлова) {
28
+ if (!чиРозбиратиОсновуСлова) {
29
+ return {
30
+ передчепи: [],
31
+ корінь: первиннийСтрійОснови.основа,
32
+ начепи: [],
33
+ основа: первиннийСтрійОснови.основа,
34
+ };
35
+ }
36
+ let { передчепи, залишок } = вПередчепиСлова(первиннийСтрійОснови, {
37
+ частинаМови,
38
+ });
39
+ if (залишок.length === 0) {
40
+ передчепи = [];
41
+ залишок = первиннийСтрійОснови.основа + первиннийСтрійОснови.рештаСлова;
42
+ }
43
+ const { начепи, залишок: залишок2 } = начепиСлова(обрізатиПервиннийСтрійОснови(первиннийСтрійОснови, передчепи.join('').length), первиннеСлово);
44
+ if (залишок2.length === 0)
45
+ throw new Error(`Залишок2 менший за решту слова. Основа: ${первиннийСтрійОснови.основа}.`);
46
+ const корінь = залишок2;
47
+ if (корінь.length === 0)
48
+ throw new Error('Корінь відсутній');
49
+ return {
50
+ передчепи,
51
+ корінь,
52
+ начепи,
53
+ основа: первиннийСтрійОснови.основа,
54
+ };
55
+ }
56
+ function первиннийСтрійСлова(сзВуз) {
57
+ const можлДовжПісляростка = ПІСЛЯРОСТКИ
58
+ .find((прки) => сзВуз.словозміни.every((сз) => прки.some((пр) => сз.слово.endsWith(пр))))
59
+ ?.at(0)?.length;
60
+ const словозміниБезПісляростка = сзВуз.словозміни.map((сз) => можлДовжПісляростка !== undefined
61
+ ? сз.слово.slice(0, -можлДовжПісляростка)
62
+ : сз.слово);
63
+ const первиннеСлово = сзВуз.первиннаСз.слово;
64
+ const словоБезПісляростка = можлДовжПісляростка !== undefined
65
+ ? первиннеСлово.slice(0, -можлДовжПісляростка)
66
+ : первиннеСлово;
67
+ let загальнаОснова = спільнийКоріньПоВідмінках(словоБезПісляростка, словозміниБезПісляростка, первиннеСлово);
68
+ if (сзВуз.дані.частинаМови !== ЧастинаМови.ДІЄСЛОВО &&
69
+ словоБезПісляростка.length - загальнаОснова.length > 4)
70
+ загальнаОснова = словоБезПісляростка;
71
+ const другоряднаОснова = можлДовжПісляростка !== undefined
72
+ ? первиннеСлово.slice(-можлДовжПісляростка)
73
+ : null;
74
+ const закінчення = словоБезПісляростка.slice(загальнаОснова.length);
75
+ const післячепи = другоряднаОснова ? [другоряднаОснова] : [];
76
+ const розбірОснов = первиннийСтрійОснов(загальнаОснова, закінчення, первиннеСлово);
77
+ return {
78
+ ...розбірОснов,
79
+ післячепи,
80
+ закінчення,
81
+ };
82
+ }
83
+ function первиннийСтрійОснов(головнаОснова, закінчення, тежнеПервиннеСлово) {
84
+ const пСтрійОснов = первиннийСтрійОсновПоРозділці({
85
+ основа: головнаОснова,
86
+ рештаСлова: закінчення,
87
+ тежнеПервиннеЗРештою: тежнеПервиннеСлово,
88
+ });
89
+ for (const [вк, ПервиннийСтрійОснови] of пСтрійОснов.основи.entries()) {
90
+ const розбірПоЧерпанихПричепнихОсновах = первиннийСтрійОсновПоЧерпанихПричепнихОсновах(ПервиннийСтрійОснови);
91
+ пСтрійОснов.основи.splice(вк, 1, ...розбірПоЧерпанихПричепнихОсновах.основи);
92
+ пСтрійОснов.сполучникиОснов.splice(вк, 0, ...розбірПоЧерпанихПричепнихОсновах.сполучникиОснов);
93
+ }
94
+ return пСтрійОснов;
95
+ }
96
+ function первиннийСтрійОсновПоРозділці(пСО) {
97
+ const всказТире = пСО.основа.indexOf('-');
98
+ const всказТиреПервинне = пСО.основа.indexOf('-');
99
+ if (всказТире > 0 && всказТире < пСО.основа.length - 1) {
100
+ const розбірЛіве = первиннийСтрійОсновПоРозділці({
101
+ основа: пСО.основа.slice(0, всказТире),
102
+ рештаСлова: пСО.основа.slice(всказТире + 1) + пСО.рештаСлова,
103
+ тежнеПервиннеЗРештою: пСО.тежнеПервиннеЗРештою,
104
+ });
105
+ const розбірПраве = первиннийСтрійОсновПоРозділці({
106
+ основа: пСО.основа.slice(всказТире + 1),
107
+ рештаСлова: пСО.рештаСлова,
108
+ тежнеПервиннеЗРештою: пСО.тежнеПервиннеЗРештою.slice(всказТиреПервинне + 1),
109
+ });
110
+ return {
111
+ основи: [...розбірЛіве.основи, ...розбірПраве.основи],
112
+ сполучникиОснов: [
113
+ ...розбірЛіве.сполучникиОснов,
114
+ '-',
115
+ ...розбірПраве.сполучникиОснов,
116
+ ],
117
+ };
118
+ }
119
+ else {
120
+ return {
121
+ основи: [пСО],
122
+ сполучникиОснов: [],
123
+ };
124
+ }
125
+ }
126
+ function первиннийСтрійОсновПоЧерпанихПричепнихОсновах(пСО) {
127
+ const статтяИстцяОснови = статтяПоИстцю(пСО.тежнеПервиннеЗРештою);
128
+ if (!статтяИстцяОснови ||
129
+ статтяИстцяОснови.черпаність === Черпаність.ЧЕРПАНЕ) {
130
+ const черпаніПричепніОснови = витягЧерпанихПричепнихОснов({
131
+ хухритиПоСпаданню: true,
132
+ });
133
+ const пОсновиПоЧПО = [];
134
+ let рештаОснови = пСО.основа;
135
+ let тежнеПервиннеЗРештою = пСО.тежнеПервиннеЗРештою;
136
+ while (true) {
137
+ const чПОснова = черпаніПричепніОснови.find((о) => рештаОснови.startsWith(о));
138
+ if (чПОснова) {
139
+ пОсновиПоЧПО.push({
140
+ основа: чПОснова,
141
+ рештаСлова: рештаОснови.slice(чПОснова.length) + пСО.рештаСлова,
142
+ тежнеПервиннеЗРештою: тежнеПервиннеЗРештою,
143
+ });
144
+ тежнеПервиннеЗРештою = тежнеПервиннеЗРештою.slice(чПОснова.length);
145
+ рештаОснови = рештаОснови.slice(чПОснова.length);
146
+ }
147
+ else {
148
+ break;
149
+ }
150
+ }
151
+ const пОснови = рештаОснови === ''
152
+ ? пОсновиПоЧПО
153
+ : [
154
+ ...пОсновиПоЧПО,
155
+ {
156
+ основа: рештаОснови,
157
+ рештаСлова: пСО.рештаСлова,
158
+ тежнеПервиннеЗРештою: тежнеПервиннеЗРештою,
159
+ },
160
+ ];
161
+ return {
162
+ основи: пОснови,
163
+ сполучникиОснов: пОснови.slice(1).map(() => ''),
164
+ };
165
+ }
166
+ else {
167
+ return {
168
+ основи: [пСО],
169
+ сполучникиОснов: [],
170
+ };
171
+ }
172
+ }
173
+ function визначитиЧиРозбиратиОсновуСлова({ частинаМови, ознаки, верства, }) {
174
+ return ([
175
+ ЧастинаМови.ІМЕННИК,
176
+ ЧастинаМови.ДІЄСЛОВО,
177
+ ЧастинаМови.ПРИКМЕТНИК,
178
+ ЧастинаМови.ПРИСЛІВНИК,
179
+ ЧастинаМови.ДІЄПРИСЛІВНИК,
180
+ ].includes(частинаМови) &&
181
+ ознаки.every((ознака) => {
182
+ return ![
183
+ ОзнакаСлова.ІМЯ,
184
+ ОзнакаСлова.ПРІЗВИЩЕ,
185
+ ОзнакаСлова.ПО_БАТЬКОВІ,
186
+ ОзнакаСлова.МІСЦЕЙМЕННИК,
187
+ ОзнакаСлова.ВЛАСНА_НАЗВА,
188
+ ОзнакаСлова.СКОРОЧЕННЯ,
189
+ ].includes(ознака);
190
+ }) &&
191
+ (верства ? верства === ВерстваСлів.ДІЄПРИКМЕТНИКИ : true));
192
+ }
193
+ function начепиСлова(ПервиннийСтрійОснови, первиннеСлово) {
194
+ const { начепи, залишок } = начепиСловаЧерезСтаттюИстця(ПервиннийСтрійОснови, первиннеСлово);
195
+ for (const дКорінь of ДОДАТКОВІ_КОРЕНІ) {
196
+ const корінь = спільнийКоріньПоВідмінках(залишок, [залишок, дКорінь], первиннеСлово);
197
+ if (корінь &&
198
+ корінь.length === дКорінь.length &&
199
+ корінь.length > 0 &&
200
+ залишок.length > корінь.length) {
201
+ return {
202
+ начепи: [залишок.slice(корінь.length), ...начепи],
203
+ залишок: корінь,
204
+ };
205
+ }
206
+ }
207
+ return { начепи, залишок };
208
+ }
209
+ function начепиСловаЧерезСтаттюИстця(ПервиннийСтрійОснови, первиннеСлово) {
210
+ const статтяИстцяОснови = статтяПоИстцю(первиннеСлово);
211
+ if (!статтяИстцяОснови) {
212
+ return { начепи: [], залишок: ПервиннийСтрійОснови.основа };
213
+ }
214
+ const корінь = коріньПоСтаттіИстця(ПервиннийСтрійОснови.основа, статтяИстцяОснови);
215
+ if (корінь.length <= 1)
216
+ return { начепи: [], залишок: ПервиннийСтрійОснови.основа };
217
+ const коріньПоч = ПервиннийСтрійОснови.основа.indexOf(корінь);
218
+ const начепиСтрічка = ПервиннийСтрійОснови.основа.slice(коріньПоч + корінь.length);
219
+ if (начепиСтрічка === '')
220
+ return { начепи: [], залишок: ПервиннийСтрійОснови.основа };
221
+ else
222
+ return {
223
+ начепи: [начепиСтрічка],
224
+ залишок: ПервиннийСтрійОснови.основа.slice(0, коріньПоч + корінь.length),
225
+ };
226
+ }
227
+ //# sourceMappingURL=%D1%81%D0%BB%D0%BE%D0%B2%D0%BE-%D0%B2-%D1%81%D1%82%D1%80%D1%96%D0%B9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"слово-в-стрій.js","sourceRoot":"","sources":["../чит/слово-в-стрій.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const ДОДАТКОВІ_КОРЕНІ: string[];
2
+ export declare const ПІСЛЯРОСТКИ: string[][];
@@ -0,0 +1,13 @@
1
+ export const ДОДАТКОВІ_КОРЕНІ = ['єкт', 'юнк'];
2
+ export const ПІСЛЯРОСТКИ = [
3
+ ['-но'],
4
+ ['-небудь'],
5
+ ['-бо'],
6
+ ['-де'],
7
+ ['-як'],
8
+ ['-то'],
9
+ ['-от'],
10
+ ['-таки'],
11
+ ['ся', 'сь', 'си', 'сі'],
12
+ ];
13
+ //# sourceMappingURL=%D1%81%D1%82%D0%B0%D0%BB%D1%96.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"сталі.js","sourceRoot":"","sources":["../чит/сталі.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAG/C,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,CAAC,KAAK,CAAC;IACP,CAAC,SAAS,CAAC;IACX,CAAC,KAAK,CAAC;IACP,CAAC,KAAK,CAAC;IACP,CAAC,KAAK,CAAC;IACP,CAAC,KAAK,CAAC;IACP,CAAC,KAAK,CAAC;IACP,CAAC,OAAO,CAAC;IACT,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACzB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const запитСтворенняСустатіCC = "\n CREATE TABLE \"\u0421\u0442\u0440\u043E\u0457\" (\n \"\u0442\u0435\u0437\u044C\" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n \"\u0441\u043B\u043E\u0432\u043E\" TEXT NOT NULL,\n \"\u0441\u0442\u0440\u0456\u0439\" TEXT NOT NULL\n );\n\n CREATE INDEX \"\u0421\u0442\u0440\u043E\u0457_\u0441\u043B\u043E\u0432\u043E_\u0432\u0441\u043A\u0430\u0437\" ON \"\u0421\u0442\u0440\u043E\u0457\"(\"\u0441\u043B\u043E\u0432\u043E\");\n ";
@@ -0,0 +1,10 @@
1
+ export const запитСтворенняСустатіCC = `
2
+ CREATE TABLE "Строї" (
3
+ "тезь" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
4
+ "слово" TEXT NOT NULL,
5
+ "стрій" TEXT NOT NULL
6
+ );
7
+
8
+ CREATE INDEX "Строї_слово_всказ" ON "Строї"("слово");
9
+ `;
10
+ //# sourceMappingURL=%D0%B7%D0%B0%D0%BF%D0%B8%D1%82%D0%B8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"запити.js","sourceRoot":"","sources":["../../чит/створення-словника-строїв/запити.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;GAQpC,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { readFileSync } from 'fs';
2
+ import { dirname, resolve } from 'path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import Sqlite3 from 'better-sqlite3';
5
+ import { вТваровийРС, ськатиСловотвар } from '@movnia/tvarovyi-slovnyk';
6
+ import { вСловозміниЗВузом } from '@movnia/slovozminennia';
7
+ import { витягСніпниціПідхову, створитиСніповийПідхів, } from '@movnia/spilne/node';
8
+ import { створитиСховок, стПірописець, сховокРучитиТаВитягти, } from '@movnia/spilne';
9
+ import { словоВСтрій } from '../слово-в-стрій.js';
10
+ import { рядокСтроївВСтрої, стрійВРядокСтрою } from '../стрічка-строю.js';
11
+ import { запитСтворенняСустатіCC } from './запити.js';
12
+ const словникПрописанихСтроїв = readFileSync(resolve(dirname(fileURLToPath(import.meta.url)), './словник-прописаних-строїв.txt'), 'utf-8')
13
+ .split('\n')
14
+ .map((с) => с.trim());
15
+ const пірописець = стПірописець('словник-строїв');
16
+ const підхівнаСніпниця = витягСніпниціПідхову('мовня/словник-строїв');
17
+ const сховок = створитиСховок(створитиСніповийПідхів(підхівнаСніпниця));
18
+ export async function ручитиСловникСтроїв() {
19
+ const словникСтроївДані = await сховокРучитиТаВитягти('словник-строїв', 7 * 24 * 60 * 60 * 1000, () => створитиСловникСтроїв(), сховок, пірописець);
20
+ return new Sqlite3(словникСтроївДані);
21
+ }
22
+ async function створитиСловникСтроїв() {
23
+ const словникСтроїв = new Sqlite3(':memory:');
24
+ словникСтроїв.exec(запитСтворенняСустатіCC);
25
+ const вузиСтроїв = словникПрописанихСтроїв
26
+ .filter((р) => р !== '' && !р.startsWith('//'))
27
+ .map(рядокСтроївВСтрої);
28
+ await перенестиДаніВСловникСтроїв(вузиСтроїв, словникСтроїв);
29
+ await обробитиДаніЗТваровогоСловникаСторінково(1e5, 0, словникСтроїв);
30
+ await обробитиДаніЗТваровогоСловникаСторінково(1e5, 2e5, словникСтроїв);
31
+ await обробитиДаніЗТваровогоСловникаСторінково(1e5, 3e5, словникСтроїв);
32
+ await обробитиДаніЗТваровогоСловникаСторінково(1e5, 4e5, словникСтроїв);
33
+ await обробитиДаніЗТваровогоСловникаСторінково(1e5, 5e5, словникСтроїв);
34
+ await обробитиДаніЗТваровогоСловникаСторінково(1e10, 6e5, словникСтроїв);
35
+ return словникСтроїв.serialize();
36
+ }
37
+ async function обробитиДаніЗТваровогоСловникаСторінково(обмеження, зсув, словникСтроїв) {
38
+ const словотвари = ськатиСловотвар('%', undefined, {
39
+ чиСловоСька: true,
40
+ обмеження,
41
+ зсув,
42
+ });
43
+ пірописець.info('Кількість слів з тварового сл.: ', словотвари.length);
44
+ const вузиСтроїв2 = словотвари.map((ст, вк) => {
45
+ if (вк % 10000 === 0) {
46
+ пірописець.info('Поточне слово з тварового сл.: ', ст.слово);
47
+ }
48
+ try {
49
+ const сзниЗВузом = вСловозміниЗВузом(ст.слово, {
50
+ ...ст,
51
+ первиннеСлово: ст.слово,
52
+ });
53
+ const сзЗВузом = сзниЗВузом[0];
54
+ if (!сзЗВузом)
55
+ throw new Error('Немає словозміни');
56
+ const тваровийРС = вТваровийРС(ст, сзЗВузом.сз);
57
+ const стрій = словоВСтрій(сзЗВузом.вуз, тваровийРС.словотвар);
58
+ const стрічкаСтрою = стрійВРядокСтрою(стрій);
59
+ return [{ слово: ст.слово, стрічка: стрічкаСтрою }];
60
+ }
61
+ catch (err) {
62
+ пірописець.warn(`Помилка під час обробки словотвару "${ст.слово}"`, err.message);
63
+ return [];
64
+ }
65
+ });
66
+ await перенестиДаніВСловникСтроїв(вузиСтроїв2, словникСтроїв);
67
+ }
68
+ async function перенестиДаніВСловникСтроїв(вузиСтрої, словникСтроїв) {
69
+ for (const строї of вузиСтрої) {
70
+ if (строї.length === 0)
71
+ continue;
72
+ словникСтроїв
73
+ .prepare(`INSERT INTO "Строї" VALUES ${строї.map(() => '(null, ?, ?)')}`)
74
+ .run(строї.map((стрій) => [стрій.слово, стрій.стрічка]).flat());
75
+ }
76
+ }
77
+ //# sourceMappingURL=%D1%80%D1%83%D1%87%D0%B8%D1%82%D0%B8-%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D0%B8%D0%BA-%D1%81%D1%82%D1%80%D0%BE%D1%97%D0%B2.%D0%BF%D1%80%D0%B8%D0%BF%D0%B8%D1%81.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ручити-словник-строїв.припис.js","sourceRoot":"","sources":["../../чит/створення-словника-строїв/ручити-словник-строїв.припис.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ // стрій словника:
2
+ // - стрій
3
+ // - стрій, стрій, стрій
4
+
5
+ // стрій слова:
6
+ // ; - розділяє післячеп (| - утворює кілька післячепів)
7
+ // () - позначають основу
8
+ // [] - позначають передчеп
9
+ // {} - позначають начепи
10
+
11
+ (щ)о;|сь, (ч)им;|сь, (ч)ого;|сь, (ч)ому;|сь
12
+ (хто);|сь, (к)ого;|сь, (к)ому;|сь, (к)имо;сь, (к)им;|сь
13
+
14
+ (де)(далі)
15
+ (де)(як)ий
16
+
17
+ (вої{ж})
18
+
19
+ (вон)и
20
+ (він)
21
+ (вон)а
22
+
23
+ (віс)ь
24
+ ([по]ліпш)ити;|ся|сь
25
+
26
+ ([о]держ)ати
27
+ ([о]держ{ан})ня
28
+
29
+ (комір{к})а
@@ -0,0 +1,12 @@
1
+ import { СтрійСлова } from '@movnia/spilne';
2
+ export declare function рядокСтроївВСтрої(рядокСтроїв: string): {
3
+ слово: string;
4
+ стрічка: string;
5
+ стрій: СтрійСлова;
6
+ }[];
7
+ export declare function стічкаСтроюВСтрої(стр: string): {
8
+ слово: string;
9
+ стрічка: string;
10
+ стрій: СтрійСлова;
11
+ }[];
12
+ export declare function стрійВРядокСтрою(стрій: СтрійСлова): string;
@@ -0,0 +1,100 @@
1
+ import { розбірДужок, небукваМногаСька, } from '@movnia/spilne';
2
+ export function рядокСтроївВСтрої(рядокСтроїв) {
3
+ const стрСтроїв = рядокСтроїв.split(',').map((с) => с.trim());
4
+ return стрСтроїв.map((стр) => стічкаСтроюВСтрої(стр)).flat();
5
+ }
6
+ export function стічкаСтроюВСтрої(стр) {
7
+ const [безПісляростку, стрПісляростків] = стр.split(';');
8
+ const відмінаБезПісляростку = безПісляростку.replaceAll(небукваМногаСька, '');
9
+ const розбірДужокОснов = розбірДужок(безПісляростку, {
10
+ brackets: ['()'],
11
+ });
12
+ if (розбірДужокОснов[0] === '')
13
+ розбірДужокОснов.splice(0, 1);
14
+ const перваЧастинаРозборуОснов = розбірДужокОснов[0];
15
+ if (typeof перваЧастинаРозборуОснов === 'string')
16
+ throw new Error(`Стрій починається не з основи: "${стр}"`);
17
+ const останняЧастинаРозборуОснов = розбірДужокОснов[розбірДужокОснов.length - 1];
18
+ const закінчення = typeof останняЧастинаРозборуОснов === 'string'
19
+ ? останняЧастинаРозборуОснов
20
+ : '';
21
+ const сполучникиОснов = [];
22
+ const основи = [];
23
+ for (const [вк, частина] of розбірДужокОснов.entries()) {
24
+ if (вк === розбірДужокОснов.length - 1)
25
+ continue;
26
+ if (typeof частина === 'string') {
27
+ сполучникиОснов.push(частина);
28
+ }
29
+ else {
30
+ if (частина.length > 1 || typeof частина[0] !== 'string')
31
+ throw new Error('Неочікуванні вкладення основ');
32
+ const основаСтрій = частина[0];
33
+ const основа = основаСтрій.replaceAll(небукваМногаСька, '');
34
+ const розбірДужокРостків = розбірДужок(основаСтрій, {
35
+ brackets: ['[]', '{}'],
36
+ });
37
+ if (розбірДужокРостків[0] === '')
38
+ розбірДужокРостків.splice(0, 1);
39
+ if (розбірДужокРостків[0] === '')
40
+ розбірДужокРостків.splice(0, 1);
41
+ let корінь = null;
42
+ const передчепи = [];
43
+ const начепи = [];
44
+ for (const [вк, частинаОсн] of розбірДужокРостків.entries()) {
45
+ if ((вк === 0 || вк === розбірДужокРостків.length - 1) &&
46
+ частинаОсн === '')
47
+ continue;
48
+ if (typeof частинаОсн === 'string') {
49
+ if (корінь)
50
+ throw new Error('Неможливо визначити корінь');
51
+ корінь = частинаОсн;
52
+ }
53
+ else {
54
+ if (частинаОсн.length > 1 || typeof частинаОсн[0] !== 'string')
55
+ throw new Error('Неочікуванні вкладення в основі');
56
+ if (корінь)
57
+ начепи.push(частинаОсн[0]);
58
+ else
59
+ передчепи.push(частинаОсн[0]);
60
+ }
61
+ }
62
+ if (!корінь)
63
+ throw new Error('Відсутній корінь');
64
+ основи.push({
65
+ передчепи,
66
+ корінь,
67
+ начепи,
68
+ основа,
69
+ });
70
+ }
71
+ }
72
+ return (стрПісляростків?.split('|') ?? ['']).map((післяросток) => ({
73
+ слово: відмінаБезПісляростку + післяросток,
74
+ стрічка: післяросток ? `${безПісляростку};${післяросток}` : безПісляростку,
75
+ стрій: {
76
+ основи,
77
+ сполучникиОснов,
78
+ закінчення,
79
+ післячепи: післяросток ? [післяросток] : [],
80
+ },
81
+ }));
82
+ }
83
+ export function стрійВРядокСтрою(стрій) {
84
+ const стркиОснов = стрій.основи.map((осн) => {
85
+ const стркаПередчепів = осн.передчепи.map((п) => `[${п}]`).join('');
86
+ const стркаНачепів = осн.начепи.map((п) => `{${п}}`).join('');
87
+ return `${стркаПередчепів}${осн.корінь}${стркаНачепів}`;
88
+ });
89
+ const стркаОснов = стркиОснов
90
+ .map((п, вк) => `(${п})${стрій.сполучникиОснов[вк] ?? ''}`)
91
+ .join('');
92
+ const стркаБезПіслячепа = `${стркаОснов}${стрій.закінчення}`;
93
+ if (стрій.післячепи.length > 0) {
94
+ return `${стркаБезПіслячепа};${стрій.післячепи.join('')}`;
95
+ }
96
+ else {
97
+ return стркаБезПіслячепа;
98
+ }
99
+ }
100
+ //# sourceMappingURL=%D1%81%D1%82%D1%80%D1%96%D1%87%D0%BA%D0%B0-%D1%81%D1%82%D1%80%D0%BE%D1%8E.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"стрічка-строю.js","sourceRoot":"","sources":["../чит/стрічка-строю.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { resolve } from 'path';
2
+ import { writeFileSync } from 'fs';
3
+ import { рядокПерекладуВПереклади, словникПерекладівПис } from '@movnia/chystba';
4
+
5
+ const args = process.argv.slice(2);
6
+ const сніпницяСловника = args[0] ?? '';
7
+ if (!сніпницяСловника)
8
+ throw new Error('Не вказана сніпниця для створення словника черпаних передчепів');
9
+
10
+ const путьСловникаЧерпанихПередчепів = resolve(
11
+ сніпницяСловника,
12
+ 'словник-черпаних-передчепів.txt',
13
+ );
14
+
15
+ // TODO: тимчасово тягнемо з словника перекладів
16
+ const словникПерекладів = словникПерекладівПис
17
+ .split('\n')
18
+ .map((с) => с.trim())
19
+ .filter((р) => !р.startsWith('//'));
20
+
21
+ const рядкиЧерпанихПередчепів = словникПерекладів.filter((рядокПерекладу) => {
22
+ const рядокПервини = рядокПерекладу.split('@')[0];
23
+ return рядокПервини?.includes('¬') || рядокПервини?.endsWith('¬]');
24
+ });
25
+
26
+ const черпаніПередчепи = рядкиЧерпанихПередчепів
27
+ .map(рядокПерекладуВПереклади)
28
+ .flat()
29
+ .map((п) => п.первиннеСлово.slice(0, -1));
30
+
31
+ writeFileSync(путьСловникаЧерпанихПередчепів, черпаніПередчепи.join('\n'));
32
+
@@ -0,0 +1,36 @@
1
+ import { resolve } from 'path';
2
+ import { writeFileSync } from 'fs';
3
+ import { рядокПерекладуВПереклади, словникПерекладівПис } from '@movnia/chystba';
4
+
5
+ const args = process.argv.slice(2);
6
+ const сніпницяСловника = args[0] ?? '';
7
+ if (!сніпницяСловника)
8
+ throw new Error('Не вказана сніпниця для створення словника черпаних причепних основ');
9
+
10
+ const путьСловникаЧерпанихПричепнихОснов = resolve(
11
+ сніпницяСловника,
12
+ 'словник-черпаних-причепних-основ.txt',
13
+ );
14
+
15
+ // TODO: тимчасово тягнемо з словника перекладів
16
+ const словникПерекладів = словникПерекладівПис
17
+ .split('\n')
18
+ .map((с) => с.trim())
19
+ .filter((р) => !р.startsWith('//'));
20
+
21
+ const рядкиЧерпанихПричепнихОснов = словникПерекладів.filter(
22
+ (рядокПерекладу) => {
23
+ const рядокПервини = рядокПерекладу.split('@')[0];
24
+ return рядокПервини?.includes('-') || рядокПервини?.endsWith('-]');
25
+ },
26
+ );
27
+
28
+ const черпаніПричепніОснови = рядкиЧерпанихПричепнихОснов
29
+ .map(рядокПерекладуВПереклади)
30
+ .flat()
31
+ .map((п) => п.первиннеСлово.slice(0, -1));
32
+
33
+ writeFileSync(
34
+ путьСловникаЧерпанихПричепнихОснов,
35
+ черпаніПричепніОснови.join('\n'),
36
+ );