@rsconcept/domain 1.0.0

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 (224) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +55 -0
  3. package/dist/cctext/index.d.ts +1 -0
  4. package/dist/cctext/index.js +42 -0
  5. package/dist/cctext/index.js.map +1 -0
  6. package/dist/cctext/language-api.d.ts +43 -0
  7. package/dist/cctext/language-api.js +252 -0
  8. package/dist/cctext/language-api.js.map +1 -0
  9. package/dist/cctext/language.d.ts +58 -0
  10. package/dist/cctext/language.js +44 -0
  11. package/dist/cctext/language.js.map +1 -0
  12. package/dist/graph/graph.d.ts +62 -0
  13. package/dist/graph/graph.js +385 -0
  14. package/dist/graph/graph.js.map +1 -0
  15. package/dist/graph/index.d.ts +1 -0
  16. package/dist/graph/index.js +384 -0
  17. package/dist/graph/index.js.map +1 -0
  18. package/dist/index.d.ts +28 -0
  19. package/dist/index.js +5851 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/library/folder-tree.d.ts +32 -0
  22. package/dist/library/folder-tree.js +136 -0
  23. package/dist/library/folder-tree.js.map +1 -0
  24. package/dist/library/index.d.ts +17 -0
  25. package/dist/library/index.js +2800 -0
  26. package/dist/library/index.js.map +1 -0
  27. package/dist/library/library-api.d.ts +6 -0
  28. package/dist/library/library-api.js +13 -0
  29. package/dist/library/library-api.js.map +1 -0
  30. package/dist/library/library.d.ts +56 -0
  31. package/dist/library/library.js +23 -0
  32. package/dist/library/library.js.map +1 -0
  33. package/dist/library/oss-api.d.ts +47 -0
  34. package/dist/library/oss-api.js +1105 -0
  35. package/dist/library/oss-api.js.map +1 -0
  36. package/dist/library/oss-layout-api.d.ts +36 -0
  37. package/dist/library/oss-layout-api.js +330 -0
  38. package/dist/library/oss-layout-api.js.map +1 -0
  39. package/dist/library/oss-layout.d.ts +25 -0
  40. package/dist/library/oss-layout.js +1 -0
  41. package/dist/library/oss-layout.js.map +1 -0
  42. package/dist/library/oss.d.ts +136 -0
  43. package/dist/library/oss.js +30 -0
  44. package/dist/library/oss.js.map +1 -0
  45. package/dist/library/rsengine.d.ts +116 -0
  46. package/dist/library/rsengine.js +2604 -0
  47. package/dist/library/rsengine.js.map +1 -0
  48. package/dist/library/rsform-api.d.ts +74 -0
  49. package/dist/library/rsform-api.js +879 -0
  50. package/dist/library/rsform-api.js.map +1 -0
  51. package/dist/library/rsform.d.ts +206 -0
  52. package/dist/library/rsform.js +32 -0
  53. package/dist/library/rsform.js.map +1 -0
  54. package/dist/library/rsmodel-api.d.ts +43 -0
  55. package/dist/library/rsmodel-api.js +836 -0
  56. package/dist/library/rsmodel-api.js.map +1 -0
  57. package/dist/library/rsmodel.d.ts +52 -0
  58. package/dist/library/rsmodel.js +25 -0
  59. package/dist/library/rsmodel.js.map +1 -0
  60. package/dist/library/structure-planner.d.ts +33 -0
  61. package/dist/library/structure-planner.js +481 -0
  62. package/dist/library/structure-planner.js.map +1 -0
  63. package/dist/parsing/ast.d.ts +49 -0
  64. package/dist/parsing/ast.js +93 -0
  65. package/dist/parsing/ast.js.map +1 -0
  66. package/dist/parsing/index.d.ts +3 -0
  67. package/dist/parsing/index.js +141 -0
  68. package/dist/parsing/index.js.map +1 -0
  69. package/dist/parsing/lezer-tree.d.ts +13 -0
  70. package/dist/parsing/lezer-tree.js +50 -0
  71. package/dist/parsing/lezer-tree.js.map +1 -0
  72. package/dist/rslang/api.d.ts +53 -0
  73. package/dist/rslang/api.js +846 -0
  74. package/dist/rslang/api.js.map +1 -0
  75. package/dist/rslang/ast-annotations.d.ts +18 -0
  76. package/dist/rslang/ast-annotations.js +56 -0
  77. package/dist/rslang/ast-annotations.js.map +1 -0
  78. package/dist/rslang/error.d.ts +85 -0
  79. package/dist/rslang/error.js +159 -0
  80. package/dist/rslang/error.js.map +1 -0
  81. package/dist/rslang/eval/calculator.d.ts +43 -0
  82. package/dist/rslang/eval/calculator.js +1639 -0
  83. package/dist/rslang/eval/calculator.js.map +1 -0
  84. package/dist/rslang/eval/evaluation-cache.d.ts +36 -0
  85. package/dist/rslang/eval/evaluation-cache.js +310 -0
  86. package/dist/rslang/eval/evaluation-cache.js.map +1 -0
  87. package/dist/rslang/eval/evaluator.d.ts +70 -0
  88. package/dist/rslang/eval/evaluator.js +1514 -0
  89. package/dist/rslang/eval/evaluator.js.map +1 -0
  90. package/dist/rslang/eval/value-api.d.ts +48 -0
  91. package/dist/rslang/eval/value-api.js +490 -0
  92. package/dist/rslang/eval/value-api.js.map +1 -0
  93. package/dist/rslang/eval/value.d.ts +36 -0
  94. package/dist/rslang/eval/value.js +118 -0
  95. package/dist/rslang/eval/value.js.map +1 -0
  96. package/dist/rslang/index.d.ts +17 -0
  97. package/dist/rslang/index.js +4314 -0
  98. package/dist/rslang/index.js.map +1 -0
  99. package/dist/rslang/labels.d.ts +16 -0
  100. package/dist/rslang/labels.js +315 -0
  101. package/dist/rslang/labels.js.map +1 -0
  102. package/dist/rslang/parser/expression-generator.d.ts +10 -0
  103. package/dist/rslang/parser/expression-generator.js +451 -0
  104. package/dist/rslang/parser/expression-generator.js.map +1 -0
  105. package/dist/rslang/parser/normalize.d.ts +11 -0
  106. package/dist/rslang/parser/normalize.js +507 -0
  107. package/dist/rslang/parser/normalize.js.map +1 -0
  108. package/dist/rslang/parser/parser.d.ts +5 -0
  109. package/dist/rslang/parser/parser.js +24 -0
  110. package/dist/rslang/parser/parser.js.map +1 -0
  111. package/dist/rslang/parser/parser.terms.d.ts +42 -0
  112. package/dist/rslang/parser/parser.terms.js +84 -0
  113. package/dist/rslang/parser/parser.terms.js.map +1 -0
  114. package/dist/rslang/parser/syntax-errors.d.ts +11 -0
  115. package/dist/rslang/parser/syntax-errors.js +403 -0
  116. package/dist/rslang/parser/syntax-errors.js.map +1 -0
  117. package/dist/rslang/parser/token.d.ts +79 -0
  118. package/dist/rslang/parser/token.js +95 -0
  119. package/dist/rslang/parser/token.js.map +1 -0
  120. package/dist/rslang/semantic/analyzer.d.ts +39 -0
  121. package/dist/rslang/semantic/analyzer.js +2604 -0
  122. package/dist/rslang/semantic/analyzer.js.map +1 -0
  123. package/dist/rslang/semantic/arguments-extractor.d.ts +42 -0
  124. package/dist/rslang/semantic/arguments-extractor.js +366 -0
  125. package/dist/rslang/semantic/arguments-extractor.js.map +1 -0
  126. package/dist/rslang/semantic/type-auditor.d.ts +73 -0
  127. package/dist/rslang/semantic/type-auditor.js +1570 -0
  128. package/dist/rslang/semantic/type-auditor.js.map +1 -0
  129. package/dist/rslang/semantic/typification-api.d.ts +27 -0
  130. package/dist/rslang/semantic/typification-api.js +320 -0
  131. package/dist/rslang/semantic/typification-api.js.map +1 -0
  132. package/dist/rslang/semantic/typification-parser.d.ts +12 -0
  133. package/dist/rslang/semantic/typification-parser.js +226 -0
  134. package/dist/rslang/semantic/typification-parser.js.map +1 -0
  135. package/dist/rslang/semantic/typification.d.ts +119 -0
  136. package/dist/rslang/semantic/typification.js +74 -0
  137. package/dist/rslang/semantic/typification.js.map +1 -0
  138. package/dist/rslang/semantic/value-auditor.d.ts +43 -0
  139. package/dist/rslang/semantic/value-auditor.js +523 -0
  140. package/dist/rslang/semantic/value-auditor.js.map +1 -0
  141. package/dist/rslang/semantic/value-class.d.ts +10 -0
  142. package/dist/rslang/semantic/value-class.js +9 -0
  143. package/dist/rslang/semantic/value-class.js.map +1 -0
  144. package/dist/rslang/typification-graph.d.ts +33 -0
  145. package/dist/rslang/typification-graph.js +311 -0
  146. package/dist/rslang/typification-graph.js.map +1 -0
  147. package/dist/shared/branded.d.ts +7 -0
  148. package/dist/shared/branded.js +1 -0
  149. package/dist/shared/branded.js.map +1 -0
  150. package/dist/shared/hash.d.ts +6 -0
  151. package/dist/shared/hash.js +18 -0
  152. package/dist/shared/hash.js.map +1 -0
  153. package/dist/shared/index.d.ts +2 -0
  154. package/dist/shared/index.js +18 -0
  155. package/dist/shared/index.js.map +1 -0
  156. package/package.json +184 -0
  157. package/src/cctext/index.ts +9 -0
  158. package/src/cctext/language-api.test.ts +149 -0
  159. package/src/cctext/language-api.ts +285 -0
  160. package/src/cctext/language.ts +80 -0
  161. package/src/graph/graph.test.ts +392 -0
  162. package/src/graph/graph.ts +433 -0
  163. package/src/graph/index.ts +1 -0
  164. package/src/index.ts +96 -0
  165. package/src/library/folder-tree.test.ts +47 -0
  166. package/src/library/folder-tree.ts +156 -0
  167. package/src/library/index.ts +46 -0
  168. package/src/library/library-api.test.ts +32 -0
  169. package/src/library/library-api.ts +11 -0
  170. package/src/library/library.ts +61 -0
  171. package/src/library/oss-api.ts +449 -0
  172. package/src/library/oss-layout-api.ts +377 -0
  173. package/src/library/oss-layout.ts +27 -0
  174. package/src/library/oss.ts +150 -0
  175. package/src/library/rsengine.ts +593 -0
  176. package/src/library/rsform-api.ts +533 -0
  177. package/src/library/rsform.ts +228 -0
  178. package/src/library/rsmodel-api.ts +340 -0
  179. package/src/library/rsmodel.ts +50 -0
  180. package/src/library/structure-planner.ts +143 -0
  181. package/src/parsing/ast.ts +136 -0
  182. package/src/parsing/index.ts +15 -0
  183. package/src/parsing/lezer-tree.ts +69 -0
  184. package/src/rslang/api.test.ts +116 -0
  185. package/src/rslang/api.ts +183 -0
  186. package/src/rslang/ast-annotations.ts +70 -0
  187. package/src/rslang/error.ts +129 -0
  188. package/src/rslang/eval/calculator.test.ts +124 -0
  189. package/src/rslang/eval/calculator.ts +121 -0
  190. package/src/rslang/eval/evaluation-cache.ts +257 -0
  191. package/src/rslang/eval/evaluator.test.ts +352 -0
  192. package/src/rslang/eval/evaluator.ts +935 -0
  193. package/src/rslang/eval/value-api.test.ts +105 -0
  194. package/src/rslang/eval/value-api.ts +444 -0
  195. package/src/rslang/eval/value.ts +102 -0
  196. package/src/rslang/index.ts +23 -0
  197. package/src/rslang/labels.ts +191 -0
  198. package/src/rslang/parser/expression-generator.test.ts +100 -0
  199. package/src/rslang/parser/expression-generator.ts +466 -0
  200. package/src/rslang/parser/normalize.test.ts +99 -0
  201. package/src/rslang/parser/normalize.ts +462 -0
  202. package/src/rslang/parser/parser.terms.ts +42 -0
  203. package/src/rslang/parser/parser.test.ts +153 -0
  204. package/src/rslang/parser/parser.ts +20 -0
  205. package/src/rslang/parser/rslang.grammar +251 -0
  206. package/src/rslang/parser/syntax-errors.ts +209 -0
  207. package/src/rslang/parser/token.ts +106 -0
  208. package/src/rslang/semantic/analyzer.test.ts +59 -0
  209. package/src/rslang/semantic/analyzer.ts +179 -0
  210. package/src/rslang/semantic/arguments-extractor.ts +327 -0
  211. package/src/rslang/semantic/type-auditor.test.ts +326 -0
  212. package/src/rslang/semantic/type-auditor.ts +1049 -0
  213. package/src/rslang/semantic/typification-api.test.ts +46 -0
  214. package/src/rslang/semantic/typification-api.ts +321 -0
  215. package/src/rslang/semantic/typification-parser.test.ts +50 -0
  216. package/src/rslang/semantic/typification-parser.ts +220 -0
  217. package/src/rslang/semantic/typification.ts +180 -0
  218. package/src/rslang/semantic/value-auditor.test.ts +206 -0
  219. package/src/rslang/semantic/value-auditor.ts +332 -0
  220. package/src/rslang/semantic/value-class.ts +11 -0
  221. package/src/rslang/typification-graph.ts +155 -0
  222. package/src/shared/branded.ts +6 -0
  223. package/src/shared/hash.ts +17 -0
  224. package/src/shared/index.ts +2 -0
