@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,879 @@
1
+ // src/rslang/error.ts
2
+ var RSErrorCode = {
3
+ unknownSyntax: 33792,
4
+ // 33792
5
+ missingParenthesis: 33798,
6
+ // 33798
7
+ missingCurlyBrace: 33799,
8
+ // 33799
9
+ missingSquareBracket: 33800,
10
+ // 33800
11
+ bracketMismatch: 33801,
12
+ // 33801
13
+ doubleParenthesis: 33802,
14
+ // 33802
15
+ missingOpenBracket: 33803,
16
+ // 33803
17
+ expectedLocal: 33813,
18
+ // 33813
19
+ expectedType: 33814,
20
+ // 33814
21
+ localDoubleDeclare: 10241,
22
+ // 10241
23
+ localNotUsed: 10242,
24
+ // 10242
25
+ localUndeclared: 34817,
26
+ // 34817
27
+ localShadowing: 34818,
28
+ // 34818
29
+ typesNotEqual: 34819,
30
+ // 34819
31
+ globalNotTyped: 34820,
32
+ // 34820
33
+ invalidDecart: 34821,
34
+ // 34821
35
+ invalidBoolean: 34822,
36
+ // 34822
37
+ invalidTypeOperation: 34823,
38
+ // 34823
39
+ invalidCard: 34824,
40
+ // 34824
41
+ invalidDebool: 34825,
42
+ // 34825
43
+ globalFuncWithoutArgs: 34827,
44
+ // 34827
45
+ invalidReduce: 34832,
46
+ // 34832
47
+ invalidProjectionTuple: 34833,
48
+ // 34833
49
+ invalidProjectionSet: 34834,
50
+ // 34834
51
+ invalidEnumeration: 34835,
52
+ // 34835
53
+ invalidCortegeDeclare: 34836,
54
+ // 34836
55
+ localOutOfScope: 34837,
56
+ // 34837
57
+ invalidElementPredicate: 34838,
58
+ // 34838
59
+ invalidEmptySetUsage: 34839,
60
+ // 34839
61
+ invalidArgsArity: 34840,
62
+ // 34840
63
+ invalidArgumentType: 34841,
64
+ // 34841
65
+ globalStructure: 34844,
66
+ // 34844
67
+ radicalUsage: 34849,
68
+ // 34849
69
+ invalidFilterArgumentType: 34850,
70
+ // 34850
71
+ invalidFilterArity: 34851,
72
+ // 34851
73
+ arithmeticNotSupported: 34852,
74
+ // 34852
75
+ typesNotCompatible: 34853,
76
+ // 34853
77
+ orderingNotSupported: 34854,
78
+ // 34854
79
+ expectedLogic: 34855,
80
+ // 34855
81
+ expectedSetexpr: 34856,
82
+ // 34856
83
+ invalidArgumentCortegeDeclare: 34857,
84
+ // 34857
85
+ globalNoValue: 34880,
86
+ // 34880
87
+ invalidPropertyUsage: 34881,
88
+ // 34881
89
+ // Value evaluation (runtime)
90
+ calcUnknownError: 33024,
91
+ // 35328
92
+ setOverflow: 33025,
93
+ // 35329
94
+ booleanBaseLimit: 33026,
95
+ // 35330
96
+ calcGlobalMissing: 33027,
97
+ // 35331
98
+ iterationsLimit: 33028,
99
+ // 35332
100
+ calcInvalidDebool: 33029,
101
+ // 35333
102
+ iterateInfinity: 33030,
103
+ // 35334
104
+ calculationNotSupported: 33031,
105
+ // 35335
106
+ cstEmptyDerived: 34913,
107
+ // 34913
108
+ definitionNotAllowed: 34914
109
+ // 34914
110
+ };
111
+
112
+ // src/parsing/ast.ts
113
+ var TOKEN_ERROR = 0;
114
+
115
+ // src/rslang/parser/token.ts
116
+ var TokenID = {
117
+ // Global, local IDs and literals
118
+ ERROR: TOKEN_ERROR,
119
+ ID_LOCAL: 258,
120
+ ID_GLOBAL: 259,
121
+ ID_FUNCTION: 260,
122
+ ID_PREDICATE: 261,
123
+ ID_RADICAL: 262,
124
+ LIT_INTEGER: 263,
125
+ LIT_WHOLE_NUMBERS: 264,
126
+ LIT_EMPTYSET: 265,
127
+ // Arithmetic
128
+ PLUS: 266,
129
+ MINUS: 267,
130
+ MULTIPLY: 268,
131
+ // Integer predicate symbols
132
+ GREATER: 269,
133
+ LESSER: 270,
134
+ GREATER_OR_EQ: 271,
135
+ LESSER_OR_EQ: 272,
136
+ // Equality comparison
137
+ EQUAL: 273,
138
+ NOTEQUAL: 274,
139
+ // Logic predicate symbols
140
+ QUANTOR_UNIVERSAL: 275,
141
+ QUANTOR_EXISTS: 276,
142
+ LOGIC_NOT: 277,
143
+ LOGIC_EQUIVALENT: 278,
144
+ LOGIC_IMPLICATION: 279,
145
+ LOGIC_OR: 280,
146
+ LOGIC_AND: 281,
147
+ // Set theory predicate symbols
148
+ SET_IN: 282,
149
+ SET_NOT_IN: 283,
150
+ SUBSET: 284,
151
+ SUBSET_OR_EQ: 285,
152
+ NOT_SUBSET: 286,
153
+ // Set theory operators
154
+ DECART: 287,
155
+ SET_UNION: 288,
156
+ SET_INTERSECTION: 289,
157
+ SET_MINUS: 290,
158
+ SET_SYMMETRIC_MINUS: 291,
159
+ BOOLEAN: 292,
160
+ // Structure operations
161
+ BIGPR: 293,
162
+ SMALLPR: 294,
163
+ FILTER: 295,
164
+ CARD: 296,
165
+ BOOL: 297,
166
+ DEBOOL: 298,
167
+ REDUCE: 299,
168
+ // Term constructions prefixes
169
+ DECLARATIVE: 300,
170
+ RECURSIVE: 301,
171
+ IMPERATIVE: 302,
172
+ ITERATE: 303,
173
+ ASSIGN: 304,
174
+ // Punctuation
175
+ PUNCTUATION_DEFINE: 305,
176
+ PUNCTUATION_STRUCT: 306,
177
+ PUNCTUATION_PL: 307,
178
+ PUNCTUATION_PR: 308,
179
+ PUNCTUATION_CL: 309,
180
+ PUNCTUATION_CR: 310,
181
+ PUNCTUATION_SL: 311,
182
+ PUNCTUATION_SR: 312,
183
+ PUNCTUATION_BAR: 313,
184
+ PUNCTUATION_COMMA: 314,
185
+ PUNCTUATION_SEMICOLON: 315,
186
+ // ======= Non-terminal tokens =========
187
+ NT_ENUM_DECL: 316,
188
+ NT_TUPLE: 317,
189
+ NT_ENUMERATION: 318,
190
+ NT_TUPLE_DECL: 319,
191
+ NT_ARG_DECL: 320,
192
+ NT_FUNC_DEFINITION: 321,
193
+ NT_ARGUMENTS: 322,
194
+ NT_FUNC_CALL: 323,
195
+ NT_DECLARATIVE_EXPR: 324,
196
+ NT_IMPERATIVE_EXPR: 325,
197
+ NT_RECURSIVE_FULL: 326,
198
+ NT_RECURSIVE_SHORT: 327,
199
+ // ======= Helper tokens ========
200
+ INTERRUPT: 328,
201
+ END: 329
202
+ };
203
+
204
+ // src/rslang/semantic/typification.ts
205
+ var TypeID = {
206
+ anyTypification: 1,
207
+ integer: 2,
208
+ basic: 3,
209
+ tuple: 4,
210
+ collection: 5,
211
+ logic: 6,
212
+ function: 7,
213
+ predicate: 8
214
+ };
215
+ var TypeClass = {
216
+ logic: 1,
217
+ typification: 2,
218
+ function: 3,
219
+ predicate: 4
220
+ };
221
+ var LogicT = { typeID: TypeID.logic };
222
+ var IntegerT = {
223
+ typeID: TypeID.integer,
224
+ isOrdered: true,
225
+ isArithmetic: true,
226
+ isIntegerCompatible: true
227
+ };
228
+ var AnyTypificationT = { typeID: TypeID.anyTypification };
229
+ var EmptySetT = bool(AnyTypificationT);
230
+ function basic(alias) {
231
+ return { typeID: TypeID.basic, baseID: alias };
232
+ }
233
+ function constant(alias) {
234
+ return { typeID: TypeID.basic, baseID: alias, isOrdered: true, isArithmetic: true, isIntegerCompatible: true };
235
+ }
236
+ function bool(base) {
237
+ return { typeID: TypeID.collection, base };
238
+ }
239
+ function component(target, index) {
240
+ return target.factors[index - 1] ?? null;
241
+ }
242
+ function isTypification(type) {
243
+ return type?.typeID === TypeID.basic || type?.typeID === TypeID.anyTypification || type?.typeID === TypeID.integer || type?.typeID === TypeID.collection || type?.typeID === TypeID.tuple;
244
+ }
245
+
246
+ // src/rslang/parser/parser.ts
247
+ import { LRParser } from "@lezer/lr";
248
+ var parser = LRParser.deserialize({
249
+ version: 14,
250
+ 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",
251
+ 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~",
252
+ 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",
253
+ 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",
254
+ maxTerm: 87,
255
+ nodeProps: [
256
+ ["openedBy", 6, "(", 53, "{"],
257
+ ["closedBy", 7, ")", 54, "}"]
258
+ ],
259
+ skippedNodes: [0],
260
+ repeatNodeCount: 0,
261
+ 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_~",
262
+ tokenizers: [0],
263
+ topRules: { "Expression": [0, 1] },
264
+ tokenPrec: 2679
265
+ });
266
+
267
+ // src/rslang/parser/parser.terms.ts
268
+ var Local = 5;
269
+ var Tuple = 8;
270
+ var Predicate = 26;
271
+ var Variable_pack = 31;
272
+ var Integer = 39;
273
+ var EmptySet = 40;
274
+ var IntegerSet = 41;
275
+ var Global = 42;
276
+ var Radical = 43;
277
+ var Enumeration = 55;
278
+ var Boolean = 56;
279
+ var Filter = 59;
280
+ var Declarative = 60;
281
+ var Imperative = 64;
282
+ var Function = 69;
283
+ var BigPr = 70;
284
+ var SmallPr = 71;
285
+ var Card = 72;
286
+ var Bool = 73;
287
+ var Debool = 74;
288
+ var Red = 75;
289
+ var Function_decl = 76;
290
+ var Arguments = 77;
291
+ var Declaration = 78;
292
+
293
+ // src/rslang/parser/normalize.ts
294
+ var idRecord = {
295
+ [Global]: TokenID.ID_GLOBAL,
296
+ [Local]: TokenID.ID_LOCAL,
297
+ [Radical]: TokenID.ID_RADICAL,
298
+ [Function]: TokenID.ID_FUNCTION,
299
+ [Predicate]: TokenID.ID_PREDICATE,
300
+ [Integer]: TokenID.LIT_INTEGER,
301
+ [EmptySet]: TokenID.LIT_EMPTYSET,
302
+ [IntegerSet]: TokenID.LIT_WHOLE_NUMBERS,
303
+ [Boolean]: TokenID.BOOLEAN,
304
+ [BigPr]: TokenID.BIGPR,
305
+ [SmallPr]: TokenID.SMALLPR,
306
+ [Filter]: TokenID.FILTER,
307
+ [Bool]: TokenID.BOOL,
308
+ [Debool]: TokenID.DEBOOL,
309
+ [Red]: TokenID.REDUCE,
310
+ [Card]: TokenID.CARD,
311
+ [Enumeration]: TokenID.NT_ENUMERATION,
312
+ [Tuple]: TokenID.NT_TUPLE,
313
+ [Arguments]: TokenID.NT_ARGUMENTS,
314
+ [Declaration]: TokenID.NT_ARG_DECL,
315
+ [Function_decl]: TokenID.NT_FUNC_DEFINITION,
316
+ [Variable_pack]: TokenID.NT_ENUM_DECL,
317
+ [Declarative]: TokenID.NT_DECLARATIVE_EXPR,
318
+ [Imperative]: TokenID.NT_IMPERATIVE_EXPR
319
+ };
320
+
321
+ // src/rslang/labels.ts
322
+ var labelTokenRecord = {
323
+ [TokenID.DECART]: "\xD7",
324
+ [TokenID.PUNCTUATION_PL]: "( )",
325
+ [TokenID.PUNCTUATION_SL]: "[ ]",
326
+ [TokenID.QUANTOR_UNIVERSAL]: "\u2200",
327
+ [TokenID.QUANTOR_EXISTS]: "\u2203",
328
+ [TokenID.LOGIC_NOT]: "\xAC",
329
+ [TokenID.LOGIC_AND]: "&",
330
+ [TokenID.LOGIC_OR]: "\u2228",
331
+ [TokenID.LOGIC_IMPLICATION]: "\u21D2",
332
+ [TokenID.LOGIC_EQUIVALENT]: "\u21D4",
333
+ [TokenID.LIT_EMPTYSET]: "\u2205",
334
+ [TokenID.LIT_WHOLE_NUMBERS]: "Z",
335
+ [TokenID.MULTIPLY]: "*",
336
+ [TokenID.EQUAL]: "=",
337
+ [TokenID.NOTEQUAL]: "\u2260",
338
+ [TokenID.GREATER_OR_EQ]: "\u2265",
339
+ [TokenID.LESSER_OR_EQ]: "\u2264",
340
+ [TokenID.SET_IN]: "\u2208",
341
+ [TokenID.SET_NOT_IN]: "\u2209",
342
+ [TokenID.SUBSET_OR_EQ]: "\u2286",
343
+ [TokenID.SUBSET]: "\u2282",
344
+ [TokenID.NOT_SUBSET]: "\u2284",
345
+ [TokenID.SET_INTERSECTION]: "\u2229",
346
+ [TokenID.SET_UNION]: "\u222A",
347
+ [TokenID.SET_MINUS]: "\\",
348
+ [TokenID.SET_SYMMETRIC_MINUS]: "\u2206",
349
+ [TokenID.BOOLEAN]: "\u212C()",
350
+ [TokenID.NT_DECLARATIVE_EXPR]: "D{}",
351
+ [TokenID.NT_IMPERATIVE_EXPR]: "I{}",
352
+ [TokenID.NT_RECURSIVE_FULL]: "R{}",
353
+ [TokenID.BIGPR]: "Pr1()",
354
+ [TokenID.SMALLPR]: "pr1()",
355
+ [TokenID.FILTER]: "Fi1[]()",
356
+ [TokenID.REDUCE]: "red()",
357
+ [TokenID.CARD]: "card()",
358
+ [TokenID.BOOL]: "bool()",
359
+ [TokenID.DEBOOL]: "debool()",
360
+ [TokenID.ASSIGN]: ":=",
361
+ [TokenID.ITERATE]: ":\u2208"
362
+ };
363
+
364
+ // src/rslang/semantic/typification-api.ts
365
+ var TypeIDToClass = {
366
+ [TypeID.anyTypification]: TypeClass.typification,
367
+ [TypeID.integer]: TypeClass.typification,
368
+ [TypeID.basic]: TypeClass.typification,
369
+ [TypeID.tuple]: TypeClass.typification,
370
+ [TypeID.collection]: TypeClass.typification,
371
+ [TypeID.logic]: TypeClass.logic,
372
+ [TypeID.function]: TypeClass.function,
373
+ [TypeID.predicate]: TypeClass.predicate
374
+ };
375
+ function applyPath(target, path, index = 0) {
376
+ let current = target;
377
+ let i = index;
378
+ while (i < path.length && current) {
379
+ switch (current.typeID) {
380
+ case TypeID.anyTypification:
381
+ case TypeID.integer:
382
+ case TypeID.basic:
383
+ return null;
384
+ case TypeID.collection:
385
+ current = current.base;
386
+ i++;
387
+ break;
388
+ case TypeID.tuple:
389
+ current = component(current, path[i]);
390
+ if (current === null) {
391
+ return null;
392
+ }
393
+ i++;
394
+ break;
395
+ }
396
+ }
397
+ return current;
398
+ }
399
+
400
+ // src/rslang/semantic/value-class.ts
401
+ var ValueClass = {
402
+ VALUE: "value",
403
+ PROPERTY: "property"
404
+ };
405
+
406
+ // src/library/rsform.ts
407
+ var CstType = {
408
+ NOMINAL: "nominal",
409
+ BASE: "basic",
410
+ STRUCTURED: "structure",
411
+ TERM: "term",
412
+ AXIOM: "axiom",
413
+ FUNCTION: "function",
414
+ PREDICATE: "predicate",
415
+ CONSTANT: "constant",
416
+ STATEMENT: "statement"
417
+ };
418
+ var CstClass = {
419
+ NOMINAL: "nominal",
420
+ BASIC: "basic",
421
+ DERIVED: "derived",
422
+ STATEMENT: "statement",
423
+ TEMPLATE: "template"
424
+ };
425
+ var CstStatus = {
426
+ VERIFIED: "verified",
427
+ INCORRECT: "incorrect",
428
+ INCALCULABLE: "incalculable",
429
+ PROPERTY: "property",
430
+ UNKNOWN: "unknown"
431
+ };
432
+
433
+ // src/library/rsform-api.ts
434
+ var CST_TYPE_PREFIX = {
435
+ [CstType.NOMINAL]: "N",
436
+ [CstType.BASE]: "X",
437
+ [CstType.CONSTANT]: "C",
438
+ [CstType.STRUCTURED]: "S",
439
+ [CstType.AXIOM]: "A",
440
+ [CstType.TERM]: "D",
441
+ [CstType.FUNCTION]: "F",
442
+ [CstType.PREDICATE]: "P",
443
+ [CstType.STATEMENT]: "T"
444
+ };
445
+ var CST_TYPE_TO_CLASS = {
446
+ [CstType.NOMINAL]: CstClass.NOMINAL,
447
+ [CstType.BASE]: CstClass.BASIC,
448
+ [CstType.CONSTANT]: CstClass.BASIC,
449
+ [CstType.STRUCTURED]: CstClass.BASIC,
450
+ [CstType.TERM]: CstClass.DERIVED,
451
+ [CstType.FUNCTION]: CstClass.DERIVED,
452
+ [CstType.AXIOM]: CstClass.STATEMENT,
453
+ [CstType.PREDICATE]: CstClass.DERIVED,
454
+ [CstType.STATEMENT]: CstClass.STATEMENT
455
+ };
456
+ function isSchemaIssue(cst) {
457
+ if (cst.homonyms.length > 0 || cst.formalDuplicates.length > 0 || cst.status === CstStatus.INCORRECT || cst.status === CstStatus.INCALCULABLE || cst.is_type_mismatch) {
458
+ return true;
459
+ }
460
+ if (isBasicConcept(cst.cst_type) && !isLogical(cst.cst_type)) {
461
+ if (!cst.convention || !cst.term_resolved) {
462
+ return true;
463
+ }
464
+ }
465
+ return false;
466
+ }
467
+ function inferStatus(parse, value) {
468
+ if (!parse) {
469
+ return CstStatus.INCORRECT;
470
+ }
471
+ if (value === null) {
472
+ return CstStatus.INCALCULABLE;
473
+ }
474
+ if (value === ValueClass.PROPERTY) {
475
+ return CstStatus.PROPERTY;
476
+ }
477
+ return CstStatus.VERIFIED;
478
+ }
479
+ function inferTemplatedType(templateType, args) {
480
+ if (args.length === 0 || args.some((arg) => !arg.value)) {
481
+ return templateType;
482
+ } else if (templateType === CstType.PREDICATE) {
483
+ return CstType.AXIOM;
484
+ } else {
485
+ return CstType.TERM;
486
+ }
487
+ }
488
+ function inferTemplate(expression) {
489
+ const match = expression.match(/R\d+/g);
490
+ return (match && match?.length > 0) ?? false;
491
+ }
492
+ function inferClass(type, isTemplate = false) {
493
+ if (isTemplate) {
494
+ return CstClass.TEMPLATE;
495
+ }
496
+ return CST_TYPE_TO_CLASS[type];
497
+ }
498
+ function isTemplateCst(cst) {
499
+ return cst.cst_type === CstType.FUNCTION || cst.cst_type === CstType.PREDICATE || cst.cst_type === CstType.STATEMENT;
500
+ }
501
+ function applyFilterCategory(start, items) {
502
+ const startIndex = items.indexOf(start);
503
+ if (startIndex === -1) {
504
+ return [];
505
+ }
506
+ const nextCategoryIndex = items.findIndex((cst, index) => index > startIndex && cst.cst_type === CstType.STATEMENT);
507
+ return items.filter((_, index) => index >= startIndex && (nextCategoryIndex === -1 || index < nextCategoryIndex));
508
+ }
509
+ function getCstTypePrefix(type) {
510
+ return CST_TYPE_PREFIX[type];
511
+ }
512
+ function guessCstType(hint) {
513
+ if (hint.length !== 1) {
514
+ return null;
515
+ }
516
+ for (const [type, prefix] of Object.entries(CST_TYPE_PREFIX)) {
517
+ if (hint === prefix) {
518
+ return type;
519
+ }
520
+ }
521
+ return null;
522
+ }
523
+ function isBasicConcept(type) {
524
+ switch (type) {
525
+ case CstType.NOMINAL:
526
+ case CstType.BASE:
527
+ case CstType.CONSTANT:
528
+ case CstType.STRUCTURED:
529
+ case CstType.AXIOM:
530
+ return true;
531
+ case CstType.TERM:
532
+ case CstType.FUNCTION:
533
+ case CstType.PREDICATE:
534
+ case CstType.STATEMENT:
535
+ return false;
536
+ }
537
+ }
538
+ function isBaseSet(type) {
539
+ switch (type) {
540
+ case CstType.BASE:
541
+ case CstType.CONSTANT:
542
+ return true;
543
+ case CstType.NOMINAL:
544
+ case CstType.STRUCTURED:
545
+ case CstType.AXIOM:
546
+ case CstType.TERM:
547
+ case CstType.FUNCTION:
548
+ case CstType.PREDICATE:
549
+ case CstType.STATEMENT:
550
+ return false;
551
+ }
552
+ }
553
+ function isFunctional(type) {
554
+ switch (type) {
555
+ case CstType.FUNCTION:
556
+ case CstType.PREDICATE:
557
+ return true;
558
+ case CstType.NOMINAL:
559
+ case CstType.BASE:
560
+ case CstType.CONSTANT:
561
+ case CstType.STRUCTURED:
562
+ case CstType.AXIOM:
563
+ case CstType.TERM:
564
+ case CstType.STATEMENT:
565
+ return false;
566
+ }
567
+ }
568
+ function isLogical(type) {
569
+ switch (type) {
570
+ case CstType.AXIOM:
571
+ case CstType.STATEMENT:
572
+ return true;
573
+ case CstType.NOMINAL:
574
+ case CstType.BASE:
575
+ case CstType.CONSTANT:
576
+ case CstType.STRUCTURED:
577
+ case CstType.TERM:
578
+ case CstType.FUNCTION:
579
+ case CstType.PREDICATE:
580
+ return false;
581
+ }
582
+ }
583
+ function canProduceStructure(cst) {
584
+ switch (cst.cst_type) {
585
+ case CstType.NOMINAL:
586
+ case CstType.BASE:
587
+ case CstType.CONSTANT:
588
+ case CstType.AXIOM:
589
+ case CstType.STATEMENT:
590
+ case CstType.PREDICATE:
591
+ return false;
592
+ }
593
+ if (!cst.effectiveType) {
594
+ return false;
595
+ }
596
+ if (cst.cst_type === CstType.FUNCTION) {
597
+ const result = cst.effectiveType.result;
598
+ return typeCanProduceStructure(result);
599
+ }
600
+ if (!isTypification(cst.effectiveType)) {
601
+ return false;
602
+ }
603
+ return typeCanProduceStructure(cst.effectiveType);
604
+ }
605
+ function canHaveManualTypification(type) {
606
+ switch (type) {
607
+ case CstType.STRUCTURED:
608
+ case CstType.TERM:
609
+ case CstType.FUNCTION:
610
+ case CstType.PREDICATE:
611
+ return true;
612
+ case CstType.NOMINAL:
613
+ case CstType.BASE:
614
+ case CstType.CONSTANT:
615
+ case CstType.AXIOM:
616
+ case CstType.STATEMENT:
617
+ return false;
618
+ }
619
+ }
620
+ function validateNewAlias(alias, type, schema) {
621
+ if (alias.length < 2) {
622
+ return false;
623
+ }
624
+ const prefix = getCstTypePrefix(type);
625
+ if (!alias.startsWith(prefix)) {
626
+ return false;
627
+ }
628
+ if (schema.cstByAlias.has(alias)) {
629
+ return false;
630
+ }
631
+ if (!/^\d+$/.exec(alias.substring(prefix.length))) {
632
+ return false;
633
+ }
634
+ return true;
635
+ }
636
+ function generateAlias(type, schema, takenAliases = []) {
637
+ const prefix = getCstTypePrefix(type);
638
+ if (schema.items.length <= 0) {
639
+ return `${prefix}1`;
640
+ }
641
+ let index = schema.items.reduce((prev, cst, index2) => {
642
+ if (cst.cst_type !== type) {
643
+ return prev;
644
+ }
645
+ index2 = Number(cst.alias.slice(1 - cst.alias.length)) + 1;
646
+ return Math.max(prev, index2);
647
+ }, 1);
648
+ let alias = `${prefix}${index}`;
649
+ while (takenAliases.includes(alias)) {
650
+ index = index + 1;
651
+ alias = `${prefix}${index}`;
652
+ }
653
+ return alias;
654
+ }
655
+ function inferNewSpawnPosition(schema, targetId) {
656
+ let last = null;
657
+ for (const cst of schema.items) {
658
+ if (cst.spawner === targetId) {
659
+ last = cst.id;
660
+ }
661
+ }
662
+ return last ?? targetId;
663
+ }
664
+ function sortItemsForInlineSynthesis(receiver, items) {
665
+ const result = items.filter((item) => item.location === receiver.location);
666
+ for (const item of items) {
667
+ if (item.visible && item.owner === item.owner && !result.includes(item)) {
668
+ result.push(item);
669
+ }
670
+ }
671
+ for (const item of items) {
672
+ if (item.visible && !result.includes(item)) {
673
+ result.push(item);
674
+ }
675
+ }
676
+ for (const item of items) {
677
+ if (!result.includes(item)) {
678
+ result.push(item);
679
+ }
680
+ }
681
+ return result;
682
+ }
683
+ function removeAliasReference(expression, alias) {
684
+ const result = expression.replaceAll(new RegExp(`\\b${alias}\\b`, "g"), "DEL");
685
+ return result === "DEL" ? "" : result;
686
+ }
687
+ function addAliasReference(expression, alias) {
688
+ return expression + " " + alias;
689
+ }
690
+ function typeClassForCstType(cstType) {
691
+ switch (cstType) {
692
+ case CstType.NOMINAL:
693
+ case CstType.BASE:
694
+ case CstType.CONSTANT:
695
+ case CstType.STRUCTURED:
696
+ case CstType.TERM:
697
+ return TypeClass.typification;
698
+ case CstType.FUNCTION:
699
+ return TypeClass.function;
700
+ case CstType.PREDICATE:
701
+ return TypeClass.predicate;
702
+ case CstType.AXIOM:
703
+ case CstType.STATEMENT:
704
+ return TypeClass.logic;
705
+ }
706
+ }
707
+ function canHaveFormalDefinition(cstType) {
708
+ return cstType !== CstType.BASE && cstType !== CstType.CONSTANT;
709
+ }
710
+ function getAnalysisFor(expression, cstType, schema, alias) {
711
+ if (!canHaveFormalDefinition(cstType)) {
712
+ if (expression.trim().length === 0) {
713
+ const fallbackAlias = alias && alias.length > 0 ? alias : "X0";
714
+ const type = cstType === CstType.BASE ? bool(basic(fallbackAlias)) : bool(constant(fallbackAlias));
715
+ return {
716
+ success: true,
717
+ type,
718
+ valueClass: ValueClass.VALUE,
719
+ errors: [],
720
+ ast: null
721
+ };
722
+ }
723
+ return {
724
+ success: false,
725
+ type: null,
726
+ valueClass: null,
727
+ errors: [
728
+ {
729
+ code: RSErrorCode.definitionNotAllowed,
730
+ from: 0,
731
+ to: Math.max(0, expression.length - 1)
732
+ }
733
+ ],
734
+ ast: null
735
+ };
736
+ }
737
+ return schema.analyzer.checkFull(expression, {
738
+ expected: typeClassForCstType(cstType),
739
+ isDomain: cstType === CstType.STRUCTURED
740
+ });
741
+ }
742
+ function calculateSchemaStats(target) {
743
+ const items = target.items;
744
+ return {
745
+ count_all: items.length,
746
+ count_crucial: items.reduce((sum, cst) => sum + (cst.crucial ? 1 : 0), 0),
747
+ step_complexity: items.reduce((sum, cst) => sum + calculateStepComplexity(cst), 0),
748
+ count_problematic: items.reduce((sum, cst) => sum + (isSchemaIssue(cst) ? 1 : 0), 0),
749
+ count_homonyms: items.reduce((sum, cst) => sum + (cst.homonyms.length > 0 ? 1 : 0), 0),
750
+ count_formal_duplicates: items.reduce((sum, cst) => sum + (cst.formalDuplicates.length > 0 ? 1 : 0), 0),
751
+ count_missing_convention: items.reduce((sum, cst) => sum + (isMissingConvention(cst) ? 1 : 0), 0),
752
+ count_type_mismatch: items.reduce((sum, cst) => sum + (cst.is_type_mismatch ? 1 : 0), 0),
753
+ count_incorrect: items.reduce((sum, cst) => sum + (cst.status === CstStatus.INCORRECT ? 1 : 0), 0),
754
+ count_property: items.reduce((sum, cst) => sum + (cst.analysis?.valueClass === ValueClass.PROPERTY ? 1 : 0), 0),
755
+ count_incalculable: items.reduce(
756
+ (sum, cst) => sum + (cst.analysis?.success && cst.analysis.valueClass === null ? 1 : 0),
757
+ 0
758
+ ),
759
+ count_inherited: items.reduce((sum, cst) => sum + (cst.is_inherited ? 1 : 0), 0),
760
+ count_text_term: items.reduce((sum, cst) => sum + (cst.term_raw ? 1 : 0), 0),
761
+ count_definition: items.reduce((sum, cst) => sum + (cst.definition_raw ? 1 : 0), 0),
762
+ count_convention: items.reduce((sum, cst) => sum + (isBasicConcept(cst.cst_type) && cst.convention ? 1 : 0), 0),
763
+ count_comment: items.reduce((sum, cst) => sum + (!isBasicConcept(cst.cst_type) && !cst.convention ? 1 : 0), 0),
764
+ count_base: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.BASE ? 1 : 0), 0),
765
+ count_constant: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.CONSTANT ? 1 : 0), 0),
766
+ count_structured: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.STRUCTURED ? 1 : 0), 0),
767
+ count_axiom: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.AXIOM ? 1 : 0), 0),
768
+ count_term: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.TERM ? 1 : 0), 0),
769
+ count_function: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.FUNCTION ? 1 : 0), 0),
770
+ count_predicate: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.PREDICATE ? 1 : 0), 0),
771
+ count_statement: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.STATEMENT ? 1 : 0), 0),
772
+ count_nominal: items.reduce((sum, cst) => sum + (cst.cst_type === CstType.NOMINAL ? 1 : 0), 0)
773
+ };
774
+ }
775
+ function findCstByStructure(schema, target, path) {
776
+ for (const cst of schema.items) {
777
+ if (cst.spawner === target.id && cst.spawner_path) {
778
+ if (cst.spawner_path.length === path.length && cst.spawner_path.every((v, i) => v === path[i])) {
779
+ return cst;
780
+ }
781
+ }
782
+ }
783
+ return null;
784
+ }
785
+ function getStructureName(schema, target, path) {
786
+ const representation = findCstByStructure(schema, target, path);
787
+ if (representation) {
788
+ return `${representation.alias}: ${representation.term_resolved}`;
789
+ }
790
+ if (!isTypification(target.effectiveType)) {
791
+ return "";
792
+ }
793
+ const type = applyPath(target.effectiveType, path);
794
+ if (type?.typeID === TypeID.basic) {
795
+ const cst = schema.cstByAlias.get(type.baseID);
796
+ if (cst?.term_resolved) {
797
+ return `${cst.alias}: ${cst.term_resolved}`;
798
+ }
799
+ }
800
+ return "";
801
+ }
802
+ function calculateStepComplexity(cst) {
803
+ if (cst.cst_type === CstType.AXIOM || cst.cst_type === CstType.NOMINAL || !isBasicConcept(cst.cst_type)) {
804
+ return 0;
805
+ }
806
+ if (cst.cst_type === CstType.BASE || cst.cst_type === CstType.CONSTANT || !cst.effectiveType) {
807
+ return 1;
808
+ }
809
+ const type = cst.effectiveType;
810
+ return calculateTypificationComplexity(type) + 1;
811
+ }
812
+ function calculateTypificationComplexity(type) {
813
+ switch (type.typeID) {
814
+ case TypeID.basic:
815
+ case TypeID.integer:
816
+ case TypeID.anyTypification:
817
+ return 0;
818
+ case TypeID.tuple:
819
+ return type.factors.length + type.factors.reduce((sum, factor) => sum + calculateTypificationComplexity(factor), 0);
820
+ case TypeID.collection:
821
+ if (type.base.typeID === TypeID.tuple) {
822
+ let sum = 0;
823
+ type.base.factors.forEach((factor) => {
824
+ sum += calculateTypificationComplexity(factor);
825
+ });
826
+ return sum + type.base.factors.length;
827
+ } else if (type.base.typeID === TypeID.collection) {
828
+ return calculateTypificationComplexity(type.base) + 1;
829
+ }
830
+ return 0;
831
+ }
832
+ }
833
+ function isMissingConvention(cst) {
834
+ if (isBasicConcept(cst.cst_type) && !isLogical(cst.cst_type)) {
835
+ if (!cst.convention || !cst.term_resolved) {
836
+ return true;
837
+ }
838
+ }
839
+ return false;
840
+ }
841
+ function typeCanProduceStructure(type) {
842
+ if (type.typeID === TypeID.basic || type.typeID === TypeID.integer || type.typeID === TypeID.anyTypification) {
843
+ return false;
844
+ } else if (type.typeID === TypeID.tuple) {
845
+ return true;
846
+ } else {
847
+ return type.base.typeID !== TypeID.basic && type.base.typeID !== TypeID.integer && type.base.typeID !== TypeID.anyTypification;
848
+ }
849
+ }
850
+ export {
851
+ addAliasReference,
852
+ applyFilterCategory,
853
+ calculateSchemaStats,
854
+ canHaveFormalDefinition,
855
+ canHaveManualTypification,
856
+ canProduceStructure,
857
+ findCstByStructure,
858
+ generateAlias,
859
+ getAnalysisFor,
860
+ getCstTypePrefix,
861
+ getStructureName,
862
+ guessCstType,
863
+ inferClass,
864
+ inferNewSpawnPosition,
865
+ inferStatus,
866
+ inferTemplate,
867
+ inferTemplatedType,
868
+ isBaseSet,
869
+ isBasicConcept,
870
+ isFunctional,
871
+ isLogical,
872
+ isSchemaIssue,
873
+ isTemplateCst,
874
+ removeAliasReference,
875
+ sortItemsForInlineSynthesis,
876
+ typeClassForCstType,
877
+ validateNewAlias
878
+ };
879
+ //# sourceMappingURL=rsform-api.js.map