@@ -0,0 +1,836 @@
1
+ // src/parsing/ast.ts
2
+ var TOKEN_ERROR = 0;
3
+
4
+ // src/rslang/parser/token.ts
5
+ var TokenID = {
6
+ // Global, local IDs and literals
7
+ ERROR: TOKEN_ERROR,
8
+ ID_LOCAL: 258,
9
+ ID_GLOBAL: 259,
10
+ ID_FUNCTION: 260,
11
+ ID_PREDICATE: 261,
12
+ ID_RADICAL: 262,
13
+ LIT_INTEGER: 263,
14
+ LIT_WHOLE_NUMBERS: 264,
15
+ LIT_EMPTYSET: 265,
16
+ // Arithmetic
17
+ PLUS: 266,
18
+ MINUS: 267,
19
+ MULTIPLY: 268,
20
+ // Integer predicate symbols
21
+ GREATER: 269,
22
+ LESSER: 270,
23
+ GREATER_OR_EQ: 271,
24
+ LESSER_OR_EQ: 272,
25
+ // Equality comparison
26
+ EQUAL: 273,
27
+ NOTEQUAL: 274,
28
+ // Logic predicate symbols
29
+ QUANTOR_UNIVERSAL: 275,
30
+ QUANTOR_EXISTS: 276,
31
+ LOGIC_NOT: 277,
32
+ LOGIC_EQUIVALENT: 278,
33
+ LOGIC_IMPLICATION: 279,
34
+ LOGIC_OR: 280,
35
+ LOGIC_AND: 281,
36
+ // Set theory predicate symbols
37
+ SET_IN: 282,
38
+ SET_NOT_IN: 283,
39
+ SUBSET: 284,
40
+ SUBSET_OR_EQ: 285,
41
+ NOT_SUBSET: 286,
42
+ // Set theory operators
43
+ DECART: 287,
44
+ SET_UNION: 288,
45
+ SET_INTERSECTION: 289,
46
+ SET_MINUS: 290,
47
+ SET_SYMMETRIC_MINUS: 291,
48
+ BOOLEAN: 292,
49
+ // Structure operations
50
+ BIGPR: 293,
51
+ SMALLPR: 294,
52
+ FILTER: 295,
53
+ CARD: 296,
54
+ BOOL: 297,
55
+ DEBOOL: 298,
56
+ REDUCE: 299,
57
+ // Term constructions prefixes
58
+ DECLARATIVE: 300,
59
+ RECURSIVE: 301,
60
+ IMPERATIVE: 302,
61
+ ITERATE: 303,
62
+ ASSIGN: 304,
63
+ // Punctuation
64
+ PUNCTUATION_DEFINE: 305,
65
+ PUNCTUATION_STRUCT: 306,
66
+ PUNCTUATION_PL: 307,
67
+ PUNCTUATION_PR: 308,
68
+ PUNCTUATION_CL: 309,
69
+ PUNCTUATION_CR: 310,
70
+ PUNCTUATION_SL: 311,
71
+ PUNCTUATION_SR: 312,
72
+ PUNCTUATION_BAR: 313,
73
+ PUNCTUATION_COMMA: 314,
74
+ PUNCTUATION_SEMICOLON: 315,
75
+ // ======= Non-terminal tokens =========
76
+ NT_ENUM_DECL: 316,
77
+ NT_TUPLE: 317,
78
+ NT_ENUMERATION: 318,
79
+ NT_TUPLE_DECL: 319,
80
+ NT_ARG_DECL: 320,
81
+ NT_FUNC_DEFINITION: 321,
82
+ NT_ARGUMENTS: 322,
83
+ NT_FUNC_CALL: 323,
84
+ NT_DECLARATIVE_EXPR: 324,
85
+ NT_IMPERATIVE_EXPR: 325,
86
+ NT_RECURSIVE_FULL: 326,
87
+ NT_RECURSIVE_SHORT: 327,
88
+ // ======= Helper tokens ========
89
+ INTERRUPT: 328,
90
+ END: 329
91
+ };
92
+
93
+ // src/rslang/semantic/typification.ts
94
+ var TypeID = {
95
+ anyTypification: 1,
96
+ integer: 2,
97
+ basic: 3,
98
+ tuple: 4,
99
+ collection: 5,
100
+ logic: 6,
101
+ function: 7,
102
+ predicate: 8
103
+ };
104
+ var TypeClass = {
105
+ logic: 1,
106
+ typification: 2,
107
+ function: 3,
108
+ predicate: 4
109
+ };
110
+ var LogicT = { typeID: TypeID.logic };
111
+ var IntegerT = {
112
+ typeID: TypeID.integer,
113
+ isOrdered: true,
114
+ isArithmetic: true,
115
+ isIntegerCompatible: true
116
+ };
117
+ var AnyTypificationT = { typeID: TypeID.anyTypification };
118
+ var EmptySetT = bool(AnyTypificationT);
119
+ function bool(base) {
120
+ return { typeID: TypeID.collection, base };
121
+ }
122
+
123
+ // src/rslang/eval/value-api.ts
124
+ function printValue(data) {
125
+ if (!Array.isArray(data)) {
126
+ return String(data);
127
+ }
128
+ const len = data.length;
129
+ if (data.length === 0) {
130
+ return "{}";
131
+ }
132
+ const isTuple = data[0] === TUPLE_ID;
133
+ const start = isTuple ? 1 : 0;
134
+ let result = isTuple ? "(" : "{";
135
+ for (let i = start; i < len; i++) {
136
+ if (i > start) result += ", ";
137
+ result += printValue(data[i]);
138
+ }
139
+ result += isTuple ? ")" : "}";
140
+ return result;
141
+ }
142
+ function isTupleValue(data) {
143
+ return Array.isArray(data) && data.length > 1 && data[0] === TUPLE_ID;
144
+ }
145
+ function extractValue(target, path) {
146
+ let current = target;
147
+ let i = 0;
148
+ while (i < path.length) {
149
+ if (!Array.isArray(current) || current.length <= path[i]) {
150
+ return null;
151
+ }
152
+ current = current[path[i]];
153
+ i++;
154
+ }
155
+ return current;
156
+ }
157
+ function makeDefaultValue(type) {
158
+ switch (type.typeID) {
159
+ case TypeID.anyTypification:
160
+ case TypeID.integer:
161
+ case TypeID.basic:
162
+ return INVALID_ELEMENT;
163
+ case TypeID.collection:
164
+ return [];
165
+ case TypeID.tuple:
166
+ return tuple(type.factors.map((item) => makeDefaultValue(item)));
167
+ }
168
+ }
169
+ function setNestedValue(target, path, newVal) {
170
+ if (path.length === 0) {
171
+ return newVal;
172
+ }
173
+ const [head, ...rest] = path;
174
+ const arr = Array.isArray(target) ? [...target] : [];
175
+ arr[head] = setNestedValue(arr[head], makeValuePath(rest), newVal);
176
+ return arr;
177
+ }
178
+
179
+ // src/rslang/eval/value.ts
180
+ var TUPLE_ID = -111;
181
+ var INVALID_ELEMENT = -1;
182
+ var VALUE_TRUE = 1;
183
+ function makeValuePath(path) {
184
+ return path;
185
+ }
186
+ function compare(v1, v2) {
187
+ const stack1 = [v1];
188
+ const stack2 = [v2];
189
+ while (stack1.length > 0 && stack2.length > 0) {
190
+ const el1 = stack1.pop();
191
+ const el2 = stack2.pop();
192
+ if (el1 === el2) {
193
+ continue;
194
+ }
195
+ const type1 = typeof el1;
196
+ const type2 = typeof el2;
197
+ if (type1 === "number" && type2 === "number") {
198
+ const numDiff = el1 - el2;
199
+ if (numDiff !== 0) return numDiff;
200
+ continue;
201
+ }
202
+ const isArray1 = Array.isArray(el1);
203
+ const isArray2 = Array.isArray(el2);
204
+ if (!isArray1 || !isArray2) {
205
+ throw new Error(`Cannot compare different types ${printValue(el1)} and ${printValue(el2)}`);
206
+ }
207
+ const arr1 = el1;
208
+ const arr2 = el2;
209
+ const len1 = arr1.length;
210
+ const len2 = arr2.length;
211
+ if (len1 !== len2) {
212
+ return len1 - len2;
213
+ }
214
+ for (let i = len1 - 1; i >= 0; i--) {
215
+ stack1.push(arr1[i]);
216
+ stack2.push(arr2[i]);
217
+ }
218
+ }
219
+ return 0;
220
+ }
221
+ function tuple(components) {
222
+ return [TUPLE_ID, ...components];
223
+ }
224
+
225
+ // src/rslang/parser/parser.ts
226
+ import { LRParser } from "@lezer/lr";
227
+ var parser = LRParser.deserialize({
228
+ version: 14,
229
+ states: "2lO!sQPOOOVQPO'#CdO$qQPO'#C`O&pQPO'#C`O*bQPO'#C_Q*jQPOOO,TQPO'#CyOVQPO'#CtO,]QPO'#CtOOQO'#Ct'#CtOOQO'#C^'#C^OOQO'#ES'#ESOOQO'#ET'#ETO,bQPO'#DeO,iQPO'#DfO,qQPO'#DhO,vQPO'#DjO,{QPO'#DnO-QQPO'#DrOOQO'#EU'#EUOOQO'#EV'#EVOOQO'#DS'#DSO-VQPO'#DSO-[QPO'#DSOOQO'#EQ'#EQO,TQPO'#DzQOQPOOO-aQPO'#ERO-nQPO,59OO-vQPO'#CeO-{QPO,58xO/lQPO,59tOVQPO,58yOVQPO,58yOVQPO,59iOVQPO,59iOVQPO,59iOVQPO,59iOVQPO,59tOVQPO,59tOVQPO,59tOVQPO,59tOVQPO,59tOVQPO,59tOVQPO,59tOVQPO,59tOVQPO'#CdOOQO'#C`'#C`OOQO'#C{'#C{O1]QPO,59eO2rQPO,59`OVQPO,59`OOQO'#ER'#ERO5TQPO,5:PO5]QPO,5:UOVQPO,5:QOOQO,5:Q,5:QOVQPO,5:SO,TQPO,5:UOVQPO,5:YO,TQPO,5:^OVQPO,59nOVQPO,59nO5dQPO'#D|OOQO'#D{'#D{O5iQPO,5:fOOQO1G.j1G.jOVQPO,59POOQO1G.d1G.dOOQO1G/`1G/`O5qQPO1G.eO7vQPO1G.eO:zQPO1G/TO=]QPO1G/TO?nQPO1G/TOBPQPO1G/TOGyQPO1G/`OHQQPO1G/`OKpQPO1G/`O! `QPO1G/`O! gQPO1G/`O! nQPO1G/`O! uQPO1G/`O,TQPO,59gOVQPO1G/PO!%aQPO1G.zOOQO1G/k1G/kOVQPO1G/pO!%iQPO1G/lO!%pQPO1G/nO!%xQPO1G/pO!%}QPO1G/tO!&UQPO1G/xO!&ZQPO1G/YO!&cQPO1G/YOVQPO,5:hO,TQPO,5:gOVQPO1G0QO!&jQPO1G.kOOQO1G/R1G/RO!&zQPO7+$kOOQO7+$f7+$fO!(gQPO7+%[OOQO7+%W7+%WO!(nQPO7+%YOVQPO7+%[OVQPO7+%`OVQPO7+%dOOQO7+$t7+$tO!(sQPO1G0SOOQO1G0R1G0RO!(}QPO7+%lO!)UQPO<<HVOVQPO<<HvOVQPO<<HtO!+gQPO<<HvO!+nQPO'#DoO!+xQPO<<HzO!,QQPO<<IOO!,XQPOAN>bO!,`QPOAN>`OVQPOAN>bOVQPO,5:ZOOQOAN>fAN>fOVQPOAN>jOOQOG23|G23|OOQOG23zG23zO!,gQPOG23|O!,nQPO1G/uO!,xQPOG24UOOQOLD)hLD)hOOQOLD)pLD)pOVQPOLD)pO!-SQPO!$'M[OOQO!)9Bv!)9Bv",
230
+ stateData: "!-l~O!sOS~OTQOVPOiVOjWOnUOpUOwZOxZOyZOz[O{[O!W]O!Z^O!]_O!``O!aaO!ebO!gfO!hdO!idO!jdO!kdO!ldO!mdO~OkiO~PVOZSX[SX]!wX^!wX_!wX`!wXa!wXb!wXc!wXd!wXe!wXf!wXg!wXr!wXs!wXt!wXu!wX}!wX!O!wX!P!wX!Q!wX!R!wX!S!wX!T!wX!U!wXY!wX!V!wX~O!q!wXU!wXl!wX!_!wXT!wXV!wXi!wXj!wXn!wXp!wXw!wXx!wXy!wXz!wX{!wX!W!wX!Z!wX!]!wX!`!wX!a!wX!e!wX!g!wX!h!wX!i!wX!j!wX!k!wX!l!wX!m!wX!d!wX~P!zOZSX[SX]!xX^!xX_!xX`!xXa!xXb!xXc!xXd!xXe!xXf!xXg!xXr!xXs!xXt!xXu!xX}!xX!O!xX!P!xX!Q!xX!R!xX!S!xX!T!xX!U!xX!q!xXY!xX!V!xXU!xXl!xX!_!xXT!xXV!xXi!xXj!xXn!xXp!xXw!xXx!xXy!xXz!xX{!xX!W!xX!Z!xX!]!xX!`!xX!a!xX!e!xX!g!xX!h!xX!i!xX!j!xX!k!xX!l!xX!m!xX!d!xX~OZpO[pO~O]qO^qO_qO`qOaqObqOcqOdqOeqOfqOgqOrrOssOttOuuO}vO!OwO!PxO!QyO!RzO!S{O!T|O!U}O~OT!POV!OO~Ok!TO~OT!WO~PYOV!XO!Z^O~Ok!ZO~O!W![O~O!W!]O~O!W!^O~Ok!_O~OV!`O~OY!uX!V!uXl!uX~P*jOU!dOY!uX~OY!eO~OU!fOY!tX]!tX^!tX_!tX`!tXa!tXb!tXc!tXd!tXe!tXf!tXg!tXr!tXs!tXt!tXu!tX}!tX!O!tX!P!tX!Q!tX!R!tX!S!tX!T!tX!U!tX~OU!gOYvX]vX^vX_vX`vXavXbvXcvXdvXevXfvXgvXrvXsvXtvXuvX}vX!OvX!PvX!QvX!RvX!SvX!TvX!UvX~OY!uO]!vO~O]qO^qO_qO`qOaqObqOcqOdqOeqOfqOgqO}vO!OwO!PxO!QyO!RzO!S{O!T|O!U}O~Orhashathauha!qhaUhaYha!Vhalha!_haThaVhaihajhanhaphawhaxhayhazha{ha!Wha!Zha!]ha!`ha!aha!eha!gha!hha!iha!jha!kha!lha!mha!dha~P1eOY!eO!V!xO~O]!yO~P!zO]#RO~OY#SOl#TO~O!qRiURiYRi!VRilRi!_RiTRiVRiiRijRinRipRiwRixRiyRizRi{Ri!WRi!ZRi!]Ri!`Ri!aRi!eRi!gRi!hRi!iRi!jRi!kRi!lRi!mRi!dRi~P*jO]Ri^Ri_Ri`RiaRibRicRidRieRifRigRirRisRitRiuRi!qRiURiYRi!VRilRi!_RiTRiVRiiRijRinRipRiwRixRiyRizRi{Ri!WRi!ZRi!]Ri!`Ri!aRi!eRi!gRi!hRi!iRi!jRi!kRi!lRi!mRi!dRi~P+iOssOttOuuOrqi!qqiUqiYqi!Vqilqi!_qiTqiVqiiqijqinqipqiwqixqiyqizqi{qi!Wqi!Zqi!]qi!`qi!aqi!eqi!gqi!hqi!iqi!jqi!kqi!lqi!mqi!dqi~P1eOttOuuOrqisqi!qqiUqiYqi!Vqilqi!_qiTqiVqiiqijqinqipqiwqixqiyqizqi{qi!Wqi!Zqi!]qi!`qi!aqi!eqi!gqi!hqi!iqi!jqi!kqi!lqi!mqi!dqi~P1eOuuOrqisqitqi!qqiUqiYqi!Vqilqi!_qiTqiVqiiqijqinqipqiwqixqiyqizqi{qi!Wqi!Zqi!]qi!`qi!aqi!eqi!gqi!hqi!iqi!jqi!kqi!lqi!mqi!dqi~P1eOrqisqitqiuqi!qqiUqiYqi!Vqilqi!_qiTqiVqiiqijqinqipqiwqixqiyqizqi{qi!Wqi!Zqi!]qi!`qi!aqi!eqi!gqi!hqi!iqi!jqi!kqi!lqi!mqi!dqi~P1eO}vO]|i^|i_|i`|ia|ib|ic|id|ie|if|ig|ir|is|it|iu|i!P|i!Q|i!R|i!S|i!T|i!U|i!q|iU|iY|i!V|il|i!_|iT|iV|ii|ij|in|ip|iw|ix|iy|iz|i{|i!W|i!Z|i!]|i!`|i!a|i!e|i!g|i!h|i!i|i!j|i!k|i!l|i!m|i!d|i~O!O|i~PDbO!OwO~PDbO}vO!OwO!PxO!U}O]|i^|i_|i`|ia|ib|ic|id|ie|if|ig|ir|is|it|iu|i!R|i!S|i!T|i!q|iU|iY|i!V|il|i!_|iT|iV|ii|ij|in|ip|iw|ix|iy|iz|i{|i!W|i!Z|i!]|i!`|i!a|i!e|i!g|i!h|i!i|i!j|i!k|i!l|i!m|i!d|i~O!Q|i~PHXO}vO!OwO!PxO!QyO!T|O!U}O]|i^|i_|i`|ia|ib|ic|id|ie|if|ig|ir|is|it|iu|i!S|i!q|iU|iY|i!V|il|i!_|iT|iV|ii|ij|in|ip|iw|ix|iy|iz|i{|i!W|i!Z|i!]|i!`|i!a|i!e|i!g|i!h|i!i|i!j|i!k|i!l|i!m|i!d|i~O!R|i~PKwO!RzO~PKwO!QyO~PHXO}vO!OwO!PxO]|i^|i_|i`|ia|ib|ic|id|ie|if|ig|ir|is|it|iu|i!Q|i!R|i!S|i!T|i!U|i!q|iU|iY|i!V|il|i!_|iT|iV|ii|ij|in|ip|iw|ix|iy|iz|i{|i!W|i!Z|i!]|i!`|i!a|i!e|i!g|i!h|i!i|i!j|i!k|i!l|i!m|i!d|i~OY!eOl#XO~OU#ZO~P*jOY!eOl#[O~O]#]O~O!_#^O~P*jO[#_O~OY!eOl#`O~OU#`O~P*jOUXiYXi!VXilXi~P*jO]qO^qO_qO`qOaqObqOcqOdqOeqOfqOgqOrrOssOttOuuO}vO!OwO!PxO!QyO!RzO!S{O!T|O!U}O~PVO!_#eO~P*jOV#fO~OY!pil!pi~P*jO!q!nq~P*jOrmysmytmyumy!qmyUmyYmy!Vmylmy!_myTmyVmyimyjmynmypmywmyxmyymyzmy{my!Wmy!Zmy!]my!`my!amy!emy!gmy!hmy!imy!jmy!kmy!lmy!mmy!dmy~P1eO!_#mO~P*jO!V!cX!d!cX~P*jO!V#oO!d#nO~O!_#pO~P*jO!V#qO~P*jOU#rO~P*jO!V#vO~P*jO!V!ci!d!ci~P*jO!V#wO!_#xO~P*jO!V#zO~P*jO!]!hj!gz{!j!k!l!m!iT!e!a!`!a~",
231
+ goto: "1O!zPP!{#y$uPPP&R'VPPPPPPPPPPPPPP#yPPPP'aP(]P#yPPPP(`PPPPP)[PPPPPPPPPP*Y+UP*YP*YPPP*Y,TPP*YPPPPPPP,W,Z,^PPP,d.v/W/W/W0S!phOV]pqrstuvwxyz{|}!O!T!X!Z!]!_!`!e!v!y#R#T#W#]#^#_#e#f#m#n#p#xRnP!sYOPV]pqrstuvwxyz{|}!O!T!X!Z!]!_!`!e!v!y#R#T#W#]#^#_#e#f#m#n#p#x!rSOPV]pqrstuvwxyz{|}!O!T!X!Z!]!_!`!e!v!y#R#T#W#]#^#_#e#f#m#n#p#xQ!QUS!ai#SQ!|![Q#O!^R#V!u!rROPV]pqrstuvwxyz{|}!O!T!X!Z!]!_!`!e!v!y#R#T#W#]#^#_#e#f#m#n#p#x]!PUi![!^!u#SSlP!OX!U]!T!Z!_!sXOPV]pqrstuvwxyz{|}!O!T!X!Z!]!_!`!e!v!y#R#T#W#]#^#_#e#f#m#n#p#xR!RU!shOPV]pqrstuvwxyz{|}!O!T!X!Z!]!_!`!e!v!y#R#T#W#]#^#_#e#f#m#n#p#x!peOV]pqrstuvwxyz{|}!O!T!X!Z!]!_!`!e!v!y#R#T#W#]#^#_#e#f#m#n#p#xRoP!scOPV]pqrstuvwxyz{|}!O!T!X!Z!]!_!`!e!v!y#R#T#W#]#^#_#e#f#m#n#p#x!rcOPV]pqrstuvwxyz{|}!O!T!X!Z!]!_!`!e!v!y#R#T#W#]#^#_#e#f#m#n#p#xR!Y^R#i#^RjOR!ciQ!biR#b#SQTO[kP]!O!T!Z!_Q!SVQ!gvQ!hpQ!iqQ!jrQ!ksQ!ltQ!muQ!nwQ!oxQ!pyQ!qzQ!r{Q!s|Q!t}Q!z!XQ!}!]Q#Q!`Q#U!eQ#W!vQ#Y!yQ#a#RQ#c#TQ#d#WQ#g#]Q#h#^Q#j#_Q#k#eQ#l#fQ#s#mQ#t#nQ#u#pR#y#xSmP!OQ!V]Q!w!TQ!{!ZR#P!_!seOPV]pqrstuvwxyz{|}!O!T!X!Z!]!_!`!e!v!y#R#T#W#]#^#_#e#f#m#n#p#x!sgOPV]pqrstuvwxyz{|}!O!T!X!Z!]!_!`!e!v!y#R#T#W#]#^#_#e#f#m#n#p#x",
232
+ nodeNames: "\u26A0 Expression Logic Logic_predicates Variable Local ) ( Tuple Expr_enum_min2 , :\u2208 := \u2208 \u2209 \u2286 \u2284 \u2282 > \u2265 < \u2264 \u2260 = Logic_unary \xAC Predicate [ ] Logic_quantor \u2200 Variable_pack \u2203 Logic_binary \u21D4 \u21D2 \u2228 & Setexpr Integer EmptySet IntegerSet Global Radical Setexpr_binary * + - \u222A \\ \u2206 \u2229 \xD7 } { Enumeration Boolean \u212C Filter_expression Filter Declarative | PrefixD PrefixI Imperative Imp_blocks ; PrefixR Recursion Function BigPr SmallPr Card Bool Debool Red Function_decl Arguments Declaration",
233
+ maxTerm: 87,
234
+ nodeProps: [
235
+ ["openedBy", 6, "(", 53, "{"],
236
+ ["closedBy", 7, ")", 54, "}"]
237
+ ],
238
+ skippedNodes: [0],
239
+ repeatNodeCount: 0,
240
+ tokenData: "6j~R!jX^%spq%svw&hxy&myz&rz{&w{|&||}'R}!O'W!Q![']![!]'e!]!^'x!^!_'}!_!`(S!`!a(X!c!d(^!e!f(^!f!g(l!h!i(t!k!l)h!p!q(^!r!s)m!t!u*a!u!v(^!v!w(^!z!{(^!|!}*q!}#O*v#O#P*{#P#Q+Q#R#S+V#T#U+V#U#V+m#V#W-]#W#X.x#X#d+V#d#e1b#e#f+V#f#g2w#g#o+V#o#p4R#p#q4W#q#r4]#y#z%s$f$g%s$r$s4b%o%p4g5i6S+V#BY#BZ%s$IS$I_%s$I|$JO%s$JT$JU%s$KV$KW%s% l% m4l%%Y%%Z4q%%[%%]4v%&Y%&Z4{%&]%&^5Q%&_%&`5V%&`%&a5[%&b%&c5a%&c%&d5f%'S%'T5k%'T%'U5p%'U%'V5u%(^%(_5z%(b%(c6P%(c%(d6U%)Q%)R6Z%)S%)T6`%)U%)V6e&FU&FV%s~%xY!s~X^%spq%s#y#z%s$f$g%s#BY#BZ%s$IS$I_%s$I|$JO%s$JT$JU%s$KV$KW%s&FU&FV%s~&mOu~~&rOV~~&wOU~~&|O}~~'RO!O~~'WOY~~']O!P~~'bPw~!Q![']~'hQ!_!`'n%&b%&c's~'sO[~~'xOZ~~'}O!d~~(SOd~~(XOg~~(^Ob~~(aP!Q![(d~(iPz~!Q![(d~(qP!`~!Q![(d~(wQ!Q![(}#]#^)V~)SP!g~!Q![(}~)YP!R![)]~)bQ!]~|})V!Q![)]~)mO!a~~)pQ!Q![)v#f#g*O~){Pj~!Q![)v~*RP!R![*U~*ZQ!h~|}*O!Q![*U~*fP!e~!Q![*i~*nP{~!Q![*i~*vOy~~*{Ok~~+QO!R~~+VOl~~+[RT~!Q![+e#T#o+V5i6S+V~+jPT~!Q![+e~+rTT~!Q![+e#T#c+V#c#d,R#d#o+V5i6S+V~,WTT~!Q![+e#T#c+V#c#d,g#d#o+V5i6S+V~,lTT~!Q![+e#T#`+V#`#a,{#a#o+V5i6S+V~-SR!k~T~!Q![+e#T#o+V5i6S+V~-bST~!Q![+e#T#U-n#U#o+V5i6S+V~-sTT~!Q![+e#T#f+V#f#g.S#g#o+V5i6S+V~.XTT~!Q![+e#T#W+V#W#X.h#X#o+V5i6S+V~.oR!j~T~!Q![+e#T#o+V5i6S+V~.}TT~!Q![+e#T#X+V#X#Y/^#Y#o+V5i6S+V~/cTT~!Q![+e#T#U+V#U#V/r#V#o+V5i6S+V~/wTT~!Q![+e#T#c+V#c#d0W#d#o+V5i6S+V~0]TT~!Q![+e#T#c+V#c#d0l#d#o+V5i6S+V~0qTT~!Q![+e#T#`+V#`#a1Q#a#o+V5i6S+V~1XR!l~T~!Q![+e#T#o+V5i6S+V~1gTT~!Q![+e#T#f+V#f#g1v#g#o+V5i6S+V~1{ST~!Q!R+e!R![2X#T#o+V5i6S+V~2`Q!i~T~|}2f!Q![2X~2iP!R![2l~2qQ!i~|}2f!Q![2l~2|TT~!Q![+e#T#X+V#X#Y3]#Y#o+V5i6S+V~3bTT~!Q![+e#T#W+V#W#X3q#X#o+V5i6S+V~3xR!m~T~!Q![+e#T#o+V5i6S+V~4WO!W~~4]O!_~~4bO!V~~4gOi~~4lO!U~~4qO!Z~~4vOs~~4{Or~~5QOn~~5VOp~~5[Ox~~5aO!S~~5fO]~~5kO^~~5pOt~~5uO!T~~5zO!Q~~6POf~~6UOe~~6ZOc~~6`Oa~~6eO`~~6jO_~",
241
+ tokenizers: [0],
242
+ topRules: { "Expression": [0, 1] },
243
+ tokenPrec: 2679
244
+ });
245
+
246
+ // src/rslang/parser/parser.terms.ts
247
+ var Local = 5;
248
+ var Tuple = 8;
249
+ var Predicate = 26;
250
+ var Variable_pack = 31;
251
+ var Integer = 39;
252
+ var EmptySet = 40;
253
+ var IntegerSet = 41;
254
+ var Global = 42;
255
+ var Radical = 43;
256
+ var Enumeration = 55;
257
+ var Boolean = 56;
258
+ var Filter = 59;
259
+ var Declarative = 60;
260
+ var Imperative = 64;
261
+ var Function = 69;
262
+ var BigPr = 70;
263
+ var SmallPr = 71;
264
+ var Card = 72;
265
+ var Bool = 73;
266
+ var Debool = 74;
267
+ var Red = 75;
268
+ var Function_decl = 76;
269
+ var Arguments = 77;
270
+ var Declaration = 78;
271
+
272
+ // src/rslang/parser/normalize.ts
273
+ var idRecord = {
274
+ [Global]: TokenID.ID_GLOBAL,
275
+ [Local]: TokenID.ID_LOCAL,
276
+ [Radical]: TokenID.ID_RADICAL,
277
+ [Function]: TokenID.ID_FUNCTION,
278
+ [Predicate]: TokenID.ID_PREDICATE,
279
+ [Integer]: TokenID.LIT_INTEGER,
280
+ [EmptySet]: TokenID.LIT_EMPTYSET,
281
+ [IntegerSet]: TokenID.LIT_WHOLE_NUMBERS,
282
+ [Boolean]: TokenID.BOOLEAN,
283
+ [BigPr]: TokenID.BIGPR,
284
+ [SmallPr]: TokenID.SMALLPR,
285
+ [Filter]: TokenID.FILTER,
286
+ [Bool]: TokenID.BOOL,
287
+ [Debool]: TokenID.DEBOOL,
288
+ [Red]: TokenID.REDUCE,
289
+ [Card]: TokenID.CARD,
290
+ [Enumeration]: TokenID.NT_ENUMERATION,
291
+ [Tuple]: TokenID.NT_TUPLE,
292
+ [Arguments]: TokenID.NT_ARGUMENTS,
293
+ [Declaration]: TokenID.NT_ARG_DECL,
294
+ [Function_decl]: TokenID.NT_FUNC_DEFINITION,
295
+ [Variable_pack]: TokenID.NT_ENUM_DECL,
296
+ [Declarative]: TokenID.NT_DECLARATIVE_EXPR,
297
+ [Imperative]: TokenID.NT_IMPERATIVE_EXPR
298
+ };
299
+
300
+ // src/rslang/labels.ts
301
+ var labelTokenRecord = {
302
+ [TokenID.DECART]: "\xD7",
303
+ [TokenID.PUNCTUATION_PL]: "( )",
304
+ [TokenID.PUNCTUATION_SL]: "[ ]",
305
+ [TokenID.QUANTOR_UNIVERSAL]: "\u2200",
306
+ [TokenID.QUANTOR_EXISTS]: "\u2203",
307
+ [TokenID.LOGIC_NOT]: "\xAC",
308
+ [TokenID.LOGIC_AND]: "&",
309
+ [TokenID.LOGIC_OR]: "\u2228",
310
+ [TokenID.LOGIC_IMPLICATION]: "\u21D2",
311
+ [TokenID.LOGIC_EQUIVALENT]: "\u21D4",
312
+ [TokenID.LIT_EMPTYSET]: "\u2205",
313
+ [TokenID.LIT_WHOLE_NUMBERS]: "Z",
314
+ [TokenID.MULTIPLY]: "*",
315
+ [TokenID.EQUAL]: "=",
316
+ [TokenID.NOTEQUAL]: "\u2260",
317
+ [TokenID.GREATER_OR_EQ]: "\u2265",
318
+ [TokenID.LESSER_OR_EQ]: "\u2264",
319
+ [TokenID.SET_IN]: "\u2208",
320
+ [TokenID.SET_NOT_IN]: "\u2209",
321
+ [TokenID.SUBSET_OR_EQ]: "\u2286",
322
+ [TokenID.SUBSET]: "\u2282",
323
+ [TokenID.NOT_SUBSET]: "\u2284",
324
+ [TokenID.SET_INTERSECTION]: "\u2229",
325
+ [TokenID.SET_UNION]: "\u222A",
326
+ [TokenID.SET_MINUS]: "\\",
327
+ [TokenID.SET_SYMMETRIC_MINUS]: "\u2206",
328
+ [TokenID.BOOLEAN]: "\u212C()",
329
+ [TokenID.NT_DECLARATIVE_EXPR]: "D{}",
330
+ [TokenID.NT_IMPERATIVE_EXPR]: "I{}",
331
+ [TokenID.NT_RECURSIVE_FULL]: "R{}",
332
+ [TokenID.BIGPR]: "Pr1()",
333
+ [TokenID.SMALLPR]: "pr1()",
334
+ [TokenID.FILTER]: "Fi1[]()",
335
+ [TokenID.REDUCE]: "red()",
336
+ [TokenID.CARD]: "card()",
337
+ [TokenID.BOOL]: "bool()",
338
+ [TokenID.DEBOOL]: "debool()",
339
+ [TokenID.ASSIGN]: ":=",
340
+ [TokenID.ITERATE]: ":\u2208"
341
+ };
342
+
343
+ // src/rslang/semantic/typification-api.ts
344
+ var TypeIDToClass = {
345
+ [TypeID.anyTypification]: TypeClass.typification,
346
+ [TypeID.integer]: TypeClass.typification,
347
+ [TypeID.basic]: TypeClass.typification,
348
+ [TypeID.tuple]: TypeClass.typification,
349
+ [TypeID.collection]: TypeClass.typification,
350
+ [TypeID.logic]: TypeClass.logic,
351
+ [TypeID.function]: TypeClass.function,
352
+ [TypeID.predicate]: TypeClass.predicate
353
+ };
354
+
355
+ // src/rslang/semantic/value-class.ts
356
+ var ValueClass = {
357
+ VALUE: "value",
358
+ PROPERTY: "property"
359
+ };
360
+
361
+ // src/library/rsform.ts
362
+ var CstType = {
363
+ NOMINAL: "nominal",
364
+ BASE: "basic",
365
+ STRUCTURED: "structure",
366
+ TERM: "term",
367
+ AXIOM: "axiom",
368
+ FUNCTION: "function",
369
+ PREDICATE: "predicate",
370
+ CONSTANT: "constant",
371
+ STATEMENT: "statement"
372
+ };
373
+ var CstClass = {
374
+ NOMINAL: "nominal",
375
+ BASIC: "basic",
376
+ DERIVED: "derived",
377
+ STATEMENT: "statement",
378
+ TEMPLATE: "template"
379
+ };
380
+ var CstStatus = {
381
+ VERIFIED: "verified",
382
+ INCORRECT: "incorrect",
383
+ INCALCULABLE: "incalculable",
384
+ PROPERTY: "property",
385
+ UNKNOWN: "unknown"
386
+ };
387
+
388
+ // src/library/rsform-api.ts
389
+ var CST_TYPE_PREFIX = {
390
+ [CstType.NOMINAL]: "N",
391
+ [CstType.BASE]: "X",
392
+ [CstType.CONSTANT]: "C",
393
+ [CstType.STRUCTURED]: "S",
394
+ [CstType.AXIOM]: "A",
395
+ [CstType.TERM]: "D",
396
+ [CstType.FUNCTION]: "F",
397
+ [CstType.PREDICATE]: "P",
398
+ [CstType.STATEMENT]: "T"
399
+ };
400
+ var CST_TYPE_TO_CLASS = {
401
+ [CstType.NOMINAL]: CstClass.NOMINAL,
402
+ [CstType.BASE]: CstClass.BASIC,
403
+ [CstType.CONSTANT]: CstClass.BASIC,
404
+ [CstType.STRUCTURED]: CstClass.BASIC,
405
+ [CstType.TERM]: CstClass.DERIVED,
406
+ [CstType.FUNCTION]: CstClass.DERIVED,
407
+ [CstType.AXIOM]: CstClass.STATEMENT,
408
+ [CstType.PREDICATE]: CstClass.DERIVED,
409
+ [CstType.STATEMENT]: CstClass.STATEMENT
410
+ };
411
+ function isSchemaIssue(cst) {
412
+ if (cst.homonyms.length > 0 || cst.formalDuplicates.length > 0 || cst.status === CstStatus.INCORRECT || cst.status === CstStatus.INCALCULABLE || cst.is_type_mismatch) {
413
+ return true;
414
+ }
415
+ if (isBasicConcept(cst.cst_type) && !isLogical(cst.cst_type)) {
416
+ if (!cst.convention || !cst.term_resolved) {
417
+ return true;
418
+ }
419
+ }
420
+ return false;
421
+ }
422
+ function isBasicConcept(type) {
423
+ switch (type) {
424
+ case CstType.NOMINAL:
425
+ case CstType.BASE:
426
+ case CstType.CONSTANT:
427
+ case CstType.STRUCTURED:
428
+ case CstType.AXIOM:
429
+ return true;
430
+ case CstType.TERM:
431
+ case CstType.FUNCTION:
432
+ case CstType.PREDICATE:
433
+ case CstType.STATEMENT:
434
+ return false;
435
+ }
436
+ }
437
+ function isBaseSet(type) {
438
+ switch (type) {
439
+ case CstType.BASE:
440
+ case CstType.CONSTANT:
441
+ return true;
442
+ case CstType.NOMINAL:
443
+ case CstType.STRUCTURED:
444
+ case CstType.AXIOM:
445
+ case CstType.TERM:
446
+ case CstType.FUNCTION:
447
+ case CstType.PREDICATE:
448
+ case CstType.STATEMENT:
449
+ return false;
450
+ }
451
+ }
452
+ function isLogical(type) {
453
+ switch (type) {
454
+ case CstType.AXIOM:
455
+ case CstType.STATEMENT:
456
+ return true;
457
+ case CstType.NOMINAL:
458
+ case CstType.BASE:
459
+ case CstType.CONSTANT:
460
+ case CstType.STRUCTURED:
461
+ case CstType.TERM:
462
+ case CstType.FUNCTION:
463
+ case CstType.PREDICATE:
464
+ return false;
465
+ }
466
+ }
467
+ function calculateSchemaStats(target) {
468
+ const items = target.items;
469
+ return {
470
+ count_all: items.length,
471
+ count_crucial: items.reduce((sum, cst) => sum + (cst.crucial ? 1 : 0), 0),
472
+ step_complexity: items.reduce((sum, cst) => sum + calculateStepComplexity(cst), 0),
473
+ count_problematic: items.reduce((sum, cst) => sum + (isSchemaIssue(cst) ? 1 : 0), 0),
474
+ count_homonyms: items.reduce((sum, cst) => sum + (cst.homonyms.length > 0 ? 1 : 0), 0),
475
+ count_formal_duplicates: items.reduce((sum, cst) => sum + (cst.formalDuplicates.length > 0 ? 1 : 0), 0),
476
+ count_missing_convention: items.reduce((sum, cst) => sum + (isMissingConvention(cst) ? 1 : 0), 0),
477
+ count_type_mismatch: items.reduce((sum, cst) => sum + (cst.is_type_mismatch ? 1 : 0), 0),
478
+ count_incorrect: items.reduce((sum, cst) => sum + (cst.status === CstStatus.INCORRECT ? 1 : 0), 0),
479
+ count_property: items.reduce((sum, cst) => sum + (cst.analysis?.valueClass === ValueClass.PROPERTY ? 1 : 0), 0),
480
+ count_incalculable: items.reduce(
481
+ (sum, cst) => sum + (cst.analysis?.success && cst.analysis.valueClass === null ? 1 : 0),
482
+ 0
483
+ ),
484
+ count_inherited: items.reduce((sum, cst) => sum + (cst.is_inherited ? 1 : 0), 0),
485
+ count_text_term: items.reduce((sum, cst) => sum + (cst.term_raw ? 1 : 0), 0),
486
+ count_definition: items.reduce((sum, cst) => sum + (cst.definition_raw ? 1 : 0), 0),
487
+ count_convention: items.reduce((sum, cst) => sum + (isBasicConcept(cst.cst_type) && cst.convention ? 1 : 0), 0),
488
+ count_comment: items.reduce((sum, cst) => sum + (!isBasicConcept(cst.cst_type) && !cst.convention ? 1 : 0), 0),
489
+ count_base: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.BASE ? 1 : 0), 0),
490
+ count_constant: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.CONSTANT ? 1 : 0), 0),
491
+ count_structured: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.STRUCTURED ? 1 : 0), 0),
492
+ count_axiom: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.AXIOM ? 1 : 0), 0),
493
+ count_term: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.TERM ? 1 : 0), 0),
494
+ count_function: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.FUNCTION ? 1 : 0), 0),
495
+ count_predicate: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.PREDICATE ? 1 : 0), 0),
496
+ count_statement: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.STATEMENT ? 1 : 0), 0),
497
+ count_nominal: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.NOMINAL ? 1 : 0), 0)
498
+ };
499
+ }
500
+ function calculateStepComplexity(cst) {
501
+ if (cst.cst_type === CstType.AXIOM || cst.cst_type === CstType.NOMINAL || !isBasicConcept(cst.cst_type)) {
502
+ return 0;
503
+ }
504
+ if (cst.cst_type === CstType.BASE || cst.cst_type === CstType.CONSTANT || !cst.effectiveType) {
505
+ return 1;
506
+ }
507
+ const type = cst.effectiveType;
508
+ return calculateTypificationComplexity(type) + 1;
509
+ }
510
+ function calculateTypificationComplexity(type) {
511
+ switch (type.typeID) {
512
+ case TypeID.basic:
513
+ case TypeID.integer:
514
+ case TypeID.anyTypification:
515
+ return 0;
516
+ case TypeID.tuple:
517
+ return type.factors.length + type.factors.reduce((sum, factor) => sum + calculateTypificationComplexity(factor), 0);
518
+ case TypeID.collection:
519
+ if (type.base.typeID === TypeID.tuple) {
520
+ let sum = 0;
521
+ type.base.factors.forEach((factor) => {
522
+ sum += calculateTypificationComplexity(factor);
523
+ });
524
+ return sum + type.base.factors.length;
525
+ } else if (type.base.typeID === TypeID.collection) {
526
+ return calculateTypificationComplexity(type.base) + 1;
527
+ }
528
+ return 0;
529
+ }
530
+ }
531
+ function isMissingConvention(cst) {
532
+ if (isBasicConcept(cst.cst_type) && !isLogical(cst.cst_type)) {
533
+ if (!cst.convention || !cst.term_resolved) {
534
+ return true;
535
+ }
536
+ }
537
+ return false;
538
+ }
539
+
540
+ // src/library/rsmodel.ts
541
+ var EvalStatus = {
542
+ NO_EVAL: 1,
543
+ // не вычисляется
544
+ NOT_PROCESSED: 2,
545
+ // Интерпретация не вычислялась
546
+ INVALID_DATA: 3,
547
+ // Неверные данные
548
+ EVAL_FAIL: 4,
549
+ // Ошибка при вычислении
550
+ AXIOM_FALSE: 5,
551
+ // Значение аксиомы = FALSE
552
+ EMPTY: 6,
553
+ // Значение пусто
554
+ HAS_DATA: 7
555
+ // Интерпретация вычислена и не пуста
556
+ };
557
+
558
+ // src/library/rsmodel-api.ts
559
+ var RANDOM_INTEGER_MIN = -100;
560
+ var RANDOM_INTEGER_MAX = 100;
561
+ var DEFAULT_RANDOM_SET_ELEMENTS_COUNT = 5;
562
+ function validateBasicBindingData(data) {
563
+ if (!data || typeof data !== "object" || Array.isArray(data)) {
564
+ return false;
565
+ }
566
+ return Object.entries(data).every(([key, value]) => typeof value === "string" && Number.isInteger(Number(key)));
567
+ }
568
+ function toBasicBinding(data) {
569
+ const result = {};
570
+ for (const [k, v] of Object.entries(data)) {
571
+ result[Number(k)] = v;
572
+ }
573
+ return result;
574
+ }
575
+ function validateValueData(data) {
576
+ if (typeof data === "number") {
577
+ return Number.isFinite(data);
578
+ }
579
+ if (!Array.isArray(data)) {
580
+ return false;
581
+ }
582
+ return data.every((item) => validateValueData(item));
583
+ }
584
+ function generateRandomValue(type, basics, cstByAlias, setElementsCount = DEFAULT_RANDOM_SET_ELEMENTS_COUNT) {
585
+ switch (type.typeID) {
586
+ case TypeID.integer:
587
+ return Math.floor(Math.random() * (RANDOM_INTEGER_MAX - RANDOM_INTEGER_MIN + 1)) + RANDOM_INTEGER_MIN;
588
+ case TypeID.basic: {
589
+ const cst = cstByAlias.get(type.baseID);
590
+ const binding = cst ? basics.get(cst.id) : void 0;
591
+ const ids = Object.keys(binding ?? {}).map(Number);
592
+ if (ids.length === 0) {
593
+ return null;
594
+ }
595
+ return ids[Math.floor(Math.random() * ids.length)];
596
+ }
597
+ case TypeID.tuple: {
598
+ const factors = [];
599
+ for (const factor of type.factors) {
600
+ const sample = generateRandomValue(factor, basics, cstByAlias, setElementsCount);
601
+ if (sample === null) {
602
+ return null;
603
+ }
604
+ factors.push(sample);
605
+ }
606
+ return tuple(factors);
607
+ }
608
+ case TypeID.collection: {
609
+ const result = [];
610
+ const randomElementsCount = Math.floor(Math.random() * (setElementsCount + 1));
611
+ for (let i = 0; i < randomElementsCount; i++) {
612
+ const sample = generateRandomValue(type.base, basics, cstByAlias, setElementsCount);
613
+ if (sample === null) {
614
+ return null;
615
+ }
616
+ result.push(sample);
617
+ }
618
+ return result;
619
+ }
620
+ case TypeID.anyTypification:
621
+ return null;
622
+ }
623
+ }
624
+ function calculateModelStats(schema, engine, _engineGeneration) {
625
+ const items = schema.items;
626
+ const statusByID = /* @__PURE__ */ new Map();
627
+ for (const cst of items) {
628
+ statusByID.set(cst.id, engine.getCstStatus(cst.id));
629
+ }
630
+ return {
631
+ ...calculateSchemaStats(schema),
632
+ base_elements: items.reduce((sum, cst) => sum + countBaseElements(cst, engine), 0),
633
+ count_missing_base: items.reduce(
634
+ (sum, cst) => sum + (statusByID.get(cst.id) === EvalStatus.EMPTY && isBasicConcept(cst.cst_type) ? 1 : 0),
635
+ 0
636
+ ),
637
+ count_false_axioms: items.reduce(
638
+ (sum, cst) => sum + (statusByID.get(cst.id) === EvalStatus.AXIOM_FALSE ? 1 : 0),
639
+ 0
640
+ ),
641
+ count_invalid_data: items.reduce(
642
+ (sum, cst) => sum + (statusByID.get(cst.id) === EvalStatus.INVALID_DATA ? 1 : 0),
643
+ 0
644
+ ),
645
+ count_invalid_calculations: items.reduce(
646
+ (sum, cst) => sum + (statusByID.get(cst.id) === EvalStatus.EVAL_FAIL || statusByID.get(cst.id) === EvalStatus.NOT_PROCESSED ? 1 : 0),
647
+ 0
648
+ ),
649
+ count_empty_terms: items.reduce(
650
+ (sum, cst) => sum + (statusByID.get(cst.id) === EvalStatus.EMPTY && cst.cst_type === CstType.TERM ? 1 : 0),
651
+ 0
652
+ )
653
+ };
654
+ }
655
+ function isModelIssue(engine, cst) {
656
+ const status = engine.getCstStatus(cst.id);
657
+ const isBasic = isBasicConcept(cst.cst_type);
658
+ return status === EvalStatus.EVAL_FAIL || status === EvalStatus.AXIOM_FALSE || status === EvalStatus.INVALID_DATA || isBasic && status === EvalStatus.EMPTY;
659
+ }
660
+ function isInterpretable(type) {
661
+ switch (type) {
662
+ case CstType.BASE:
663
+ case CstType.CONSTANT:
664
+ case CstType.STRUCTURED:
665
+ case CstType.AXIOM:
666
+ case CstType.TERM:
667
+ case CstType.STATEMENT:
668
+ return true;
669
+ case CstType.NOMINAL:
670
+ case CstType.FUNCTION:
671
+ case CstType.PREDICATE:
672
+ return false;
673
+ }
674
+ }
675
+ function isInferrable(type) {
676
+ switch (type) {
677
+ case CstType.AXIOM:
678
+ case CstType.STATEMENT:
679
+ case CstType.TERM:
680
+ return true;
681
+ case CstType.NOMINAL:
682
+ case CstType.BASE:
683
+ case CstType.CONSTANT:
684
+ case CstType.STRUCTURED:
685
+ case CstType.FUNCTION:
686
+ case CstType.PREDICATE:
687
+ return false;
688
+ }
689
+ }
690
+ function inferEvalStatus(value, cstType, wasCalculated = true, isInvalid = false) {
691
+ if (isBaseSet(cstType) || cstType === CstType.STRUCTURED) {
692
+ if (isInvalid) {
693
+ return EvalStatus.INVALID_DATA;
694
+ }
695
+ if (value === null || Array.isArray(value) && value.length === 0) {
696
+ return EvalStatus.EMPTY;
697
+ }
698
+ return EvalStatus.HAS_DATA;
699
+ }
700
+ if (!isInferrable(cstType)) {
701
+ return EvalStatus.NO_EVAL;
702
+ }
703
+ if (!wasCalculated) {
704
+ return EvalStatus.NOT_PROCESSED;
705
+ }
706
+ if (value === null) {
707
+ return EvalStatus.EVAL_FAIL;
708
+ }
709
+ if (cstType === CstType.AXIOM && value !== VALUE_TRUE) {
710
+ return EvalStatus.AXIOM_FALSE;
711
+ }
712
+ if (Array.isArray(value) && value.length === 0) {
713
+ return EvalStatus.EMPTY;
714
+ }
715
+ return EvalStatus.HAS_DATA;
716
+ }
717
+ function tryFixValue(value, type, targetAlias, targetValue) {
718
+ switch (type.typeID) {
719
+ case TypeID.integer:
720
+ return false;
721
+ case TypeID.basic:
722
+ if (type.baseID !== targetAlias) {
723
+ return false;
724
+ }
725
+ if (typeof value !== "number") {
726
+ return null;
727
+ }
728
+ if (!targetValue.includes(value)) {
729
+ return null;
730
+ }
731
+ return false;
732
+ case TypeID.tuple: {
733
+ if (!isTupleValue(value)) {
734
+ return null;
735
+ }
736
+ let wasChanged2 = false;
737
+ for (let i = 0; i < type.factors.length; i++) {
738
+ const componentChanged = tryFixValue(value[i + 1], type.factors[i], targetAlias, targetValue);
739
+ if (componentChanged === null) {
740
+ return null;
741
+ }
742
+ if (componentChanged) {
743
+ wasChanged2 = true;
744
+ }
745
+ }
746
+ return wasChanged2;
747
+ }
748
+ case TypeID.collection:
749
+ if (!Array.isArray(value) || value.length > 1 && value[0] === TUPLE_ID) {
750
+ return null;
751
+ }
752
+ let wasChanged = false;
753
+ const removeElements = [];
754
+ for (const item of value) {
755
+ const elementChanged = tryFixValue(item, type.base, targetAlias, targetValue);
756
+ if (elementChanged === null || elementChanged === true) {
757
+ wasChanged = true;
758
+ if (elementChanged === null) {
759
+ removeElements.push(item);
760
+ }
761
+ }
762
+ }
763
+ for (const item of removeElements) {
764
+ const index = value.indexOf(item);
765
+ if (index !== -1) {
766
+ value.splice(index, 1);
767
+ }
768
+ }
769
+ if (wasChanged) {
770
+ value.sort((a, b) => compare(a, b));
771
+ let i = 1;
772
+ while (i < value.length) {
773
+ if (compare(value[i], value[i - 1]) === 0) {
774
+ value.splice(i, 1);
775
+ } else {
776
+ i++;
777
+ }
778
+ }
779
+ }
780
+ return wasChanged;
781
+ case TypeID.logic:
782
+ case TypeID.anyTypification:
783
+ case TypeID.predicate:
784
+ case TypeID.function:
785
+ return null;
786
+ }
787
+ }
788
+ function updateValueElement(value, path, newValue) {
789
+ return setNestedValue(value, path, newValue);
790
+ }
791
+ function deleteValueElement(value, path, type, target) {
792
+ if (path.length === 0 && type.typeID !== TypeID.collection) {
793
+ return null;
794
+ }
795
+ const arrayValue = extractValue(value, path);
796
+ const updatedArray = [...arrayValue.slice(0, target), ...arrayValue.slice(target + 1)];
797
+ return setNestedValue(value, path, updatedArray);
798
+ }
799
+ function addValueElement(value, path, type, currentType) {
800
+ if (path.length === 0 && type.typeID !== TypeID.collection) {
801
+ return makeDefaultValue(type);
802
+ }
803
+ const newElem = makeDefaultValue(currentType.base);
804
+ const arrayValue = extractValue(value, path) ?? [];
805
+ const updatedArray = [newElem, ...arrayValue];
806
+ return setNestedValue(value, path, updatedArray);
807
+ }
808
+ function countBaseElements(cst, engine) {
809
+ if (!isBasicConcept(cst.cst_type)) {
810
+ return 0;
811
+ }
812
+ const value = engine.getCstValue(cst.id);
813
+ if (value === null) {
814
+ return 0;
815
+ }
816
+ if (!Array.isArray(value) || value[0] === TUPLE_ID) {
817
+ return 1;
818
+ }
819
+ return value.length;
820
+ }
821
+ export {
822
+ addValueElement,
823
+ calculateModelStats,
824
+ deleteValueElement,
825
+ generateRandomValue,
826
+ inferEvalStatus,
827
+ isInferrable,
828
+ isInterpretable,
829
+ isModelIssue,
830
+ toBasicBinding,
831
+ tryFixValue,
832
+ updateValueElement,
833
+ validateBasicBindingData,
834
+ validateValueData
835
+ };
836
+ //# sourceMappingURL=rsmodel-api.js.map