agentlang 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/LICENSE +83 -0
  2. package/README.md +120 -0
  3. package/bin/cli.js +4 -0
  4. package/out/api/http.d.ts +3 -0
  5. package/out/api/http.d.ts.map +1 -0
  6. package/out/api/http.js +290 -0
  7. package/out/api/http.js.map +1 -0
  8. package/out/cli/cli-util.d.ts +7 -0
  9. package/out/cli/cli-util.d.ts.map +1 -0
  10. package/out/cli/cli-util.js +9 -0
  11. package/out/cli/cli-util.js.map +1 -0
  12. package/out/cli/docs.d.ts +2 -0
  13. package/out/cli/docs.d.ts.map +1 -0
  14. package/out/cli/docs.js +236 -0
  15. package/out/cli/docs.js.map +1 -0
  16. package/out/cli/main.d.ts +288 -0
  17. package/out/cli/main.d.ts.map +1 -0
  18. package/out/cli/main.js +119 -0
  19. package/out/cli/main.js.map +1 -0
  20. package/out/cli/openapi-docs.yml +695 -0
  21. package/out/extension/main.cjs +18093 -0
  22. package/out/extension/main.cjs.map +7 -0
  23. package/out/extension/main.d.ts +4 -0
  24. package/out/extension/main.d.ts.map +1 -0
  25. package/out/extension/main.js +42 -0
  26. package/out/extension/main.js.map +1 -0
  27. package/out/language/agentlang-module.d.ts +42 -0
  28. package/out/language/agentlang-module.d.ts.map +1 -0
  29. package/out/language/agentlang-module.js +42 -0
  30. package/out/language/agentlang-module.js.map +1 -0
  31. package/out/language/agentlang-validator.d.ts +15 -0
  32. package/out/language/agentlang-validator.d.ts.map +1 -0
  33. package/out/language/agentlang-validator.js +50 -0
  34. package/out/language/agentlang-validator.js.map +1 -0
  35. package/out/language/generated/ast.d.ts +491 -0
  36. package/out/language/generated/ast.d.ts.map +1 -0
  37. package/out/language/generated/ast.js +934 -0
  38. package/out/language/generated/ast.js.map +1 -0
  39. package/out/language/generated/grammar.d.ts +7 -0
  40. package/out/language/generated/grammar.d.ts.map +1 -0
  41. package/out/language/generated/grammar.js +4475 -0
  42. package/out/language/generated/grammar.js.map +1 -0
  43. package/out/language/generated/module.d.ts +14 -0
  44. package/out/language/generated/module.d.ts.map +1 -0
  45. package/out/language/generated/module.js +21 -0
  46. package/out/language/generated/module.js.map +1 -0
  47. package/out/language/main-browser.d.ts +2 -0
  48. package/out/language/main-browser.d.ts.map +1 -0
  49. package/out/language/main-browser.js +10 -0
  50. package/out/language/main-browser.js.map +1 -0
  51. package/out/language/main.cjs +36229 -0
  52. package/out/language/main.cjs.map +7 -0
  53. package/out/language/main.d.ts +2 -0
  54. package/out/language/main.d.ts.map +1 -0
  55. package/out/language/main.js +11 -0
  56. package/out/language/main.js.map +1 -0
  57. package/out/language/parser.d.ts +9 -0
  58. package/out/language/parser.d.ts.map +1 -0
  59. package/out/language/parser.js +273 -0
  60. package/out/language/parser.js.map +1 -0
  61. package/out/language/syntax.d.ts +155 -0
  62. package/out/language/syntax.d.ts.map +1 -0
  63. package/out/language/syntax.js +527 -0
  64. package/out/language/syntax.js.map +1 -0
  65. package/out/runtime/agents/common.d.ts +2 -0
  66. package/out/runtime/agents/common.d.ts.map +1 -0
  67. package/out/runtime/agents/common.js +178 -0
  68. package/out/runtime/agents/common.js.map +1 -0
  69. package/out/runtime/agents/impl/openai.d.ts +8 -0
  70. package/out/runtime/agents/impl/openai.d.ts.map +1 -0
  71. package/out/runtime/agents/impl/openai.js +15 -0
  72. package/out/runtime/agents/impl/openai.js.map +1 -0
  73. package/out/runtime/agents/provider.d.ts +21 -0
  74. package/out/runtime/agents/provider.d.ts.map +1 -0
  75. package/out/runtime/agents/provider.js +32 -0
  76. package/out/runtime/agents/provider.js.map +1 -0
  77. package/out/runtime/agents/registry.d.ts +2 -0
  78. package/out/runtime/agents/registry.d.ts.map +1 -0
  79. package/out/runtime/agents/registry.js +10 -0
  80. package/out/runtime/agents/registry.js.map +1 -0
  81. package/out/runtime/auth/cognito.d.ts +16 -0
  82. package/out/runtime/auth/cognito.d.ts.map +1 -0
  83. package/out/runtime/auth/cognito.js +186 -0
  84. package/out/runtime/auth/cognito.js.map +1 -0
  85. package/out/runtime/auth/defs.d.ts +11 -0
  86. package/out/runtime/auth/defs.d.ts.map +1 -0
  87. package/out/runtime/auth/defs.js +24 -0
  88. package/out/runtime/auth/defs.js.map +1 -0
  89. package/out/runtime/auth/interface.d.ts +22 -0
  90. package/out/runtime/auth/interface.d.ts.map +1 -0
  91. package/out/runtime/auth/interface.js +2 -0
  92. package/out/runtime/auth/interface.js.map +1 -0
  93. package/out/runtime/defs.js +24 -0
  94. package/out/runtime/defs.js.map +1 -0
  95. package/out/runtime/interpreter.d.ts +69 -0
  96. package/out/runtime/interpreter.d.ts.map +1 -0
  97. package/out/runtime/interpreter.js +1163 -0
  98. package/out/runtime/interpreter.js.map +1 -0
  99. package/out/runtime/loader.d.ts +25 -0
  100. package/out/runtime/loader.d.ts.map +1 -0
  101. package/out/runtime/loader.js +346 -0
  102. package/out/runtime/loader.js.map +1 -0
  103. package/out/runtime/logger.d.ts +2 -0
  104. package/out/runtime/logger.d.ts.map +1 -0
  105. package/out/runtime/logger.js +44 -0
  106. package/out/runtime/logger.js.map +1 -0
  107. package/out/runtime/module.d.ts +273 -0
  108. package/out/runtime/module.d.ts.map +1 -0
  109. package/out/runtime/module.js +1786 -0
  110. package/out/runtime/module.js.map +1 -0
  111. package/out/runtime/modules/ai.d.ts +26 -0
  112. package/out/runtime/modules/ai.d.ts.map +1 -0
  113. package/out/runtime/modules/ai.js +211 -0
  114. package/out/runtime/modules/ai.js.map +1 -0
  115. package/out/runtime/modules/auth.d.ts +39 -0
  116. package/out/runtime/modules/auth.d.ts.map +1 -0
  117. package/out/runtime/modules/auth.js +359 -0
  118. package/out/runtime/modules/auth.js.map +1 -0
  119. package/out/runtime/modules/core.d.ts +2 -0
  120. package/out/runtime/modules/core.d.ts.map +1 -0
  121. package/out/runtime/modules/core.js +67 -0
  122. package/out/runtime/modules/core.js.map +1 -0
  123. package/out/runtime/relgraph.d.ts +21 -0
  124. package/out/runtime/relgraph.d.ts.map +1 -0
  125. package/out/runtime/relgraph.js +156 -0
  126. package/out/runtime/relgraph.js.map +1 -0
  127. package/out/runtime/resolvers/interface.d.ts +59 -0
  128. package/out/runtime/resolvers/interface.d.ts.map +1 -0
  129. package/out/runtime/resolvers/interface.js +111 -0
  130. package/out/runtime/resolvers/interface.js.map +1 -0
  131. package/out/runtime/resolvers/registry.d.ts +8 -0
  132. package/out/runtime/resolvers/registry.d.ts.map +1 -0
  133. package/out/runtime/resolvers/registry.js +26 -0
  134. package/out/runtime/resolvers/registry.js.map +1 -0
  135. package/out/runtime/resolvers/sqldb/database.d.ts +50 -0
  136. package/out/runtime/resolvers/sqldb/database.d.ts.map +1 -0
  137. package/out/runtime/resolvers/sqldb/database.js +618 -0
  138. package/out/runtime/resolvers/sqldb/database.js.map +1 -0
  139. package/out/runtime/resolvers/sqldb/dbutil.d.ts +18 -0
  140. package/out/runtime/resolvers/sqldb/dbutil.d.ts.map +1 -0
  141. package/out/runtime/resolvers/sqldb/dbutil.js +221 -0
  142. package/out/runtime/resolvers/sqldb/dbutil.js.map +1 -0
  143. package/out/runtime/resolvers/sqldb/impl.d.ts +26 -0
  144. package/out/runtime/resolvers/sqldb/impl.d.ts.map +1 -0
  145. package/out/runtime/resolvers/sqldb/impl.js +300 -0
  146. package/out/runtime/resolvers/sqldb/impl.js.map +1 -0
  147. package/out/runtime/state.js +83 -0
  148. package/out/runtime/state.js.map +1 -0
  149. package/out/runtime/util.d.ts +43 -0
  150. package/out/runtime/util.d.ts.map +1 -0
  151. package/out/runtime/util.js +447 -0
  152. package/out/runtime/util.js.map +1 -0
  153. package/out/setupClassic.d.ts +98 -0
  154. package/out/setupClassic.d.ts.map +1 -0
  155. package/out/setupClassic.js +38 -0
  156. package/out/setupClassic.js.map +1 -0
  157. package/out/setupCommon.d.ts +2 -0
  158. package/out/setupCommon.d.ts.map +1 -0
  159. package/out/setupCommon.js +33 -0
  160. package/out/setupCommon.js.map +1 -0
  161. package/out/setupExtended.d.ts +40 -0
  162. package/out/setupExtended.d.ts.map +1 -0
  163. package/out/setupExtended.js +67 -0
  164. package/out/setupExtended.js.map +1 -0
  165. package/out/syntaxes/agentlang.monarch.d.ts +77 -0
  166. package/out/syntaxes/agentlang.monarch.d.ts.map +1 -0
  167. package/out/syntaxes/agentlang.monarch.js +31 -0
  168. package/out/syntaxes/agentlang.monarch.js.map +1 -0
  169. package/out/utils/fs/index.d.ts +14 -0
  170. package/out/utils/fs/index.d.ts.map +1 -0
  171. package/out/utils/fs/index.js +26 -0
  172. package/out/utils/fs/index.js.map +1 -0
  173. package/out/utils/fs/interfaces.d.ts +105 -0
  174. package/out/utils/fs/interfaces.d.ts.map +1 -0
  175. package/out/utils/fs/interfaces.js +5 -0
  176. package/out/utils/fs/interfaces.js.map +1 -0
  177. package/out/utils/fs/lightning-fs.d.ts +116 -0
  178. package/out/utils/fs/lightning-fs.d.ts.map +1 -0
  179. package/out/utils/fs/lightning-fs.js +243 -0
  180. package/out/utils/fs/lightning-fs.js.map +1 -0
  181. package/out/utils/fs/node-fs.d.ts +93 -0
  182. package/out/utils/fs/node-fs.d.ts.map +1 -0
  183. package/out/utils/fs/node-fs.js +169 -0
  184. package/out/utils/fs/node-fs.js.map +1 -0
  185. package/out/utils/fs-utils.d.ts +153 -0
  186. package/out/utils/fs-utils.d.ts.map +1 -0
  187. package/out/utils/fs-utils.js +271 -0
  188. package/out/utils/fs-utils.js.map +1 -0
  189. package/out/utils/runtime.d.ts +36 -0
  190. package/out/utils/runtime.d.ts.map +1 -0
  191. package/out/utils/runtime.js +39 -0
  192. package/out/utils/runtime.js.map +1 -0
  193. package/package.json +155 -0
  194. package/src/api/http.ts +361 -0
  195. package/src/cli/cli-util.ts +18 -0
  196. package/src/cli/main.ts +146 -0
  197. package/src/extension/main.ts +51 -0
  198. package/src/language/agentlang-module.ts +75 -0
  199. package/src/language/agentlang-validator.ts +60 -0
  200. package/src/language/agentlang.langium +178 -0
  201. package/src/language/generated/ast.ts +1698 -0
  202. package/src/language/generated/grammar.ts +4477 -0
  203. package/src/language/generated/module.ts +25 -0
  204. package/src/language/main-browser.ts +19 -0
  205. package/src/language/main.ts +13 -0
  206. package/src/language/parser.ts +329 -0
  207. package/src/language/syntax.ts +646 -0
  208. package/src/runtime/agents/common.ts +177 -0
  209. package/src/runtime/agents/impl/openai.ts +19 -0
  210. package/src/runtime/agents/provider.ts +58 -0
  211. package/src/runtime/agents/registry.ts +9 -0
  212. package/src/runtime/auth/cognito.ts +225 -0
  213. package/src/runtime/auth/defs.ts +33 -0
  214. package/src/runtime/auth/interface.ts +31 -0
  215. package/src/runtime/defs.ts +33 -0
  216. package/src/runtime/interpreter.ts +1352 -0
  217. package/src/runtime/loader.ts +450 -0
  218. package/src/runtime/logger.ts +51 -0
  219. package/src/runtime/module.ts +2188 -0
  220. package/src/runtime/modules/ai.ts +257 -0
  221. package/src/runtime/modules/auth.ts +489 -0
  222. package/src/runtime/modules/core.ts +95 -0
  223. package/src/runtime/relgraph.ts +195 -0
  224. package/src/runtime/resolvers/interface.ts +160 -0
  225. package/src/runtime/resolvers/registry.ts +30 -0
  226. package/src/runtime/resolvers/sqldb/database.ts +823 -0
  227. package/src/runtime/resolvers/sqldb/dbutil.ts +257 -0
  228. package/src/runtime/resolvers/sqldb/impl.ts +471 -0
  229. package/src/runtime/state.ts +87 -0
  230. package/src/runtime/util.ts +513 -0
  231. package/src/setupClassic.ts +43 -0
  232. package/src/setupCommon.ts +33 -0
  233. package/src/setupExtended.ts +79 -0
  234. package/src/syntaxes/agentlang.monarch.ts +31 -0
  235. package/src/utils/fs/index.ts +28 -0
  236. package/src/utils/fs/interfaces.ts +118 -0
  237. package/src/utils/fs/lightning-fs.ts +284 -0
  238. package/src/utils/fs/node-fs.ts +185 -0
  239. package/src/utils/fs-utils.ts +304 -0
  240. package/src/utils/runtime.ts +43 -0
@@ -0,0 +1,4475 @@
1
+ /******************************************************************************
2
+ * This file was generated by langium-cli 3.5.0.
3
+ * DO NOT EDIT MANUALLY!
4
+ ******************************************************************************/
5
+ import { loadGrammarFromJson } from 'langium';
6
+ let loadedAgentlangGrammar;
7
+ export const AgentlangGrammar = () => loadedAgentlangGrammar !== null && loadedAgentlangGrammar !== void 0 ? loadedAgentlangGrammar : (loadedAgentlangGrammar = loadGrammarFromJson(`{
8
+ "$type": "Grammar",
9
+ "isDeclared": true,
10
+ "name": "Agentlang",
11
+ "rules": [
12
+ {
13
+ "$type": "ParserRule",
14
+ "entry": true,
15
+ "name": "ModuleDefinition",
16
+ "definition": {
17
+ "$type": "Group",
18
+ "elements": [
19
+ {
20
+ "$type": "Keyword",
21
+ "value": "module"
22
+ },
23
+ {
24
+ "$type": "Assignment",
25
+ "feature": "name",
26
+ "operator": "=",
27
+ "terminal": {
28
+ "$type": "RuleCall",
29
+ "rule": {
30
+ "$ref": "#/rules@78"
31
+ },
32
+ "arguments": []
33
+ }
34
+ },
35
+ {
36
+ "$type": "Assignment",
37
+ "feature": "imports",
38
+ "operator": "+=",
39
+ "terminal": {
40
+ "$type": "RuleCall",
41
+ "rule": {
42
+ "$ref": "#/rules@1"
43
+ },
44
+ "arguments": []
45
+ },
46
+ "cardinality": "*"
47
+ },
48
+ {
49
+ "$type": "Assignment",
50
+ "feature": "defs",
51
+ "operator": "+=",
52
+ "terminal": {
53
+ "$type": "RuleCall",
54
+ "rule": {
55
+ "$ref": "#/rules@2"
56
+ },
57
+ "arguments": []
58
+ },
59
+ "cardinality": "*"
60
+ }
61
+ ]
62
+ },
63
+ "definesHiddenTokens": false,
64
+ "fragment": false,
65
+ "hiddenTokens": [],
66
+ "parameters": [],
67
+ "wildcard": false
68
+ },
69
+ {
70
+ "$type": "ParserRule",
71
+ "name": "Import",
72
+ "definition": {
73
+ "$type": "Group",
74
+ "elements": [
75
+ {
76
+ "$type": "Keyword",
77
+ "value": "import"
78
+ },
79
+ {
80
+ "$type": "Assignment",
81
+ "feature": "path",
82
+ "operator": "=",
83
+ "terminal": {
84
+ "$type": "RuleCall",
85
+ "rule": {
86
+ "$ref": "#/rules@80"
87
+ },
88
+ "arguments": []
89
+ }
90
+ },
91
+ {
92
+ "$type": "Keyword",
93
+ "value": "as"
94
+ },
95
+ {
96
+ "$type": "Assignment",
97
+ "feature": "name",
98
+ "operator": "=",
99
+ "terminal": {
100
+ "$type": "RuleCall",
101
+ "rule": {
102
+ "$ref": "#/rules@78"
103
+ },
104
+ "arguments": []
105
+ }
106
+ }
107
+ ]
108
+ },
109
+ "definesHiddenTokens": false,
110
+ "entry": false,
111
+ "fragment": false,
112
+ "hiddenTokens": [],
113
+ "parameters": [],
114
+ "wildcard": false
115
+ },
116
+ {
117
+ "$type": "ParserRule",
118
+ "name": "Definition",
119
+ "definition": {
120
+ "$type": "Alternatives",
121
+ "elements": [
122
+ {
123
+ "$type": "RuleCall",
124
+ "rule": {
125
+ "$ref": "#/rules@4"
126
+ },
127
+ "arguments": []
128
+ },
129
+ {
130
+ "$type": "RuleCall",
131
+ "rule": {
132
+ "$ref": "#/rules@15"
133
+ },
134
+ "arguments": []
135
+ },
136
+ {
137
+ "$type": "RuleCall",
138
+ "rule": {
139
+ "$ref": "#/rules@44"
140
+ },
141
+ "arguments": []
142
+ },
143
+ {
144
+ "$type": "RuleCall",
145
+ "rule": {
146
+ "$ref": "#/rules@3"
147
+ },
148
+ "arguments": []
149
+ }
150
+ ]
151
+ },
152
+ "definesHiddenTokens": false,
153
+ "entry": false,
154
+ "fragment": false,
155
+ "hiddenTokens": [],
156
+ "parameters": [],
157
+ "wildcard": false
158
+ },
159
+ {
160
+ "$type": "ParserRule",
161
+ "name": "StandaloneStatement",
162
+ "definition": {
163
+ "$type": "Assignment",
164
+ "feature": "stmt",
165
+ "operator": "=",
166
+ "terminal": {
167
+ "$type": "RuleCall",
168
+ "rule": {
169
+ "$ref": "#/rules@46"
170
+ },
171
+ "arguments": []
172
+ }
173
+ },
174
+ "definesHiddenTokens": false,
175
+ "entry": false,
176
+ "fragment": false,
177
+ "hiddenTokens": [],
178
+ "parameters": [],
179
+ "wildcard": false
180
+ },
181
+ {
182
+ "$type": "ParserRule",
183
+ "name": "SchemaDefinition",
184
+ "definition": {
185
+ "$type": "Alternatives",
186
+ "elements": [
187
+ {
188
+ "$type": "RuleCall",
189
+ "rule": {
190
+ "$ref": "#/rules@11"
191
+ },
192
+ "arguments": []
193
+ },
194
+ {
195
+ "$type": "RuleCall",
196
+ "rule": {
197
+ "$ref": "#/rules@12"
198
+ },
199
+ "arguments": []
200
+ },
201
+ {
202
+ "$type": "RuleCall",
203
+ "rule": {
204
+ "$ref": "#/rules@13"
205
+ },
206
+ "arguments": []
207
+ }
208
+ ]
209
+ },
210
+ "definesHiddenTokens": false,
211
+ "entry": false,
212
+ "fragment": false,
213
+ "hiddenTokens": [],
214
+ "parameters": [],
215
+ "wildcard": false
216
+ },
217
+ {
218
+ "$type": "ParserRule",
219
+ "name": "PropertyDefinition",
220
+ "definition": {
221
+ "$type": "Alternatives",
222
+ "elements": [
223
+ {
224
+ "$type": "Group",
225
+ "elements": [
226
+ {
227
+ "$type": "Assignment",
228
+ "feature": "name",
229
+ "operator": "=",
230
+ "terminal": {
231
+ "$type": "RuleCall",
232
+ "rule": {
233
+ "$ref": "#/rules@76"
234
+ },
235
+ "arguments": []
236
+ }
237
+ },
238
+ {
239
+ "$type": "Keyword",
240
+ "value": "("
241
+ },
242
+ {
243
+ "$type": "Assignment",
244
+ "feature": "value",
245
+ "operator": "=",
246
+ "terminal": {
247
+ "$type": "RuleCall",
248
+ "rule": {
249
+ "$ref": "#/rules@7"
250
+ },
251
+ "arguments": []
252
+ }
253
+ },
254
+ {
255
+ "$type": "Keyword",
256
+ "value": ")"
257
+ }
258
+ ]
259
+ },
260
+ {
261
+ "$type": "Assignment",
262
+ "feature": "name",
263
+ "operator": "=",
264
+ "terminal": {
265
+ "$type": "RuleCall",
266
+ "rule": {
267
+ "$ref": "#/rules@76"
268
+ },
269
+ "arguments": []
270
+ }
271
+ }
272
+ ]
273
+ },
274
+ "definesHiddenTokens": false,
275
+ "entry": false,
276
+ "fragment": false,
277
+ "hiddenTokens": [],
278
+ "parameters": [],
279
+ "wildcard": false
280
+ },
281
+ {
282
+ "$type": "ParserRule",
283
+ "name": "KvPair",
284
+ "definition": {
285
+ "$type": "Alternatives",
286
+ "elements": [
287
+ {
288
+ "$type": "Assignment",
289
+ "feature": "value",
290
+ "operator": "=",
291
+ "terminal": {
292
+ "$type": "RuleCall",
293
+ "rule": {
294
+ "$ref": "#/rules@42"
295
+ },
296
+ "arguments": []
297
+ }
298
+ },
299
+ {
300
+ "$type": "Group",
301
+ "elements": [
302
+ {
303
+ "$type": "Assignment",
304
+ "feature": "key",
305
+ "operator": "=",
306
+ "terminal": {
307
+ "$type": "RuleCall",
308
+ "rule": {
309
+ "$ref": "#/rules@78"
310
+ },
311
+ "arguments": []
312
+ }
313
+ },
314
+ {
315
+ "$type": "Keyword",
316
+ "value": ":"
317
+ },
318
+ {
319
+ "$type": "Assignment",
320
+ "feature": "value",
321
+ "operator": "=",
322
+ "terminal": {
323
+ "$type": "RuleCall",
324
+ "rule": {
325
+ "$ref": "#/rules@42"
326
+ },
327
+ "arguments": []
328
+ }
329
+ }
330
+ ]
331
+ }
332
+ ]
333
+ },
334
+ "definesHiddenTokens": false,
335
+ "entry": false,
336
+ "fragment": false,
337
+ "hiddenTokens": [],
338
+ "parameters": [],
339
+ "wildcard": false
340
+ },
341
+ {
342
+ "$type": "ParserRule",
343
+ "name": "KvPairs",
344
+ "definition": {
345
+ "$type": "Alternatives",
346
+ "elements": [
347
+ {
348
+ "$type": "Assignment",
349
+ "feature": "pairs",
350
+ "operator": "+=",
351
+ "terminal": {
352
+ "$type": "RuleCall",
353
+ "rule": {
354
+ "$ref": "#/rules@6"
355
+ },
356
+ "arguments": []
357
+ }
358
+ },
359
+ {
360
+ "$type": "Group",
361
+ "elements": [
362
+ {
363
+ "$type": "Assignment",
364
+ "feature": "pairs",
365
+ "operator": "+=",
366
+ "terminal": {
367
+ "$type": "RuleCall",
368
+ "rule": {
369
+ "$ref": "#/rules@6"
370
+ },
371
+ "arguments": []
372
+ }
373
+ },
374
+ {
375
+ "$type": "Keyword",
376
+ "value": ","
377
+ },
378
+ {
379
+ "$type": "Assignment",
380
+ "feature": "pairs",
381
+ "operator": "+=",
382
+ "terminal": {
383
+ "$type": "RuleCall",
384
+ "rule": {
385
+ "$ref": "#/rules@6"
386
+ },
387
+ "arguments": []
388
+ }
389
+ }
390
+ ]
391
+ }
392
+ ]
393
+ },
394
+ "definesHiddenTokens": false,
395
+ "entry": false,
396
+ "fragment": false,
397
+ "hiddenTokens": [],
398
+ "parameters": [],
399
+ "wildcard": false
400
+ },
401
+ {
402
+ "$type": "ParserRule",
403
+ "name": "RecordSchemaDefinition",
404
+ "definition": {
405
+ "$type": "Alternatives",
406
+ "elements": [
407
+ {
408
+ "$type": "Group",
409
+ "elements": [
410
+ {
411
+ "$type": "Keyword",
412
+ "value": "{"
413
+ },
414
+ {
415
+ "$type": "Keyword",
416
+ "value": "}"
417
+ }
418
+ ]
419
+ },
420
+ {
421
+ "$type": "Group",
422
+ "elements": [
423
+ {
424
+ "$type": "Keyword",
425
+ "value": "{"
426
+ },
427
+ {
428
+ "$type": "Group",
429
+ "elements": [
430
+ {
431
+ "$type": "Assignment",
432
+ "feature": "attributes",
433
+ "operator": "+=",
434
+ "terminal": {
435
+ "$type": "RuleCall",
436
+ "rule": {
437
+ "$ref": "#/rules@18"
438
+ },
439
+ "arguments": []
440
+ }
441
+ },
442
+ {
443
+ "$type": "Group",
444
+ "elements": [
445
+ {
446
+ "$type": "Keyword",
447
+ "value": ","
448
+ },
449
+ {
450
+ "$type": "Assignment",
451
+ "feature": "attributes",
452
+ "operator": "+=",
453
+ "terminal": {
454
+ "$type": "RuleCall",
455
+ "rule": {
456
+ "$ref": "#/rules@18"
457
+ },
458
+ "arguments": []
459
+ }
460
+ }
461
+ ],
462
+ "cardinality": "*"
463
+ }
464
+ ],
465
+ "cardinality": "+"
466
+ },
467
+ {
468
+ "$type": "Group",
469
+ "elements": [
470
+ {
471
+ "$type": "Keyword",
472
+ "value": ","
473
+ },
474
+ {
475
+ "$type": "Assignment",
476
+ "feature": "extras",
477
+ "operator": "+=",
478
+ "terminal": {
479
+ "$type": "RuleCall",
480
+ "rule": {
481
+ "$ref": "#/rules@9"
482
+ },
483
+ "arguments": []
484
+ }
485
+ },
486
+ {
487
+ "$type": "Group",
488
+ "elements": [
489
+ {
490
+ "$type": "Keyword",
491
+ "value": ","
492
+ },
493
+ {
494
+ "$type": "Assignment",
495
+ "feature": "extras",
496
+ "operator": "+=",
497
+ "terminal": {
498
+ "$type": "RuleCall",
499
+ "rule": {
500
+ "$ref": "#/rules@9"
501
+ },
502
+ "arguments": []
503
+ }
504
+ }
505
+ ],
506
+ "cardinality": "*"
507
+ }
508
+ ],
509
+ "cardinality": "?"
510
+ },
511
+ {
512
+ "$type": "Keyword",
513
+ "value": "}"
514
+ }
515
+ ]
516
+ }
517
+ ]
518
+ },
519
+ "definesHiddenTokens": false,
520
+ "entry": false,
521
+ "fragment": false,
522
+ "hiddenTokens": [],
523
+ "parameters": [],
524
+ "wildcard": false
525
+ },
526
+ {
527
+ "$type": "ParserRule",
528
+ "name": "RecordExtraDefinition",
529
+ "definition": {
530
+ "$type": "Alternatives",
531
+ "elements": [
532
+ {
533
+ "$type": "Assignment",
534
+ "feature": "rbacSpec",
535
+ "operator": "=",
536
+ "terminal": {
537
+ "$type": "RuleCall",
538
+ "rule": {
539
+ "$ref": "#/rules@22"
540
+ },
541
+ "arguments": []
542
+ }
543
+ },
544
+ {
545
+ "$type": "Assignment",
546
+ "feature": "meta",
547
+ "operator": "=",
548
+ "terminal": {
549
+ "$type": "RuleCall",
550
+ "rule": {
551
+ "$ref": "#/rules@29"
552
+ },
553
+ "arguments": []
554
+ }
555
+ },
556
+ {
557
+ "$type": "Assignment",
558
+ "feature": "prePost",
559
+ "operator": "=",
560
+ "terminal": {
561
+ "$type": "RuleCall",
562
+ "rule": {
563
+ "$ref": "#/rules@30"
564
+ },
565
+ "arguments": []
566
+ }
567
+ },
568
+ {
569
+ "$type": "Assignment",
570
+ "feature": "uq",
571
+ "operator": "=",
572
+ "terminal": {
573
+ "$type": "RuleCall",
574
+ "rule": {
575
+ "$ref": "#/rules@35"
576
+ },
577
+ "arguments": []
578
+ }
579
+ }
580
+ ]
581
+ },
582
+ "definesHiddenTokens": false,
583
+ "entry": false,
584
+ "fragment": false,
585
+ "hiddenTokens": [],
586
+ "parameters": [],
587
+ "wildcard": false
588
+ },
589
+ {
590
+ "$type": "ParserRule",
591
+ "fragment": true,
592
+ "name": "RecDef",
593
+ "definition": {
594
+ "$type": "Group",
595
+ "elements": [
596
+ {
597
+ "$type": "Assignment",
598
+ "feature": "name",
599
+ "operator": "=",
600
+ "terminal": {
601
+ "$type": "RuleCall",
602
+ "rule": {
603
+ "$ref": "#/rules@78"
604
+ },
605
+ "arguments": []
606
+ }
607
+ },
608
+ {
609
+ "$type": "Assignment",
610
+ "feature": "extends",
611
+ "operator": "=",
612
+ "terminal": {
613
+ "$type": "RuleCall",
614
+ "rule": {
615
+ "$ref": "#/rules@14"
616
+ },
617
+ "arguments": []
618
+ },
619
+ "cardinality": "?"
620
+ },
621
+ {
622
+ "$type": "Assignment",
623
+ "feature": "schema",
624
+ "operator": "=",
625
+ "terminal": {
626
+ "$type": "RuleCall",
627
+ "rule": {
628
+ "$ref": "#/rules@8"
629
+ },
630
+ "arguments": []
631
+ }
632
+ }
633
+ ]
634
+ },
635
+ "definesHiddenTokens": false,
636
+ "entry": false,
637
+ "hiddenTokens": [],
638
+ "parameters": [],
639
+ "wildcard": false
640
+ },
641
+ {
642
+ "$type": "ParserRule",
643
+ "name": "EntityDefinition",
644
+ "definition": {
645
+ "$type": "Group",
646
+ "elements": [
647
+ {
648
+ "$type": "Keyword",
649
+ "value": "entity"
650
+ },
651
+ {
652
+ "$type": "RuleCall",
653
+ "rule": {
654
+ "$ref": "#/rules@10"
655
+ },
656
+ "arguments": []
657
+ }
658
+ ]
659
+ },
660
+ "definesHiddenTokens": false,
661
+ "entry": false,
662
+ "fragment": false,
663
+ "hiddenTokens": [],
664
+ "parameters": [],
665
+ "wildcard": false
666
+ },
667
+ {
668
+ "$type": "ParserRule",
669
+ "name": "EventDefinition",
670
+ "definition": {
671
+ "$type": "Group",
672
+ "elements": [
673
+ {
674
+ "$type": "Keyword",
675
+ "value": "event"
676
+ },
677
+ {
678
+ "$type": "RuleCall",
679
+ "rule": {
680
+ "$ref": "#/rules@10"
681
+ },
682
+ "arguments": []
683
+ }
684
+ ]
685
+ },
686
+ "definesHiddenTokens": false,
687
+ "entry": false,
688
+ "fragment": false,
689
+ "hiddenTokens": [],
690
+ "parameters": [],
691
+ "wildcard": false
692
+ },
693
+ {
694
+ "$type": "ParserRule",
695
+ "name": "RecordDefinition",
696
+ "definition": {
697
+ "$type": "Group",
698
+ "elements": [
699
+ {
700
+ "$type": "Keyword",
701
+ "value": "record"
702
+ },
703
+ {
704
+ "$type": "RuleCall",
705
+ "rule": {
706
+ "$ref": "#/rules@10"
707
+ },
708
+ "arguments": []
709
+ }
710
+ ]
711
+ },
712
+ "definesHiddenTokens": false,
713
+ "entry": false,
714
+ "fragment": false,
715
+ "hiddenTokens": [],
716
+ "parameters": [],
717
+ "wildcard": false
718
+ },
719
+ {
720
+ "$type": "ParserRule",
721
+ "name": "ExtendsClause",
722
+ "definition": {
723
+ "$type": "Group",
724
+ "elements": [
725
+ {
726
+ "$type": "Keyword",
727
+ "value": "extends"
728
+ },
729
+ {
730
+ "$type": "Assignment",
731
+ "feature": "parentName",
732
+ "operator": "=",
733
+ "terminal": {
734
+ "$type": "RuleCall",
735
+ "rule": {
736
+ "$ref": "#/rules@78"
737
+ },
738
+ "arguments": []
739
+ }
740
+ }
741
+ ]
742
+ },
743
+ "definesHiddenTokens": false,
744
+ "entry": false,
745
+ "fragment": false,
746
+ "hiddenTokens": [],
747
+ "parameters": [],
748
+ "wildcard": false
749
+ },
750
+ {
751
+ "$type": "ParserRule",
752
+ "name": "RelationshipDefinition",
753
+ "definition": {
754
+ "$type": "Group",
755
+ "elements": [
756
+ {
757
+ "$type": "Keyword",
758
+ "value": "relationship"
759
+ },
760
+ {
761
+ "$type": "Assignment",
762
+ "feature": "name",
763
+ "operator": "=",
764
+ "terminal": {
765
+ "$type": "RuleCall",
766
+ "rule": {
767
+ "$ref": "#/rules@78"
768
+ },
769
+ "arguments": []
770
+ }
771
+ },
772
+ {
773
+ "$type": "Assignment",
774
+ "feature": "type",
775
+ "operator": "=",
776
+ "terminal": {
777
+ "$type": "Alternatives",
778
+ "elements": [
779
+ {
780
+ "$type": "Keyword",
781
+ "value": "contains"
782
+ },
783
+ {
784
+ "$type": "Keyword",
785
+ "value": "between"
786
+ }
787
+ ]
788
+ }
789
+ },
790
+ {
791
+ "$type": "Assignment",
792
+ "feature": "nodes",
793
+ "operator": "=",
794
+ "terminal": {
795
+ "$type": "RuleCall",
796
+ "rule": {
797
+ "$ref": "#/rules@17"
798
+ },
799
+ "arguments": []
800
+ }
801
+ },
802
+ {
803
+ "$type": "Assignment",
804
+ "feature": "properties",
805
+ "operator": "+=",
806
+ "terminal": {
807
+ "$type": "RuleCall",
808
+ "rule": {
809
+ "$ref": "#/rules@5"
810
+ },
811
+ "arguments": []
812
+ },
813
+ "cardinality": "*"
814
+ },
815
+ {
816
+ "$type": "Assignment",
817
+ "feature": "schema",
818
+ "operator": "=",
819
+ "terminal": {
820
+ "$type": "RuleCall",
821
+ "rule": {
822
+ "$ref": "#/rules@8"
823
+ },
824
+ "arguments": []
825
+ },
826
+ "cardinality": "?"
827
+ }
828
+ ]
829
+ },
830
+ "definesHiddenTokens": false,
831
+ "entry": false,
832
+ "fragment": false,
833
+ "hiddenTokens": [],
834
+ "parameters": [],
835
+ "wildcard": false
836
+ },
837
+ {
838
+ "$type": "ParserRule",
839
+ "name": "NodeDefinition",
840
+ "definition": {
841
+ "$type": "Alternatives",
842
+ "elements": [
843
+ {
844
+ "$type": "Assignment",
845
+ "feature": "name",
846
+ "operator": "=",
847
+ "terminal": {
848
+ "$type": "RuleCall",
849
+ "rule": {
850
+ "$ref": "#/rules@78"
851
+ },
852
+ "arguments": []
853
+ }
854
+ },
855
+ {
856
+ "$type": "Group",
857
+ "elements": [
858
+ {
859
+ "$type": "Assignment",
860
+ "feature": "name",
861
+ "operator": "=",
862
+ "terminal": {
863
+ "$type": "RuleCall",
864
+ "rule": {
865
+ "$ref": "#/rules@78"
866
+ },
867
+ "arguments": []
868
+ }
869
+ },
870
+ {
871
+ "$type": "Keyword",
872
+ "value": "as"
873
+ },
874
+ {
875
+ "$type": "Assignment",
876
+ "feature": "alias",
877
+ "operator": "=",
878
+ "terminal": {
879
+ "$type": "RuleCall",
880
+ "rule": {
881
+ "$ref": "#/rules@78"
882
+ },
883
+ "arguments": []
884
+ }
885
+ }
886
+ ]
887
+ }
888
+ ]
889
+ },
890
+ "definesHiddenTokens": false,
891
+ "entry": false,
892
+ "fragment": false,
893
+ "hiddenTokens": [],
894
+ "parameters": [],
895
+ "wildcard": false
896
+ },
897
+ {
898
+ "$type": "ParserRule",
899
+ "name": "RelNodes",
900
+ "definition": {
901
+ "$type": "Group",
902
+ "elements": [
903
+ {
904
+ "$type": "Keyword",
905
+ "value": "("
906
+ },
907
+ {
908
+ "$type": "Assignment",
909
+ "feature": "node1",
910
+ "operator": "=",
911
+ "terminal": {
912
+ "$type": "RuleCall",
913
+ "rule": {
914
+ "$ref": "#/rules@16"
915
+ },
916
+ "arguments": []
917
+ }
918
+ },
919
+ {
920
+ "$type": "Keyword",
921
+ "value": ","
922
+ },
923
+ {
924
+ "$type": "Assignment",
925
+ "feature": "node2",
926
+ "operator": "=",
927
+ "terminal": {
928
+ "$type": "RuleCall",
929
+ "rule": {
930
+ "$ref": "#/rules@16"
931
+ },
932
+ "arguments": []
933
+ }
934
+ },
935
+ {
936
+ "$type": "Keyword",
937
+ "value": ")"
938
+ }
939
+ ]
940
+ },
941
+ "definesHiddenTokens": false,
942
+ "entry": false,
943
+ "fragment": false,
944
+ "hiddenTokens": [],
945
+ "parameters": [],
946
+ "wildcard": false
947
+ },
948
+ {
949
+ "$type": "ParserRule",
950
+ "name": "AttributeDefinition",
951
+ "definition": {
952
+ "$type": "Group",
953
+ "elements": [
954
+ {
955
+ "$type": "Assignment",
956
+ "feature": "name",
957
+ "operator": "=",
958
+ "terminal": {
959
+ "$type": "RuleCall",
960
+ "rule": {
961
+ "$ref": "#/rules@78"
962
+ },
963
+ "arguments": []
964
+ }
965
+ },
966
+ {
967
+ "$type": "Alternatives",
968
+ "elements": [
969
+ {
970
+ "$type": "Assignment",
971
+ "feature": "type",
972
+ "operator": "=",
973
+ "terminal": {
974
+ "$type": "RuleCall",
975
+ "rule": {
976
+ "$ref": "#/rules@78"
977
+ },
978
+ "arguments": []
979
+ }
980
+ },
981
+ {
982
+ "$type": "Group",
983
+ "elements": [
984
+ {
985
+ "$type": "Assignment",
986
+ "feature": "arrayType",
987
+ "operator": "=",
988
+ "terminal": {
989
+ "$type": "RuleCall",
990
+ "rule": {
991
+ "$ref": "#/rules@78"
992
+ },
993
+ "arguments": []
994
+ }
995
+ },
996
+ {
997
+ "$type": "Keyword",
998
+ "value": "["
999
+ },
1000
+ {
1001
+ "$type": "Keyword",
1002
+ "value": "]"
1003
+ }
1004
+ ]
1005
+ },
1006
+ {
1007
+ "$type": "Assignment",
1008
+ "feature": "oneOfSpec",
1009
+ "operator": "=",
1010
+ "terminal": {
1011
+ "$type": "RuleCall",
1012
+ "rule": {
1013
+ "$ref": "#/rules@20"
1014
+ },
1015
+ "arguments": []
1016
+ }
1017
+ },
1018
+ {
1019
+ "$type": "Assignment",
1020
+ "feature": "enumSpec",
1021
+ "operator": "=",
1022
+ "terminal": {
1023
+ "$type": "RuleCall",
1024
+ "rule": {
1025
+ "$ref": "#/rules@19"
1026
+ },
1027
+ "arguments": []
1028
+ }
1029
+ },
1030
+ {
1031
+ "$type": "Assignment",
1032
+ "feature": "refSpec",
1033
+ "operator": "=",
1034
+ "terminal": {
1035
+ "$type": "RuleCall",
1036
+ "rule": {
1037
+ "$ref": "#/rules@21"
1038
+ },
1039
+ "arguments": []
1040
+ }
1041
+ }
1042
+ ]
1043
+ },
1044
+ {
1045
+ "$type": "Group",
1046
+ "elements": [
1047
+ {
1048
+ "$type": "Keyword",
1049
+ "value": "@expr"
1050
+ },
1051
+ {
1052
+ "$type": "Keyword",
1053
+ "value": "("
1054
+ },
1055
+ {
1056
+ "$type": "Assignment",
1057
+ "feature": "expr",
1058
+ "operator": "=",
1059
+ "terminal": {
1060
+ "$type": "RuleCall",
1061
+ "rule": {
1062
+ "$ref": "#/rules@64"
1063
+ },
1064
+ "arguments": []
1065
+ }
1066
+ },
1067
+ {
1068
+ "$type": "Keyword",
1069
+ "value": ")"
1070
+ }
1071
+ ],
1072
+ "cardinality": "?"
1073
+ },
1074
+ {
1075
+ "$type": "Assignment",
1076
+ "feature": "properties",
1077
+ "operator": "+=",
1078
+ "terminal": {
1079
+ "$type": "RuleCall",
1080
+ "rule": {
1081
+ "$ref": "#/rules@5"
1082
+ },
1083
+ "arguments": []
1084
+ },
1085
+ "cardinality": "*"
1086
+ }
1087
+ ]
1088
+ },
1089
+ "definesHiddenTokens": false,
1090
+ "entry": false,
1091
+ "fragment": false,
1092
+ "hiddenTokens": [],
1093
+ "parameters": [],
1094
+ "wildcard": false
1095
+ },
1096
+ {
1097
+ "$type": "ParserRule",
1098
+ "name": "EnumSpec",
1099
+ "definition": {
1100
+ "$type": "Group",
1101
+ "elements": [
1102
+ {
1103
+ "$type": "Keyword",
1104
+ "value": "@enum"
1105
+ },
1106
+ {
1107
+ "$type": "Keyword",
1108
+ "value": "("
1109
+ },
1110
+ {
1111
+ "$type": "Assignment",
1112
+ "feature": "values",
1113
+ "operator": "+=",
1114
+ "terminal": {
1115
+ "$type": "RuleCall",
1116
+ "rule": {
1117
+ "$ref": "#/rules@80"
1118
+ },
1119
+ "arguments": []
1120
+ }
1121
+ },
1122
+ {
1123
+ "$type": "Group",
1124
+ "elements": [
1125
+ {
1126
+ "$type": "Keyword",
1127
+ "value": ","
1128
+ },
1129
+ {
1130
+ "$type": "Assignment",
1131
+ "feature": "values",
1132
+ "operator": "+=",
1133
+ "terminal": {
1134
+ "$type": "RuleCall",
1135
+ "rule": {
1136
+ "$ref": "#/rules@80"
1137
+ },
1138
+ "arguments": []
1139
+ }
1140
+ }
1141
+ ],
1142
+ "cardinality": "*"
1143
+ },
1144
+ {
1145
+ "$type": "Keyword",
1146
+ "value": ")"
1147
+ }
1148
+ ]
1149
+ },
1150
+ "definesHiddenTokens": false,
1151
+ "entry": false,
1152
+ "fragment": false,
1153
+ "hiddenTokens": [],
1154
+ "parameters": [],
1155
+ "wildcard": false
1156
+ },
1157
+ {
1158
+ "$type": "ParserRule",
1159
+ "name": "OneOfSpec",
1160
+ "definition": {
1161
+ "$type": "Group",
1162
+ "elements": [
1163
+ {
1164
+ "$type": "Keyword",
1165
+ "value": "@oneof"
1166
+ },
1167
+ {
1168
+ "$type": "Keyword",
1169
+ "value": "("
1170
+ },
1171
+ {
1172
+ "$type": "Assignment",
1173
+ "feature": "ref",
1174
+ "operator": "=",
1175
+ "terminal": {
1176
+ "$type": "RuleCall",
1177
+ "rule": {
1178
+ "$ref": "#/rules@77"
1179
+ },
1180
+ "arguments": []
1181
+ }
1182
+ },
1183
+ {
1184
+ "$type": "Keyword",
1185
+ "value": ")"
1186
+ }
1187
+ ]
1188
+ },
1189
+ "definesHiddenTokens": false,
1190
+ "entry": false,
1191
+ "fragment": false,
1192
+ "hiddenTokens": [],
1193
+ "parameters": [],
1194
+ "wildcard": false
1195
+ },
1196
+ {
1197
+ "$type": "ParserRule",
1198
+ "name": "RefSpec",
1199
+ "definition": {
1200
+ "$type": "Group",
1201
+ "elements": [
1202
+ {
1203
+ "$type": "Keyword",
1204
+ "value": "@ref"
1205
+ },
1206
+ {
1207
+ "$type": "Keyword",
1208
+ "value": "("
1209
+ },
1210
+ {
1211
+ "$type": "Assignment",
1212
+ "feature": "ref",
1213
+ "operator": "=",
1214
+ "terminal": {
1215
+ "$type": "RuleCall",
1216
+ "rule": {
1217
+ "$ref": "#/rules@78"
1218
+ },
1219
+ "arguments": []
1220
+ }
1221
+ },
1222
+ {
1223
+ "$type": "Keyword",
1224
+ "value": ")"
1225
+ }
1226
+ ]
1227
+ },
1228
+ "definesHiddenTokens": false,
1229
+ "entry": false,
1230
+ "fragment": false,
1231
+ "hiddenTokens": [],
1232
+ "parameters": [],
1233
+ "wildcard": false
1234
+ },
1235
+ {
1236
+ "$type": "ParserRule",
1237
+ "name": "RbacSpecDefinition",
1238
+ "definition": {
1239
+ "$type": "Group",
1240
+ "elements": [
1241
+ {
1242
+ "$type": "Keyword",
1243
+ "value": "@rbac"
1244
+ },
1245
+ {
1246
+ "$type": "Keyword",
1247
+ "value": "["
1248
+ },
1249
+ {
1250
+ "$type": "Group",
1251
+ "elements": [
1252
+ {
1253
+ "$type": "Assignment",
1254
+ "feature": "specEntries",
1255
+ "operator": "+=",
1256
+ "terminal": {
1257
+ "$type": "RuleCall",
1258
+ "rule": {
1259
+ "$ref": "#/rules@24"
1260
+ },
1261
+ "arguments": []
1262
+ }
1263
+ },
1264
+ {
1265
+ "$type": "Group",
1266
+ "elements": [
1267
+ {
1268
+ "$type": "Keyword",
1269
+ "value": ","
1270
+ },
1271
+ {
1272
+ "$type": "Assignment",
1273
+ "feature": "specEntries",
1274
+ "operator": "+=",
1275
+ "terminal": {
1276
+ "$type": "RuleCall",
1277
+ "rule": {
1278
+ "$ref": "#/rules@24"
1279
+ },
1280
+ "arguments": []
1281
+ }
1282
+ }
1283
+ ],
1284
+ "cardinality": "*"
1285
+ }
1286
+ ],
1287
+ "cardinality": "+"
1288
+ },
1289
+ {
1290
+ "$type": "Keyword",
1291
+ "value": "]"
1292
+ }
1293
+ ]
1294
+ },
1295
+ "definesHiddenTokens": false,
1296
+ "entry": false,
1297
+ "fragment": false,
1298
+ "hiddenTokens": [],
1299
+ "parameters": [],
1300
+ "wildcard": false
1301
+ },
1302
+ {
1303
+ "$type": "ParserRule",
1304
+ "name": "RbacSpecEntry",
1305
+ "definition": {
1306
+ "$type": "Alternatives",
1307
+ "elements": [
1308
+ {
1309
+ "$type": "Assignment",
1310
+ "feature": "role",
1311
+ "operator": "=",
1312
+ "terminal": {
1313
+ "$type": "RuleCall",
1314
+ "rule": {
1315
+ "$ref": "#/rules@25"
1316
+ },
1317
+ "arguments": []
1318
+ }
1319
+ },
1320
+ {
1321
+ "$type": "Assignment",
1322
+ "feature": "allow",
1323
+ "operator": "=",
1324
+ "terminal": {
1325
+ "$type": "RuleCall",
1326
+ "rule": {
1327
+ "$ref": "#/rules@26"
1328
+ },
1329
+ "arguments": []
1330
+ }
1331
+ },
1332
+ {
1333
+ "$type": "Assignment",
1334
+ "feature": "expr",
1335
+ "operator": "=",
1336
+ "terminal": {
1337
+ "$type": "RuleCall",
1338
+ "rule": {
1339
+ "$ref": "#/rules@28"
1340
+ },
1341
+ "arguments": []
1342
+ }
1343
+ }
1344
+ ]
1345
+ },
1346
+ "definesHiddenTokens": false,
1347
+ "entry": false,
1348
+ "fragment": false,
1349
+ "hiddenTokens": [],
1350
+ "parameters": [],
1351
+ "wildcard": false
1352
+ },
1353
+ {
1354
+ "$type": "ParserRule",
1355
+ "name": "RbacSpecEntries",
1356
+ "definition": {
1357
+ "$type": "Group",
1358
+ "elements": [
1359
+ {
1360
+ "$type": "Keyword",
1361
+ "value": "("
1362
+ },
1363
+ {
1364
+ "$type": "Group",
1365
+ "elements": [
1366
+ {
1367
+ "$type": "Assignment",
1368
+ "feature": "entries",
1369
+ "operator": "+=",
1370
+ "terminal": {
1371
+ "$type": "RuleCall",
1372
+ "rule": {
1373
+ "$ref": "#/rules@23"
1374
+ },
1375
+ "arguments": []
1376
+ }
1377
+ },
1378
+ {
1379
+ "$type": "Group",
1380
+ "elements": [
1381
+ {
1382
+ "$type": "Keyword",
1383
+ "value": ","
1384
+ },
1385
+ {
1386
+ "$type": "Assignment",
1387
+ "feature": "entries",
1388
+ "operator": "+=",
1389
+ "terminal": {
1390
+ "$type": "RuleCall",
1391
+ "rule": {
1392
+ "$ref": "#/rules@23"
1393
+ },
1394
+ "arguments": []
1395
+ }
1396
+ }
1397
+ ],
1398
+ "cardinality": "*"
1399
+ }
1400
+ ],
1401
+ "cardinality": "+"
1402
+ },
1403
+ {
1404
+ "$type": "Keyword",
1405
+ "value": ")"
1406
+ }
1407
+ ]
1408
+ },
1409
+ "definesHiddenTokens": false,
1410
+ "entry": false,
1411
+ "fragment": false,
1412
+ "hiddenTokens": [],
1413
+ "parameters": [],
1414
+ "wildcard": false
1415
+ },
1416
+ {
1417
+ "$type": "ParserRule",
1418
+ "name": "RbacRolesSpec",
1419
+ "definition": {
1420
+ "$type": "Group",
1421
+ "elements": [
1422
+ {
1423
+ "$type": "Keyword",
1424
+ "value": "roles"
1425
+ },
1426
+ {
1427
+ "$type": "Keyword",
1428
+ "value": ":"
1429
+ },
1430
+ {
1431
+ "$type": "Keyword",
1432
+ "value": "["
1433
+ },
1434
+ {
1435
+ "$type": "Group",
1436
+ "elements": [
1437
+ {
1438
+ "$type": "Assignment",
1439
+ "feature": "roles",
1440
+ "operator": "+=",
1441
+ "terminal": {
1442
+ "$type": "RuleCall",
1443
+ "rule": {
1444
+ "$ref": "#/rules@78"
1445
+ },
1446
+ "arguments": []
1447
+ }
1448
+ },
1449
+ {
1450
+ "$type": "Group",
1451
+ "elements": [
1452
+ {
1453
+ "$type": "Keyword",
1454
+ "value": ","
1455
+ },
1456
+ {
1457
+ "$type": "Assignment",
1458
+ "feature": "roles",
1459
+ "operator": "+=",
1460
+ "terminal": {
1461
+ "$type": "RuleCall",
1462
+ "rule": {
1463
+ "$ref": "#/rules@78"
1464
+ },
1465
+ "arguments": []
1466
+ }
1467
+ }
1468
+ ],
1469
+ "cardinality": "*"
1470
+ }
1471
+ ],
1472
+ "cardinality": "+"
1473
+ },
1474
+ {
1475
+ "$type": "Keyword",
1476
+ "value": "]"
1477
+ }
1478
+ ]
1479
+ },
1480
+ "definesHiddenTokens": false,
1481
+ "entry": false,
1482
+ "fragment": false,
1483
+ "hiddenTokens": [],
1484
+ "parameters": [],
1485
+ "wildcard": false
1486
+ },
1487
+ {
1488
+ "$type": "ParserRule",
1489
+ "name": "RbacAllowSpec",
1490
+ "definition": {
1491
+ "$type": "Group",
1492
+ "elements": [
1493
+ {
1494
+ "$type": "Keyword",
1495
+ "value": "allow"
1496
+ },
1497
+ {
1498
+ "$type": "Keyword",
1499
+ "value": ":"
1500
+ },
1501
+ {
1502
+ "$type": "Keyword",
1503
+ "value": "["
1504
+ },
1505
+ {
1506
+ "$type": "Group",
1507
+ "elements": [
1508
+ {
1509
+ "$type": "Assignment",
1510
+ "feature": "oprs",
1511
+ "operator": "+=",
1512
+ "terminal": {
1513
+ "$type": "RuleCall",
1514
+ "rule": {
1515
+ "$ref": "#/rules@27"
1516
+ },
1517
+ "arguments": []
1518
+ }
1519
+ },
1520
+ {
1521
+ "$type": "Group",
1522
+ "elements": [
1523
+ {
1524
+ "$type": "Keyword",
1525
+ "value": ","
1526
+ },
1527
+ {
1528
+ "$type": "Assignment",
1529
+ "feature": "oprs",
1530
+ "operator": "+=",
1531
+ "terminal": {
1532
+ "$type": "RuleCall",
1533
+ "rule": {
1534
+ "$ref": "#/rules@27"
1535
+ },
1536
+ "arguments": []
1537
+ }
1538
+ }
1539
+ ],
1540
+ "cardinality": "*"
1541
+ }
1542
+ ],
1543
+ "cardinality": "+"
1544
+ },
1545
+ {
1546
+ "$type": "Keyword",
1547
+ "value": "]"
1548
+ }
1549
+ ]
1550
+ },
1551
+ "definesHiddenTokens": false,
1552
+ "entry": false,
1553
+ "fragment": false,
1554
+ "hiddenTokens": [],
1555
+ "parameters": [],
1556
+ "wildcard": false
1557
+ },
1558
+ {
1559
+ "$type": "ParserRule",
1560
+ "name": "RbacOpr",
1561
+ "definition": {
1562
+ "$type": "Assignment",
1563
+ "feature": "value",
1564
+ "operator": "=",
1565
+ "terminal": {
1566
+ "$type": "Alternatives",
1567
+ "elements": [
1568
+ {
1569
+ "$type": "Keyword",
1570
+ "value": "create"
1571
+ },
1572
+ {
1573
+ "$type": "Keyword",
1574
+ "value": "delete"
1575
+ },
1576
+ {
1577
+ "$type": "Keyword",
1578
+ "value": "update"
1579
+ },
1580
+ {
1581
+ "$type": "Keyword",
1582
+ "value": "read"
1583
+ }
1584
+ ]
1585
+ }
1586
+ },
1587
+ "definesHiddenTokens": false,
1588
+ "entry": false,
1589
+ "fragment": false,
1590
+ "hiddenTokens": [],
1591
+ "parameters": [],
1592
+ "wildcard": false
1593
+ },
1594
+ {
1595
+ "$type": "ParserRule",
1596
+ "name": "RbacExpressionSpec",
1597
+ "definition": {
1598
+ "$type": "Group",
1599
+ "elements": [
1600
+ {
1601
+ "$type": "Keyword",
1602
+ "value": "where"
1603
+ },
1604
+ {
1605
+ "$type": "Keyword",
1606
+ "value": ":"
1607
+ },
1608
+ {
1609
+ "$type": "Assignment",
1610
+ "feature": "lhs",
1611
+ "operator": "=",
1612
+ "terminal": {
1613
+ "$type": "RuleCall",
1614
+ "rule": {
1615
+ "$ref": "#/rules@77"
1616
+ },
1617
+ "arguments": []
1618
+ }
1619
+ },
1620
+ {
1621
+ "$type": "Keyword",
1622
+ "value": "="
1623
+ },
1624
+ {
1625
+ "$type": "Assignment",
1626
+ "feature": "rhs",
1627
+ "operator": "=",
1628
+ "terminal": {
1629
+ "$type": "RuleCall",
1630
+ "rule": {
1631
+ "$ref": "#/rules@77"
1632
+ },
1633
+ "arguments": []
1634
+ }
1635
+ }
1636
+ ]
1637
+ },
1638
+ "definesHiddenTokens": false,
1639
+ "entry": false,
1640
+ "fragment": false,
1641
+ "hiddenTokens": [],
1642
+ "parameters": [],
1643
+ "wildcard": false
1644
+ },
1645
+ {
1646
+ "$type": "ParserRule",
1647
+ "name": "MetaDefinition",
1648
+ "definition": {
1649
+ "$type": "Group",
1650
+ "elements": [
1651
+ {
1652
+ "$type": "Keyword",
1653
+ "value": "@meta"
1654
+ },
1655
+ {
1656
+ "$type": "Assignment",
1657
+ "feature": "spec",
1658
+ "operator": "=",
1659
+ "terminal": {
1660
+ "$type": "RuleCall",
1661
+ "rule": {
1662
+ "$ref": "#/rules@37"
1663
+ },
1664
+ "arguments": []
1665
+ }
1666
+ }
1667
+ ]
1668
+ },
1669
+ "definesHiddenTokens": false,
1670
+ "entry": false,
1671
+ "fragment": false,
1672
+ "hiddenTokens": [],
1673
+ "parameters": [],
1674
+ "wildcard": false
1675
+ },
1676
+ {
1677
+ "$type": "ParserRule",
1678
+ "name": "PrePostTriggerDefinition",
1679
+ "definition": {
1680
+ "$type": "Alternatives",
1681
+ "elements": [
1682
+ {
1683
+ "$type": "Assignment",
1684
+ "feature": "after",
1685
+ "operator": "=",
1686
+ "terminal": {
1687
+ "$type": "RuleCall",
1688
+ "rule": {
1689
+ "$ref": "#/rules@31"
1690
+ },
1691
+ "arguments": []
1692
+ }
1693
+ },
1694
+ {
1695
+ "$type": "Assignment",
1696
+ "feature": "before",
1697
+ "operator": "=",
1698
+ "terminal": {
1699
+ "$type": "RuleCall",
1700
+ "rule": {
1701
+ "$ref": "#/rules@32"
1702
+ },
1703
+ "arguments": []
1704
+ }
1705
+ }
1706
+ ]
1707
+ },
1708
+ "definesHiddenTokens": false,
1709
+ "entry": false,
1710
+ "fragment": false,
1711
+ "hiddenTokens": [],
1712
+ "parameters": [],
1713
+ "wildcard": false
1714
+ },
1715
+ {
1716
+ "$type": "ParserRule",
1717
+ "name": "AfterTriggerDefinition",
1718
+ "definition": {
1719
+ "$type": "Group",
1720
+ "elements": [
1721
+ {
1722
+ "$type": "Keyword",
1723
+ "value": "@after"
1724
+ },
1725
+ {
1726
+ "$type": "Assignment",
1727
+ "feature": "triggers",
1728
+ "operator": "=",
1729
+ "terminal": {
1730
+ "$type": "RuleCall",
1731
+ "rule": {
1732
+ "$ref": "#/rules@33"
1733
+ },
1734
+ "arguments": []
1735
+ }
1736
+ }
1737
+ ]
1738
+ },
1739
+ "definesHiddenTokens": false,
1740
+ "entry": false,
1741
+ "fragment": false,
1742
+ "hiddenTokens": [],
1743
+ "parameters": [],
1744
+ "wildcard": false
1745
+ },
1746
+ {
1747
+ "$type": "ParserRule",
1748
+ "name": "BeforeTriggerDefinition",
1749
+ "definition": {
1750
+ "$type": "Group",
1751
+ "elements": [
1752
+ {
1753
+ "$type": "Keyword",
1754
+ "value": "@before"
1755
+ },
1756
+ {
1757
+ "$type": "Assignment",
1758
+ "feature": "triggers",
1759
+ "operator": "=",
1760
+ "terminal": {
1761
+ "$type": "RuleCall",
1762
+ "rule": {
1763
+ "$ref": "#/rules@33"
1764
+ },
1765
+ "arguments": []
1766
+ }
1767
+ }
1768
+ ]
1769
+ },
1770
+ "definesHiddenTokens": false,
1771
+ "entry": false,
1772
+ "fragment": false,
1773
+ "hiddenTokens": [],
1774
+ "parameters": [],
1775
+ "wildcard": false
1776
+ },
1777
+ {
1778
+ "$type": "ParserRule",
1779
+ "name": "TriggerDefinition",
1780
+ "definition": {
1781
+ "$type": "Group",
1782
+ "elements": [
1783
+ {
1784
+ "$type": "Keyword",
1785
+ "value": "{"
1786
+ },
1787
+ {
1788
+ "$type": "Assignment",
1789
+ "feature": "entries",
1790
+ "operator": "+=",
1791
+ "terminal": {
1792
+ "$type": "RuleCall",
1793
+ "rule": {
1794
+ "$ref": "#/rules@34"
1795
+ },
1796
+ "arguments": []
1797
+ }
1798
+ },
1799
+ {
1800
+ "$type": "Group",
1801
+ "elements": [
1802
+ {
1803
+ "$type": "Keyword",
1804
+ "value": ","
1805
+ },
1806
+ {
1807
+ "$type": "Assignment",
1808
+ "feature": "entries",
1809
+ "operator": "+=",
1810
+ "terminal": {
1811
+ "$type": "RuleCall",
1812
+ "rule": {
1813
+ "$ref": "#/rules@34"
1814
+ },
1815
+ "arguments": []
1816
+ }
1817
+ }
1818
+ ],
1819
+ "cardinality": "*"
1820
+ },
1821
+ {
1822
+ "$type": "Keyword",
1823
+ "value": "}"
1824
+ }
1825
+ ]
1826
+ },
1827
+ "definesHiddenTokens": false,
1828
+ "entry": false,
1829
+ "fragment": false,
1830
+ "hiddenTokens": [],
1831
+ "parameters": [],
1832
+ "wildcard": false
1833
+ },
1834
+ {
1835
+ "$type": "ParserRule",
1836
+ "name": "TriggerEntry",
1837
+ "definition": {
1838
+ "$type": "Group",
1839
+ "elements": [
1840
+ {
1841
+ "$type": "Assignment",
1842
+ "feature": "on",
1843
+ "operator": "=",
1844
+ "terminal": {
1845
+ "$type": "Alternatives",
1846
+ "elements": [
1847
+ {
1848
+ "$type": "Keyword",
1849
+ "value": "create"
1850
+ },
1851
+ {
1852
+ "$type": "Keyword",
1853
+ "value": "delete"
1854
+ },
1855
+ {
1856
+ "$type": "Keyword",
1857
+ "value": "update"
1858
+ }
1859
+ ]
1860
+ }
1861
+ },
1862
+ {
1863
+ "$type": "Assignment",
1864
+ "feature": "event",
1865
+ "operator": "=",
1866
+ "terminal": {
1867
+ "$type": "RuleCall",
1868
+ "rule": {
1869
+ "$ref": "#/rules@78"
1870
+ },
1871
+ "arguments": []
1872
+ }
1873
+ },
1874
+ {
1875
+ "$type": "Assignment",
1876
+ "feature": "async",
1877
+ "operator": "=",
1878
+ "terminal": {
1879
+ "$type": "Keyword",
1880
+ "value": "@async"
1881
+ },
1882
+ "cardinality": "?"
1883
+ }
1884
+ ]
1885
+ },
1886
+ "definesHiddenTokens": false,
1887
+ "entry": false,
1888
+ "fragment": false,
1889
+ "hiddenTokens": [],
1890
+ "parameters": [],
1891
+ "wildcard": false
1892
+ },
1893
+ {
1894
+ "$type": "ParserRule",
1895
+ "name": "CompositeUniqueDefinition",
1896
+ "definition": {
1897
+ "$type": "Group",
1898
+ "elements": [
1899
+ {
1900
+ "$type": "Keyword",
1901
+ "value": "@with_unique"
1902
+ },
1903
+ {
1904
+ "$type": "Keyword",
1905
+ "value": "("
1906
+ },
1907
+ {
1908
+ "$type": "Assignment",
1909
+ "feature": "attrs",
1910
+ "operator": "+=",
1911
+ "terminal": {
1912
+ "$type": "RuleCall",
1913
+ "rule": {
1914
+ "$ref": "#/rules@78"
1915
+ },
1916
+ "arguments": []
1917
+ }
1918
+ },
1919
+ {
1920
+ "$type": "Group",
1921
+ "elements": [
1922
+ {
1923
+ "$type": "Keyword",
1924
+ "value": ","
1925
+ },
1926
+ {
1927
+ "$type": "Assignment",
1928
+ "feature": "attrs",
1929
+ "operator": "+=",
1930
+ "terminal": {
1931
+ "$type": "RuleCall",
1932
+ "rule": {
1933
+ "$ref": "#/rules@78"
1934
+ },
1935
+ "arguments": []
1936
+ }
1937
+ }
1938
+ ],
1939
+ "cardinality": "*"
1940
+ },
1941
+ {
1942
+ "$type": "Keyword",
1943
+ "value": ")"
1944
+ }
1945
+ ]
1946
+ },
1947
+ "definesHiddenTokens": false,
1948
+ "entry": false,
1949
+ "fragment": false,
1950
+ "hiddenTokens": [],
1951
+ "parameters": [],
1952
+ "wildcard": false
1953
+ },
1954
+ {
1955
+ "$type": "ParserRule",
1956
+ "name": "ArrayLiteral",
1957
+ "definition": {
1958
+ "$type": "Alternatives",
1959
+ "elements": [
1960
+ {
1961
+ "$type": "Group",
1962
+ "elements": [
1963
+ {
1964
+ "$type": "Keyword",
1965
+ "value": "["
1966
+ },
1967
+ {
1968
+ "$type": "Keyword",
1969
+ "value": "]"
1970
+ }
1971
+ ]
1972
+ },
1973
+ {
1974
+ "$type": "Group",
1975
+ "elements": [
1976
+ {
1977
+ "$type": "Keyword",
1978
+ "value": "["
1979
+ },
1980
+ {
1981
+ "$type": "Assignment",
1982
+ "feature": "vals",
1983
+ "operator": "+=",
1984
+ "terminal": {
1985
+ "$type": "RuleCall",
1986
+ "rule": {
1987
+ "$ref": "#/rules@46"
1988
+ },
1989
+ "arguments": []
1990
+ }
1991
+ },
1992
+ {
1993
+ "$type": "Group",
1994
+ "elements": [
1995
+ {
1996
+ "$type": "Keyword",
1997
+ "value": ","
1998
+ },
1999
+ {
2000
+ "$type": "Assignment",
2001
+ "feature": "vals",
2002
+ "operator": "+=",
2003
+ "terminal": {
2004
+ "$type": "RuleCall",
2005
+ "rule": {
2006
+ "$ref": "#/rules@46"
2007
+ },
2008
+ "arguments": []
2009
+ }
2010
+ }
2011
+ ],
2012
+ "cardinality": "*"
2013
+ },
2014
+ {
2015
+ "$type": "Keyword",
2016
+ "value": "]"
2017
+ }
2018
+ ]
2019
+ }
2020
+ ]
2021
+ },
2022
+ "definesHiddenTokens": false,
2023
+ "entry": false,
2024
+ "fragment": false,
2025
+ "hiddenTokens": [],
2026
+ "parameters": [],
2027
+ "wildcard": false
2028
+ },
2029
+ {
2030
+ "$type": "ParserRule",
2031
+ "name": "MapLiteral",
2032
+ "definition": {
2033
+ "$type": "Group",
2034
+ "elements": [
2035
+ {
2036
+ "$type": "Keyword",
2037
+ "value": "{"
2038
+ },
2039
+ {
2040
+ "$type": "Assignment",
2041
+ "feature": "entries",
2042
+ "operator": "+=",
2043
+ "terminal": {
2044
+ "$type": "RuleCall",
2045
+ "rule": {
2046
+ "$ref": "#/rules@38"
2047
+ },
2048
+ "arguments": []
2049
+ }
2050
+ },
2051
+ {
2052
+ "$type": "Group",
2053
+ "elements": [
2054
+ {
2055
+ "$type": "Keyword",
2056
+ "value": ","
2057
+ },
2058
+ {
2059
+ "$type": "Assignment",
2060
+ "feature": "entries",
2061
+ "operator": "+=",
2062
+ "terminal": {
2063
+ "$type": "RuleCall",
2064
+ "rule": {
2065
+ "$ref": "#/rules@38"
2066
+ },
2067
+ "arguments": []
2068
+ }
2069
+ }
2070
+ ],
2071
+ "cardinality": "*"
2072
+ },
2073
+ {
2074
+ "$type": "Keyword",
2075
+ "value": "}"
2076
+ }
2077
+ ]
2078
+ },
2079
+ "definesHiddenTokens": false,
2080
+ "entry": false,
2081
+ "fragment": false,
2082
+ "hiddenTokens": [],
2083
+ "parameters": [],
2084
+ "wildcard": false
2085
+ },
2086
+ {
2087
+ "$type": "ParserRule",
2088
+ "name": "MapEntry",
2089
+ "definition": {
2090
+ "$type": "Group",
2091
+ "elements": [
2092
+ {
2093
+ "$type": "Assignment",
2094
+ "feature": "key",
2095
+ "operator": "=",
2096
+ "terminal": {
2097
+ "$type": "RuleCall",
2098
+ "rule": {
2099
+ "$ref": "#/rules@39"
2100
+ },
2101
+ "arguments": []
2102
+ }
2103
+ },
2104
+ {
2105
+ "$type": "Keyword",
2106
+ "value": ":"
2107
+ },
2108
+ {
2109
+ "$type": "Assignment",
2110
+ "feature": "value",
2111
+ "operator": "=",
2112
+ "terminal": {
2113
+ "$type": "RuleCall",
2114
+ "rule": {
2115
+ "$ref": "#/rules@42"
2116
+ },
2117
+ "arguments": []
2118
+ }
2119
+ }
2120
+ ]
2121
+ },
2122
+ "definesHiddenTokens": false,
2123
+ "entry": false,
2124
+ "fragment": false,
2125
+ "hiddenTokens": [],
2126
+ "parameters": [],
2127
+ "wildcard": false
2128
+ },
2129
+ {
2130
+ "$type": "ParserRule",
2131
+ "name": "MapKey",
2132
+ "definition": {
2133
+ "$type": "Alternatives",
2134
+ "elements": [
2135
+ {
2136
+ "$type": "Assignment",
2137
+ "feature": "str",
2138
+ "operator": "=",
2139
+ "terminal": {
2140
+ "$type": "RuleCall",
2141
+ "rule": {
2142
+ "$ref": "#/rules@80"
2143
+ },
2144
+ "arguments": []
2145
+ }
2146
+ },
2147
+ {
2148
+ "$type": "Assignment",
2149
+ "feature": "num",
2150
+ "operator": "=",
2151
+ "terminal": {
2152
+ "$type": "RuleCall",
2153
+ "rule": {
2154
+ "$ref": "#/rules@74"
2155
+ },
2156
+ "arguments": []
2157
+ }
2158
+ },
2159
+ {
2160
+ "$type": "Assignment",
2161
+ "feature": "bool",
2162
+ "operator": "=",
2163
+ "terminal": {
2164
+ "$type": "RuleCall",
2165
+ "rule": {
2166
+ "$ref": "#/rules@73"
2167
+ },
2168
+ "arguments": []
2169
+ }
2170
+ }
2171
+ ]
2172
+ },
2173
+ "definesHiddenTokens": false,
2174
+ "entry": false,
2175
+ "fragment": false,
2176
+ "hiddenTokens": [],
2177
+ "parameters": [],
2178
+ "wildcard": false
2179
+ },
2180
+ {
2181
+ "$type": "ParserRule",
2182
+ "name": "FnCall",
2183
+ "definition": {
2184
+ "$type": "Group",
2185
+ "elements": [
2186
+ {
2187
+ "$type": "Assignment",
2188
+ "feature": "name",
2189
+ "operator": "=",
2190
+ "terminal": {
2191
+ "$type": "Alternatives",
2192
+ "elements": [
2193
+ {
2194
+ "$type": "RuleCall",
2195
+ "rule": {
2196
+ "$ref": "#/rules@78"
2197
+ },
2198
+ "arguments": []
2199
+ },
2200
+ {
2201
+ "$type": "RuleCall",
2202
+ "rule": {
2203
+ "$ref": "#/rules@77"
2204
+ },
2205
+ "arguments": []
2206
+ }
2207
+ ]
2208
+ }
2209
+ },
2210
+ {
2211
+ "$type": "Alternatives",
2212
+ "elements": [
2213
+ {
2214
+ "$type": "Group",
2215
+ "elements": [
2216
+ {
2217
+ "$type": "Keyword",
2218
+ "value": "("
2219
+ },
2220
+ {
2221
+ "$type": "Keyword",
2222
+ "value": ")"
2223
+ }
2224
+ ]
2225
+ },
2226
+ {
2227
+ "$type": "Group",
2228
+ "elements": [
2229
+ {
2230
+ "$type": "Keyword",
2231
+ "value": "("
2232
+ },
2233
+ {
2234
+ "$type": "Group",
2235
+ "elements": [
2236
+ {
2237
+ "$type": "Assignment",
2238
+ "feature": "args",
2239
+ "operator": "+=",
2240
+ "terminal": {
2241
+ "$type": "RuleCall",
2242
+ "rule": {
2243
+ "$ref": "#/rules@42"
2244
+ },
2245
+ "arguments": []
2246
+ }
2247
+ },
2248
+ {
2249
+ "$type": "Group",
2250
+ "elements": [
2251
+ {
2252
+ "$type": "Keyword",
2253
+ "value": ","
2254
+ },
2255
+ {
2256
+ "$type": "Assignment",
2257
+ "feature": "args",
2258
+ "operator": "+=",
2259
+ "terminal": {
2260
+ "$type": "RuleCall",
2261
+ "rule": {
2262
+ "$ref": "#/rules@42"
2263
+ },
2264
+ "arguments": []
2265
+ }
2266
+ }
2267
+ ],
2268
+ "cardinality": "*"
2269
+ }
2270
+ ],
2271
+ "cardinality": "+"
2272
+ },
2273
+ {
2274
+ "$type": "Keyword",
2275
+ "value": ")"
2276
+ }
2277
+ ]
2278
+ }
2279
+ ]
2280
+ }
2281
+ ]
2282
+ },
2283
+ "definesHiddenTokens": false,
2284
+ "entry": false,
2285
+ "fragment": false,
2286
+ "hiddenTokens": [],
2287
+ "parameters": [],
2288
+ "wildcard": false
2289
+ },
2290
+ {
2291
+ "$type": "ParserRule",
2292
+ "name": "AsyncFnCall",
2293
+ "definition": {
2294
+ "$type": "Group",
2295
+ "elements": [
2296
+ {
2297
+ "$type": "Keyword",
2298
+ "value": "await"
2299
+ },
2300
+ {
2301
+ "$type": "Assignment",
2302
+ "feature": "fnCall",
2303
+ "operator": "=",
2304
+ "terminal": {
2305
+ "$type": "RuleCall",
2306
+ "rule": {
2307
+ "$ref": "#/rules@40"
2308
+ },
2309
+ "arguments": []
2310
+ }
2311
+ }
2312
+ ]
2313
+ },
2314
+ "definesHiddenTokens": false,
2315
+ "entry": false,
2316
+ "fragment": false,
2317
+ "hiddenTokens": [],
2318
+ "parameters": [],
2319
+ "wildcard": false
2320
+ },
2321
+ {
2322
+ "$type": "ParserRule",
2323
+ "name": "Literal",
2324
+ "definition": {
2325
+ "$type": "Alternatives",
2326
+ "elements": [
2327
+ {
2328
+ "$type": "Assignment",
2329
+ "feature": "id",
2330
+ "operator": "=",
2331
+ "terminal": {
2332
+ "$type": "RuleCall",
2333
+ "rule": {
2334
+ "$ref": "#/rules@78"
2335
+ },
2336
+ "arguments": []
2337
+ }
2338
+ },
2339
+ {
2340
+ "$type": "Assignment",
2341
+ "feature": "num",
2342
+ "operator": "=",
2343
+ "terminal": {
2344
+ "$type": "RuleCall",
2345
+ "rule": {
2346
+ "$ref": "#/rules@74"
2347
+ },
2348
+ "arguments": []
2349
+ }
2350
+ },
2351
+ {
2352
+ "$type": "Assignment",
2353
+ "feature": "str",
2354
+ "operator": "=",
2355
+ "terminal": {
2356
+ "$type": "RuleCall",
2357
+ "rule": {
2358
+ "$ref": "#/rules@80"
2359
+ },
2360
+ "arguments": []
2361
+ }
2362
+ },
2363
+ {
2364
+ "$type": "Assignment",
2365
+ "feature": "ref",
2366
+ "operator": "=",
2367
+ "terminal": {
2368
+ "$type": "RuleCall",
2369
+ "rule": {
2370
+ "$ref": "#/rules@77"
2371
+ },
2372
+ "arguments": []
2373
+ }
2374
+ },
2375
+ {
2376
+ "$type": "Assignment",
2377
+ "feature": "bool",
2378
+ "operator": "=",
2379
+ "terminal": {
2380
+ "$type": "RuleCall",
2381
+ "rule": {
2382
+ "$ref": "#/rules@73"
2383
+ },
2384
+ "arguments": []
2385
+ }
2386
+ },
2387
+ {
2388
+ "$type": "Assignment",
2389
+ "feature": "fnCall",
2390
+ "operator": "=",
2391
+ "terminal": {
2392
+ "$type": "RuleCall",
2393
+ "rule": {
2394
+ "$ref": "#/rules@40"
2395
+ },
2396
+ "arguments": []
2397
+ }
2398
+ },
2399
+ {
2400
+ "$type": "Assignment",
2401
+ "feature": "asyncFnCall",
2402
+ "operator": "=",
2403
+ "terminal": {
2404
+ "$type": "RuleCall",
2405
+ "rule": {
2406
+ "$ref": "#/rules@41"
2407
+ },
2408
+ "arguments": []
2409
+ }
2410
+ },
2411
+ {
2412
+ "$type": "Assignment",
2413
+ "feature": "array",
2414
+ "operator": "=",
2415
+ "terminal": {
2416
+ "$type": "RuleCall",
2417
+ "rule": {
2418
+ "$ref": "#/rules@36"
2419
+ },
2420
+ "arguments": []
2421
+ }
2422
+ },
2423
+ {
2424
+ "$type": "Assignment",
2425
+ "feature": "map",
2426
+ "operator": "=",
2427
+ "terminal": {
2428
+ "$type": "RuleCall",
2429
+ "rule": {
2430
+ "$ref": "#/rules@37"
2431
+ },
2432
+ "arguments": []
2433
+ }
2434
+ }
2435
+ ]
2436
+ },
2437
+ "definesHiddenTokens": false,
2438
+ "entry": false,
2439
+ "fragment": false,
2440
+ "hiddenTokens": [],
2441
+ "parameters": [],
2442
+ "wildcard": false
2443
+ },
2444
+ {
2445
+ "$type": "ParserRule",
2446
+ "fragment": true,
2447
+ "name": "Body",
2448
+ "definition": {
2449
+ "$type": "Alternatives",
2450
+ "elements": [
2451
+ {
2452
+ "$type": "Group",
2453
+ "elements": [
2454
+ {
2455
+ "$type": "Keyword",
2456
+ "value": "{"
2457
+ },
2458
+ {
2459
+ "$type": "Keyword",
2460
+ "value": "}"
2461
+ }
2462
+ ]
2463
+ },
2464
+ {
2465
+ "$type": "Group",
2466
+ "elements": [
2467
+ {
2468
+ "$type": "Keyword",
2469
+ "value": "{"
2470
+ },
2471
+ {
2472
+ "$type": "Group",
2473
+ "elements": [
2474
+ {
2475
+ "$type": "Assignment",
2476
+ "feature": "statements",
2477
+ "operator": "+=",
2478
+ "terminal": {
2479
+ "$type": "RuleCall",
2480
+ "rule": {
2481
+ "$ref": "#/rules@46"
2482
+ },
2483
+ "arguments": []
2484
+ }
2485
+ },
2486
+ {
2487
+ "$type": "Group",
2488
+ "elements": [
2489
+ {
2490
+ "$type": "Keyword",
2491
+ "value": ";"
2492
+ },
2493
+ {
2494
+ "$type": "Assignment",
2495
+ "feature": "statements",
2496
+ "operator": "+=",
2497
+ "terminal": {
2498
+ "$type": "RuleCall",
2499
+ "rule": {
2500
+ "$ref": "#/rules@46"
2501
+ },
2502
+ "arguments": []
2503
+ }
2504
+ }
2505
+ ],
2506
+ "cardinality": "*"
2507
+ }
2508
+ ],
2509
+ "cardinality": "+"
2510
+ },
2511
+ {
2512
+ "$type": "Keyword",
2513
+ "value": "}"
2514
+ }
2515
+ ]
2516
+ },
2517
+ {
2518
+ "$type": "Group",
2519
+ "elements": [
2520
+ {
2521
+ "$type": "Keyword",
2522
+ "value": "{"
2523
+ },
2524
+ {
2525
+ "$type": "Assignment",
2526
+ "feature": "statements",
2527
+ "operator": "+=",
2528
+ "terminal": {
2529
+ "$type": "RuleCall",
2530
+ "rule": {
2531
+ "$ref": "#/rules@46"
2532
+ },
2533
+ "arguments": []
2534
+ }
2535
+ },
2536
+ {
2537
+ "$type": "Keyword",
2538
+ "value": ";",
2539
+ "cardinality": "+"
2540
+ },
2541
+ {
2542
+ "$type": "Keyword",
2543
+ "value": "}"
2544
+ }
2545
+ ]
2546
+ },
2547
+ {
2548
+ "$type": "Assignment",
2549
+ "feature": "statements",
2550
+ "operator": "+=",
2551
+ "terminal": {
2552
+ "$type": "RuleCall",
2553
+ "rule": {
2554
+ "$ref": "#/rules@46"
2555
+ },
2556
+ "arguments": []
2557
+ }
2558
+ }
2559
+ ]
2560
+ },
2561
+ "definesHiddenTokens": false,
2562
+ "entry": false,
2563
+ "hiddenTokens": [],
2564
+ "parameters": [],
2565
+ "wildcard": false
2566
+ },
2567
+ {
2568
+ "$type": "ParserRule",
2569
+ "name": "WorkflowDefinition",
2570
+ "definition": {
2571
+ "$type": "Group",
2572
+ "elements": [
2573
+ {
2574
+ "$type": "Keyword",
2575
+ "value": "workflow"
2576
+ },
2577
+ {
2578
+ "$type": "Assignment",
2579
+ "feature": "name",
2580
+ "operator": "=",
2581
+ "terminal": {
2582
+ "$type": "RuleCall",
2583
+ "rule": {
2584
+ "$ref": "#/rules@78"
2585
+ },
2586
+ "arguments": []
2587
+ }
2588
+ },
2589
+ {
2590
+ "$type": "RuleCall",
2591
+ "rule": {
2592
+ "$ref": "#/rules@43"
2593
+ },
2594
+ "arguments": []
2595
+ }
2596
+ ]
2597
+ },
2598
+ "definesHiddenTokens": false,
2599
+ "entry": false,
2600
+ "fragment": false,
2601
+ "hiddenTokens": [],
2602
+ "parameters": [],
2603
+ "wildcard": false
2604
+ },
2605
+ {
2606
+ "$type": "ParserRule",
2607
+ "name": "Pattern",
2608
+ "definition": {
2609
+ "$type": "Alternatives",
2610
+ "elements": [
2611
+ {
2612
+ "$type": "Assignment",
2613
+ "feature": "literal",
2614
+ "operator": "=",
2615
+ "terminal": {
2616
+ "$type": "RuleCall",
2617
+ "rule": {
2618
+ "$ref": "#/rules@42"
2619
+ },
2620
+ "arguments": []
2621
+ }
2622
+ },
2623
+ {
2624
+ "$type": "Assignment",
2625
+ "feature": "crudMap",
2626
+ "operator": "=",
2627
+ "terminal": {
2628
+ "$type": "RuleCall",
2629
+ "rule": {
2630
+ "$ref": "#/rules@49"
2631
+ },
2632
+ "arguments": []
2633
+ }
2634
+ },
2635
+ {
2636
+ "$type": "Assignment",
2637
+ "feature": "if",
2638
+ "operator": "=",
2639
+ "terminal": {
2640
+ "$type": "RuleCall",
2641
+ "rule": {
2642
+ "$ref": "#/rules@56"
2643
+ },
2644
+ "arguments": []
2645
+ }
2646
+ },
2647
+ {
2648
+ "$type": "Assignment",
2649
+ "feature": "forEach",
2650
+ "operator": "=",
2651
+ "terminal": {
2652
+ "$type": "RuleCall",
2653
+ "rule": {
2654
+ "$ref": "#/rules@58"
2655
+ },
2656
+ "arguments": []
2657
+ }
2658
+ },
2659
+ {
2660
+ "$type": "Assignment",
2661
+ "feature": "delete",
2662
+ "operator": "=",
2663
+ "terminal": {
2664
+ "$type": "RuleCall",
2665
+ "rule": {
2666
+ "$ref": "#/rules@59"
2667
+ },
2668
+ "arguments": []
2669
+ }
2670
+ },
2671
+ {
2672
+ "$type": "Assignment",
2673
+ "feature": "purge",
2674
+ "operator": "=",
2675
+ "terminal": {
2676
+ "$type": "RuleCall",
2677
+ "rule": {
2678
+ "$ref": "#/rules@60"
2679
+ },
2680
+ "arguments": []
2681
+ }
2682
+ },
2683
+ {
2684
+ "$type": "Assignment",
2685
+ "feature": "upsert",
2686
+ "operator": "=",
2687
+ "terminal": {
2688
+ "$type": "RuleCall",
2689
+ "rule": {
2690
+ "$ref": "#/rules@61"
2691
+ },
2692
+ "arguments": []
2693
+ }
2694
+ },
2695
+ {
2696
+ "$type": "Assignment",
2697
+ "feature": "fullTextSearch",
2698
+ "operator": "=",
2699
+ "terminal": {
2700
+ "$type": "RuleCall",
2701
+ "rule": {
2702
+ "$ref": "#/rules@52"
2703
+ },
2704
+ "arguments": []
2705
+ }
2706
+ }
2707
+ ]
2708
+ },
2709
+ "definesHiddenTokens": false,
2710
+ "entry": false,
2711
+ "fragment": false,
2712
+ "hiddenTokens": [],
2713
+ "parameters": [],
2714
+ "wildcard": false
2715
+ },
2716
+ {
2717
+ "$type": "ParserRule",
2718
+ "name": "Statement",
2719
+ "definition": {
2720
+ "$type": "Group",
2721
+ "elements": [
2722
+ {
2723
+ "$type": "Assignment",
2724
+ "feature": "pattern",
2725
+ "operator": "=",
2726
+ "terminal": {
2727
+ "$type": "RuleCall",
2728
+ "rule": {
2729
+ "$ref": "#/rules@45"
2730
+ },
2731
+ "arguments": []
2732
+ }
2733
+ },
2734
+ {
2735
+ "$type": "Assignment",
2736
+ "feature": "hints",
2737
+ "operator": "+=",
2738
+ "terminal": {
2739
+ "$type": "RuleCall",
2740
+ "rule": {
2741
+ "$ref": "#/rules@47"
2742
+ },
2743
+ "arguments": []
2744
+ },
2745
+ "cardinality": "*"
2746
+ }
2747
+ ]
2748
+ },
2749
+ "definesHiddenTokens": false,
2750
+ "entry": false,
2751
+ "fragment": false,
2752
+ "hiddenTokens": [],
2753
+ "parameters": [],
2754
+ "wildcard": false
2755
+ },
2756
+ {
2757
+ "$type": "ParserRule",
2758
+ "name": "RuntimeHint",
2759
+ "definition": {
2760
+ "$type": "Alternatives",
2761
+ "elements": [
2762
+ {
2763
+ "$type": "Assignment",
2764
+ "feature": "aliasSpec",
2765
+ "operator": "=",
2766
+ "terminal": {
2767
+ "$type": "RuleCall",
2768
+ "rule": {
2769
+ "$ref": "#/rules@48"
2770
+ },
2771
+ "arguments": []
2772
+ }
2773
+ },
2774
+ {
2775
+ "$type": "Assignment",
2776
+ "feature": "catchSpec",
2777
+ "operator": "=",
2778
+ "terminal": {
2779
+ "$type": "RuleCall",
2780
+ "rule": {
2781
+ "$ref": "#/rules@54"
2782
+ },
2783
+ "arguments": []
2784
+ }
2785
+ }
2786
+ ]
2787
+ },
2788
+ "definesHiddenTokens": false,
2789
+ "entry": false,
2790
+ "fragment": false,
2791
+ "hiddenTokens": [],
2792
+ "parameters": [],
2793
+ "wildcard": false
2794
+ },
2795
+ {
2796
+ "$type": "ParserRule",
2797
+ "name": "AliasSpec",
2798
+ "definition": {
2799
+ "$type": "Group",
2800
+ "elements": [
2801
+ {
2802
+ "$type": "Keyword",
2803
+ "value": "as"
2804
+ },
2805
+ {
2806
+ "$type": "Alternatives",
2807
+ "elements": [
2808
+ {
2809
+ "$type": "Assignment",
2810
+ "feature": "alias",
2811
+ "operator": "=",
2812
+ "terminal": {
2813
+ "$type": "RuleCall",
2814
+ "rule": {
2815
+ "$ref": "#/rules@78"
2816
+ },
2817
+ "arguments": []
2818
+ }
2819
+ },
2820
+ {
2821
+ "$type": "Group",
2822
+ "elements": [
2823
+ {
2824
+ "$type": "Keyword",
2825
+ "value": "["
2826
+ },
2827
+ {
2828
+ "$type": "Group",
2829
+ "elements": [
2830
+ {
2831
+ "$type": "Assignment",
2832
+ "feature": "aliases",
2833
+ "operator": "+=",
2834
+ "terminal": {
2835
+ "$type": "RuleCall",
2836
+ "rule": {
2837
+ "$ref": "#/rules@78"
2838
+ },
2839
+ "arguments": []
2840
+ }
2841
+ },
2842
+ {
2843
+ "$type": "Group",
2844
+ "elements": [
2845
+ {
2846
+ "$type": "Keyword",
2847
+ "value": ","
2848
+ },
2849
+ {
2850
+ "$type": "Assignment",
2851
+ "feature": "aliases",
2852
+ "operator": "+=",
2853
+ "terminal": {
2854
+ "$type": "RuleCall",
2855
+ "rule": {
2856
+ "$ref": "#/rules@78"
2857
+ },
2858
+ "arguments": []
2859
+ }
2860
+ }
2861
+ ],
2862
+ "cardinality": "*"
2863
+ }
2864
+ ],
2865
+ "cardinality": "+"
2866
+ },
2867
+ {
2868
+ "$type": "Keyword",
2869
+ "value": "]"
2870
+ }
2871
+ ]
2872
+ }
2873
+ ]
2874
+ }
2875
+ ]
2876
+ },
2877
+ "definesHiddenTokens": false,
2878
+ "entry": false,
2879
+ "fragment": false,
2880
+ "hiddenTokens": [],
2881
+ "parameters": [],
2882
+ "wildcard": false
2883
+ },
2884
+ {
2885
+ "$type": "ParserRule",
2886
+ "name": "CrudMap",
2887
+ "definition": {
2888
+ "$type": "Group",
2889
+ "elements": [
2890
+ {
2891
+ "$type": "Keyword",
2892
+ "value": "{"
2893
+ },
2894
+ {
2895
+ "$type": "Alternatives",
2896
+ "elements": [
2897
+ {
2898
+ "$type": "Group",
2899
+ "elements": [
2900
+ {
2901
+ "$type": "Assignment",
2902
+ "feature": "name",
2903
+ "operator": "=",
2904
+ "terminal": {
2905
+ "$type": "RuleCall",
2906
+ "rule": {
2907
+ "$ref": "#/rules@75"
2908
+ },
2909
+ "arguments": []
2910
+ }
2911
+ },
2912
+ {
2913
+ "$type": "Keyword",
2914
+ "value": "{"
2915
+ },
2916
+ {
2917
+ "$type": "Keyword",
2918
+ "value": "}"
2919
+ }
2920
+ ]
2921
+ },
2922
+ {
2923
+ "$type": "Group",
2924
+ "elements": [
2925
+ {
2926
+ "$type": "Assignment",
2927
+ "feature": "name",
2928
+ "operator": "=",
2929
+ "terminal": {
2930
+ "$type": "RuleCall",
2931
+ "rule": {
2932
+ "$ref": "#/rules@78"
2933
+ },
2934
+ "arguments": []
2935
+ }
2936
+ },
2937
+ {
2938
+ "$type": "Keyword",
2939
+ "value": "{"
2940
+ },
2941
+ {
2942
+ "$type": "Group",
2943
+ "elements": [
2944
+ {
2945
+ "$type": "Assignment",
2946
+ "feature": "attributes",
2947
+ "operator": "+=",
2948
+ "terminal": {
2949
+ "$type": "RuleCall",
2950
+ "rule": {
2951
+ "$ref": "#/rules@62"
2952
+ },
2953
+ "arguments": []
2954
+ }
2955
+ },
2956
+ {
2957
+ "$type": "Group",
2958
+ "elements": [
2959
+ {
2960
+ "$type": "Keyword",
2961
+ "value": ","
2962
+ },
2963
+ {
2964
+ "$type": "Assignment",
2965
+ "feature": "attributes",
2966
+ "operator": "+=",
2967
+ "terminal": {
2968
+ "$type": "RuleCall",
2969
+ "rule": {
2970
+ "$ref": "#/rules@62"
2971
+ },
2972
+ "arguments": []
2973
+ }
2974
+ }
2975
+ ],
2976
+ "cardinality": "*"
2977
+ }
2978
+ ],
2979
+ "cardinality": "+"
2980
+ },
2981
+ {
2982
+ "$type": "Assignment",
2983
+ "feature": "properties",
2984
+ "operator": "+=",
2985
+ "terminal": {
2986
+ "$type": "RuleCall",
2987
+ "rule": {
2988
+ "$ref": "#/rules@5"
2989
+ },
2990
+ "arguments": []
2991
+ },
2992
+ "cardinality": "*"
2993
+ },
2994
+ {
2995
+ "$type": "Keyword",
2996
+ "value": "}"
2997
+ }
2998
+ ]
2999
+ }
3000
+ ]
3001
+ },
3002
+ {
3003
+ "$type": "Group",
3004
+ "elements": [
3005
+ {
3006
+ "$type": "Keyword",
3007
+ "value": ","
3008
+ },
3009
+ {
3010
+ "$type": "Assignment",
3011
+ "feature": "relationships",
3012
+ "operator": "+=",
3013
+ "terminal": {
3014
+ "$type": "RuleCall",
3015
+ "rule": {
3016
+ "$ref": "#/rules@53"
3017
+ },
3018
+ "arguments": []
3019
+ }
3020
+ },
3021
+ {
3022
+ "$type": "Group",
3023
+ "elements": [
3024
+ {
3025
+ "$type": "Keyword",
3026
+ "value": ","
3027
+ },
3028
+ {
3029
+ "$type": "Assignment",
3030
+ "feature": "relationships",
3031
+ "operator": "+=",
3032
+ "terminal": {
3033
+ "$type": "RuleCall",
3034
+ "rule": {
3035
+ "$ref": "#/rules@53"
3036
+ },
3037
+ "arguments": []
3038
+ }
3039
+ }
3040
+ ],
3041
+ "cardinality": "*"
3042
+ }
3043
+ ],
3044
+ "cardinality": "?"
3045
+ },
3046
+ {
3047
+ "$type": "Group",
3048
+ "elements": [
3049
+ {
3050
+ "$type": "Keyword",
3051
+ "value": ","
3052
+ },
3053
+ {
3054
+ "$type": "Assignment",
3055
+ "feature": "into",
3056
+ "operator": "=",
3057
+ "terminal": {
3058
+ "$type": "RuleCall",
3059
+ "rule": {
3060
+ "$ref": "#/rules@50"
3061
+ },
3062
+ "arguments": []
3063
+ }
3064
+ }
3065
+ ],
3066
+ "cardinality": "?"
3067
+ },
3068
+ {
3069
+ "$type": "Keyword",
3070
+ "value": "}"
3071
+ }
3072
+ ]
3073
+ },
3074
+ "definesHiddenTokens": false,
3075
+ "entry": false,
3076
+ "fragment": false,
3077
+ "hiddenTokens": [],
3078
+ "parameters": [],
3079
+ "wildcard": false
3080
+ },
3081
+ {
3082
+ "$type": "ParserRule",
3083
+ "name": "SelectIntoSpec",
3084
+ "definition": {
3085
+ "$type": "Group",
3086
+ "elements": [
3087
+ {
3088
+ "$type": "Keyword",
3089
+ "value": "into"
3090
+ },
3091
+ {
3092
+ "$type": "Keyword",
3093
+ "value": "{"
3094
+ },
3095
+ {
3096
+ "$type": "Assignment",
3097
+ "feature": "entries",
3098
+ "operator": "+=",
3099
+ "terminal": {
3100
+ "$type": "RuleCall",
3101
+ "rule": {
3102
+ "$ref": "#/rules@51"
3103
+ },
3104
+ "arguments": []
3105
+ }
3106
+ },
3107
+ {
3108
+ "$type": "Group",
3109
+ "elements": [
3110
+ {
3111
+ "$type": "Keyword",
3112
+ "value": ","
3113
+ },
3114
+ {
3115
+ "$type": "Assignment",
3116
+ "feature": "entries",
3117
+ "operator": "+=",
3118
+ "terminal": {
3119
+ "$type": "RuleCall",
3120
+ "rule": {
3121
+ "$ref": "#/rules@51"
3122
+ },
3123
+ "arguments": []
3124
+ }
3125
+ }
3126
+ ],
3127
+ "cardinality": "*"
3128
+ },
3129
+ {
3130
+ "$type": "Keyword",
3131
+ "value": "}"
3132
+ }
3133
+ ]
3134
+ },
3135
+ "definesHiddenTokens": false,
3136
+ "entry": false,
3137
+ "fragment": false,
3138
+ "hiddenTokens": [],
3139
+ "parameters": [],
3140
+ "wildcard": false
3141
+ },
3142
+ {
3143
+ "$type": "ParserRule",
3144
+ "name": "SelectIntoEntry",
3145
+ "definition": {
3146
+ "$type": "Group",
3147
+ "elements": [
3148
+ {
3149
+ "$type": "Assignment",
3150
+ "feature": "alias",
3151
+ "operator": "=",
3152
+ "terminal": {
3153
+ "$type": "RuleCall",
3154
+ "rule": {
3155
+ "$ref": "#/rules@78"
3156
+ },
3157
+ "arguments": []
3158
+ }
3159
+ },
3160
+ {
3161
+ "$type": "Assignment",
3162
+ "feature": "attribute",
3163
+ "operator": "=",
3164
+ "terminal": {
3165
+ "$type": "RuleCall",
3166
+ "rule": {
3167
+ "$ref": "#/rules@77"
3168
+ },
3169
+ "arguments": []
3170
+ }
3171
+ }
3172
+ ]
3173
+ },
3174
+ "definesHiddenTokens": false,
3175
+ "entry": false,
3176
+ "fragment": false,
3177
+ "hiddenTokens": [],
3178
+ "parameters": [],
3179
+ "wildcard": false
3180
+ },
3181
+ {
3182
+ "$type": "ParserRule",
3183
+ "name": "FullTextSearch",
3184
+ "definition": {
3185
+ "$type": "Group",
3186
+ "elements": [
3187
+ {
3188
+ "$type": "Keyword",
3189
+ "value": "{"
3190
+ },
3191
+ {
3192
+ "$type": "Assignment",
3193
+ "feature": "name",
3194
+ "operator": "=",
3195
+ "terminal": {
3196
+ "$type": "RuleCall",
3197
+ "rule": {
3198
+ "$ref": "#/rules@75"
3199
+ },
3200
+ "arguments": []
3201
+ }
3202
+ },
3203
+ {
3204
+ "$type": "Assignment",
3205
+ "feature": "query",
3206
+ "operator": "=",
3207
+ "terminal": {
3208
+ "$type": "RuleCall",
3209
+ "rule": {
3210
+ "$ref": "#/rules@42"
3211
+ },
3212
+ "arguments": []
3213
+ }
3214
+ },
3215
+ {
3216
+ "$type": "Assignment",
3217
+ "feature": "options",
3218
+ "operator": "=",
3219
+ "terminal": {
3220
+ "$type": "RuleCall",
3221
+ "rule": {
3222
+ "$ref": "#/rules@37"
3223
+ },
3224
+ "arguments": []
3225
+ },
3226
+ "cardinality": "?"
3227
+ },
3228
+ {
3229
+ "$type": "Keyword",
3230
+ "value": "}"
3231
+ }
3232
+ ]
3233
+ },
3234
+ "definesHiddenTokens": false,
3235
+ "entry": false,
3236
+ "fragment": false,
3237
+ "hiddenTokens": [],
3238
+ "parameters": [],
3239
+ "wildcard": false
3240
+ },
3241
+ {
3242
+ "$type": "ParserRule",
3243
+ "name": "RelationshipPattern",
3244
+ "definition": {
3245
+ "$type": "Group",
3246
+ "elements": [
3247
+ {
3248
+ "$type": "Assignment",
3249
+ "feature": "name",
3250
+ "operator": "=",
3251
+ "terminal": {
3252
+ "$type": "RuleCall",
3253
+ "rule": {
3254
+ "$ref": "#/rules@78"
3255
+ },
3256
+ "arguments": []
3257
+ }
3258
+ },
3259
+ {
3260
+ "$type": "Assignment",
3261
+ "feature": "pattern",
3262
+ "operator": "=",
3263
+ "terminal": {
3264
+ "$type": "RuleCall",
3265
+ "rule": {
3266
+ "$ref": "#/rules@45"
3267
+ },
3268
+ "arguments": []
3269
+ }
3270
+ }
3271
+ ]
3272
+ },
3273
+ "definesHiddenTokens": false,
3274
+ "entry": false,
3275
+ "fragment": false,
3276
+ "hiddenTokens": [],
3277
+ "parameters": [],
3278
+ "wildcard": false
3279
+ },
3280
+ {
3281
+ "$type": "ParserRule",
3282
+ "name": "CatchSpec",
3283
+ "definition": {
3284
+ "$type": "Group",
3285
+ "elements": [
3286
+ {
3287
+ "$type": "Keyword",
3288
+ "value": "catch"
3289
+ },
3290
+ {
3291
+ "$type": "Keyword",
3292
+ "value": "{"
3293
+ },
3294
+ {
3295
+ "$type": "Assignment",
3296
+ "feature": "handlers",
3297
+ "operator": "+=",
3298
+ "terminal": {
3299
+ "$type": "RuleCall",
3300
+ "rule": {
3301
+ "$ref": "#/rules@55"
3302
+ },
3303
+ "arguments": []
3304
+ },
3305
+ "cardinality": "+"
3306
+ },
3307
+ {
3308
+ "$type": "Keyword",
3309
+ "value": "}"
3310
+ }
3311
+ ]
3312
+ },
3313
+ "definesHiddenTokens": false,
3314
+ "entry": false,
3315
+ "fragment": false,
3316
+ "hiddenTokens": [],
3317
+ "parameters": [],
3318
+ "wildcard": false
3319
+ },
3320
+ {
3321
+ "$type": "ParserRule",
3322
+ "name": "Handler",
3323
+ "definition": {
3324
+ "$type": "Group",
3325
+ "elements": [
3326
+ {
3327
+ "$type": "Assignment",
3328
+ "feature": "except",
3329
+ "operator": "=",
3330
+ "terminal": {
3331
+ "$type": "Alternatives",
3332
+ "elements": [
3333
+ {
3334
+ "$type": "Keyword",
3335
+ "value": "not_found"
3336
+ },
3337
+ {
3338
+ "$type": "Keyword",
3339
+ "value": "error"
3340
+ }
3341
+ ]
3342
+ }
3343
+ },
3344
+ {
3345
+ "$type": "Assignment",
3346
+ "feature": "stmt",
3347
+ "operator": "=",
3348
+ "terminal": {
3349
+ "$type": "RuleCall",
3350
+ "rule": {
3351
+ "$ref": "#/rules@46"
3352
+ },
3353
+ "arguments": []
3354
+ }
3355
+ }
3356
+ ]
3357
+ },
3358
+ "definesHiddenTokens": false,
3359
+ "entry": false,
3360
+ "fragment": false,
3361
+ "hiddenTokens": [],
3362
+ "parameters": [],
3363
+ "wildcard": false
3364
+ },
3365
+ {
3366
+ "$type": "ParserRule",
3367
+ "name": "If",
3368
+ "definition": {
3369
+ "$type": "Group",
3370
+ "elements": [
3371
+ {
3372
+ "$type": "Keyword",
3373
+ "value": "if"
3374
+ },
3375
+ {
3376
+ "$type": "Keyword",
3377
+ "value": "("
3378
+ },
3379
+ {
3380
+ "$type": "Assignment",
3381
+ "feature": "cond",
3382
+ "operator": "=",
3383
+ "terminal": {
3384
+ "$type": "RuleCall",
3385
+ "rule": {
3386
+ "$ref": "#/rules@64"
3387
+ },
3388
+ "arguments": []
3389
+ }
3390
+ },
3391
+ {
3392
+ "$type": "Keyword",
3393
+ "value": ")"
3394
+ },
3395
+ {
3396
+ "$type": "RuleCall",
3397
+ "rule": {
3398
+ "$ref": "#/rules@43"
3399
+ },
3400
+ "arguments": []
3401
+ },
3402
+ {
3403
+ "$type": "Assignment",
3404
+ "feature": "else",
3405
+ "operator": "=",
3406
+ "terminal": {
3407
+ "$type": "RuleCall",
3408
+ "rule": {
3409
+ "$ref": "#/rules@57"
3410
+ },
3411
+ "arguments": []
3412
+ },
3413
+ "cardinality": "?"
3414
+ }
3415
+ ]
3416
+ },
3417
+ "definesHiddenTokens": false,
3418
+ "entry": false,
3419
+ "fragment": false,
3420
+ "hiddenTokens": [],
3421
+ "parameters": [],
3422
+ "wildcard": false
3423
+ },
3424
+ {
3425
+ "$type": "ParserRule",
3426
+ "name": "Else",
3427
+ "definition": {
3428
+ "$type": "Group",
3429
+ "elements": [
3430
+ {
3431
+ "$type": "Keyword",
3432
+ "value": "else"
3433
+ },
3434
+ {
3435
+ "$type": "RuleCall",
3436
+ "rule": {
3437
+ "$ref": "#/rules@43"
3438
+ },
3439
+ "arguments": []
3440
+ }
3441
+ ]
3442
+ },
3443
+ "definesHiddenTokens": false,
3444
+ "entry": false,
3445
+ "fragment": false,
3446
+ "hiddenTokens": [],
3447
+ "parameters": [],
3448
+ "wildcard": false
3449
+ },
3450
+ {
3451
+ "$type": "ParserRule",
3452
+ "name": "ForEach",
3453
+ "definition": {
3454
+ "$type": "Group",
3455
+ "elements": [
3456
+ {
3457
+ "$type": "Keyword",
3458
+ "value": "for"
3459
+ },
3460
+ {
3461
+ "$type": "Assignment",
3462
+ "feature": "var",
3463
+ "operator": "=",
3464
+ "terminal": {
3465
+ "$type": "RuleCall",
3466
+ "rule": {
3467
+ "$ref": "#/rules@78"
3468
+ },
3469
+ "arguments": []
3470
+ }
3471
+ },
3472
+ {
3473
+ "$type": "Keyword",
3474
+ "value": "in"
3475
+ },
3476
+ {
3477
+ "$type": "Assignment",
3478
+ "feature": "src",
3479
+ "operator": "=",
3480
+ "terminal": {
3481
+ "$type": "RuleCall",
3482
+ "rule": {
3483
+ "$ref": "#/rules@45"
3484
+ },
3485
+ "arguments": []
3486
+ }
3487
+ },
3488
+ {
3489
+ "$type": "RuleCall",
3490
+ "rule": {
3491
+ "$ref": "#/rules@43"
3492
+ },
3493
+ "arguments": []
3494
+ }
3495
+ ]
3496
+ },
3497
+ "definesHiddenTokens": false,
3498
+ "entry": false,
3499
+ "fragment": false,
3500
+ "hiddenTokens": [],
3501
+ "parameters": [],
3502
+ "wildcard": false
3503
+ },
3504
+ {
3505
+ "$type": "ParserRule",
3506
+ "name": "Delete",
3507
+ "definition": {
3508
+ "$type": "Group",
3509
+ "elements": [
3510
+ {
3511
+ "$type": "Keyword",
3512
+ "value": "delete"
3513
+ },
3514
+ {
3515
+ "$type": "Assignment",
3516
+ "feature": "pattern",
3517
+ "operator": "=",
3518
+ "terminal": {
3519
+ "$type": "RuleCall",
3520
+ "rule": {
3521
+ "$ref": "#/rules@45"
3522
+ },
3523
+ "arguments": []
3524
+ }
3525
+ }
3526
+ ]
3527
+ },
3528
+ "definesHiddenTokens": false,
3529
+ "entry": false,
3530
+ "fragment": false,
3531
+ "hiddenTokens": [],
3532
+ "parameters": [],
3533
+ "wildcard": false
3534
+ },
3535
+ {
3536
+ "$type": "ParserRule",
3537
+ "name": "Purge",
3538
+ "definition": {
3539
+ "$type": "Group",
3540
+ "elements": [
3541
+ {
3542
+ "$type": "Keyword",
3543
+ "value": "purge"
3544
+ },
3545
+ {
3546
+ "$type": "Assignment",
3547
+ "feature": "pattern",
3548
+ "operator": "=",
3549
+ "terminal": {
3550
+ "$type": "RuleCall",
3551
+ "rule": {
3552
+ "$ref": "#/rules@45"
3553
+ },
3554
+ "arguments": []
3555
+ }
3556
+ }
3557
+ ]
3558
+ },
3559
+ "definesHiddenTokens": false,
3560
+ "entry": false,
3561
+ "fragment": false,
3562
+ "hiddenTokens": [],
3563
+ "parameters": [],
3564
+ "wildcard": false
3565
+ },
3566
+ {
3567
+ "$type": "ParserRule",
3568
+ "name": "Upsert",
3569
+ "definition": {
3570
+ "$type": "Group",
3571
+ "elements": [
3572
+ {
3573
+ "$type": "Keyword",
3574
+ "value": "upsert"
3575
+ },
3576
+ {
3577
+ "$type": "Assignment",
3578
+ "feature": "pattern",
3579
+ "operator": "=",
3580
+ "terminal": {
3581
+ "$type": "RuleCall",
3582
+ "rule": {
3583
+ "$ref": "#/rules@49"
3584
+ },
3585
+ "arguments": []
3586
+ }
3587
+ }
3588
+ ]
3589
+ },
3590
+ "definesHiddenTokens": false,
3591
+ "entry": false,
3592
+ "fragment": false,
3593
+ "hiddenTokens": [],
3594
+ "parameters": [],
3595
+ "wildcard": false
3596
+ },
3597
+ {
3598
+ "$type": "ParserRule",
3599
+ "name": "SetAttribute",
3600
+ "definition": {
3601
+ "$type": "Group",
3602
+ "elements": [
3603
+ {
3604
+ "$type": "Assignment",
3605
+ "feature": "name",
3606
+ "operator": "=",
3607
+ "terminal": {
3608
+ "$type": "RuleCall",
3609
+ "rule": {
3610
+ "$ref": "#/rules@75"
3611
+ },
3612
+ "arguments": []
3613
+ }
3614
+ },
3615
+ {
3616
+ "$type": "Assignment",
3617
+ "feature": "op",
3618
+ "operator": "=",
3619
+ "terminal": {
3620
+ "$type": "Alternatives",
3621
+ "elements": [
3622
+ {
3623
+ "$type": "Keyword",
3624
+ "value": "="
3625
+ },
3626
+ {
3627
+ "$type": "Keyword",
3628
+ "value": "<>"
3629
+ },
3630
+ {
3631
+ "$type": "Keyword",
3632
+ "value": "<"
3633
+ },
3634
+ {
3635
+ "$type": "Keyword",
3636
+ "value": "<="
3637
+ },
3638
+ {
3639
+ "$type": "Keyword",
3640
+ "value": ">"
3641
+ },
3642
+ {
3643
+ "$type": "Keyword",
3644
+ "value": ">="
3645
+ },
3646
+ {
3647
+ "$type": "Keyword",
3648
+ "value": "in"
3649
+ },
3650
+ {
3651
+ "$type": "Keyword",
3652
+ "value": "like"
3653
+ },
3654
+ {
3655
+ "$type": "Keyword",
3656
+ "value": "between"
3657
+ }
3658
+ ]
3659
+ },
3660
+ "cardinality": "?"
3661
+ },
3662
+ {
3663
+ "$type": "Assignment",
3664
+ "feature": "value",
3665
+ "operator": "=",
3666
+ "terminal": {
3667
+ "$type": "RuleCall",
3668
+ "rule": {
3669
+ "$ref": "#/rules@63"
3670
+ },
3671
+ "arguments": []
3672
+ }
3673
+ }
3674
+ ]
3675
+ },
3676
+ "definesHiddenTokens": false,
3677
+ "entry": false,
3678
+ "fragment": false,
3679
+ "hiddenTokens": [],
3680
+ "parameters": [],
3681
+ "wildcard": false
3682
+ },
3683
+ {
3684
+ "$type": "ParserRule",
3685
+ "name": "AttributeValueExpression",
3686
+ "definition": {
3687
+ "$type": "RuleCall",
3688
+ "rule": {
3689
+ "$ref": "#/rules@64"
3690
+ },
3691
+ "arguments": []
3692
+ },
3693
+ "definesHiddenTokens": false,
3694
+ "entry": false,
3695
+ "fragment": false,
3696
+ "hiddenTokens": [],
3697
+ "parameters": [],
3698
+ "wildcard": false
3699
+ },
3700
+ {
3701
+ "$type": "ParserRule",
3702
+ "name": "Expr",
3703
+ "definition": {
3704
+ "$type": "RuleCall",
3705
+ "rule": {
3706
+ "$ref": "#/rules@65"
3707
+ },
3708
+ "arguments": []
3709
+ },
3710
+ "definesHiddenTokens": false,
3711
+ "entry": false,
3712
+ "fragment": false,
3713
+ "hiddenTokens": [],
3714
+ "parameters": [],
3715
+ "wildcard": false
3716
+ },
3717
+ {
3718
+ "$type": "ParserRule",
3719
+ "name": "Add",
3720
+ "inferredType": {
3721
+ "$type": "InferredType",
3722
+ "name": "Expr"
3723
+ },
3724
+ "definition": {
3725
+ "$type": "Group",
3726
+ "elements": [
3727
+ {
3728
+ "$type": "RuleCall",
3729
+ "rule": {
3730
+ "$ref": "#/rules@66"
3731
+ },
3732
+ "arguments": []
3733
+ },
3734
+ {
3735
+ "$type": "Group",
3736
+ "elements": [
3737
+ {
3738
+ "$type": "Action",
3739
+ "inferredType": {
3740
+ "$type": "InferredType",
3741
+ "name": "BinExpr"
3742
+ },
3743
+ "feature": "e1",
3744
+ "operator": "="
3745
+ },
3746
+ {
3747
+ "$type": "Assignment",
3748
+ "feature": "op",
3749
+ "operator": "=",
3750
+ "terminal": {
3751
+ "$type": "Alternatives",
3752
+ "elements": [
3753
+ {
3754
+ "$type": "Keyword",
3755
+ "value": "+"
3756
+ },
3757
+ {
3758
+ "$type": "Keyword",
3759
+ "value": "-"
3760
+ }
3761
+ ]
3762
+ }
3763
+ },
3764
+ {
3765
+ "$type": "Assignment",
3766
+ "feature": "e2",
3767
+ "operator": "=",
3768
+ "terminal": {
3769
+ "$type": "RuleCall",
3770
+ "rule": {
3771
+ "$ref": "#/rules@66"
3772
+ },
3773
+ "arguments": []
3774
+ }
3775
+ }
3776
+ ],
3777
+ "cardinality": "*"
3778
+ }
3779
+ ]
3780
+ },
3781
+ "definesHiddenTokens": false,
3782
+ "entry": false,
3783
+ "fragment": false,
3784
+ "hiddenTokens": [],
3785
+ "parameters": [],
3786
+ "wildcard": false
3787
+ },
3788
+ {
3789
+ "$type": "ParserRule",
3790
+ "name": "Mult",
3791
+ "inferredType": {
3792
+ "$type": "InferredType",
3793
+ "name": "Expr"
3794
+ },
3795
+ "definition": {
3796
+ "$type": "Group",
3797
+ "elements": [
3798
+ {
3799
+ "$type": "RuleCall",
3800
+ "rule": {
3801
+ "$ref": "#/rules@67"
3802
+ },
3803
+ "arguments": []
3804
+ },
3805
+ {
3806
+ "$type": "Group",
3807
+ "elements": [
3808
+ {
3809
+ "$type": "Action",
3810
+ "inferredType": {
3811
+ "$type": "InferredType",
3812
+ "name": "BinExpr"
3813
+ },
3814
+ "feature": "e1",
3815
+ "operator": "="
3816
+ },
3817
+ {
3818
+ "$type": "Assignment",
3819
+ "feature": "op",
3820
+ "operator": "=",
3821
+ "terminal": {
3822
+ "$type": "Alternatives",
3823
+ "elements": [
3824
+ {
3825
+ "$type": "Keyword",
3826
+ "value": "*"
3827
+ },
3828
+ {
3829
+ "$type": "Keyword",
3830
+ "value": "/"
3831
+ }
3832
+ ]
3833
+ }
3834
+ },
3835
+ {
3836
+ "$type": "Assignment",
3837
+ "feature": "e2",
3838
+ "operator": "=",
3839
+ "terminal": {
3840
+ "$type": "RuleCall",
3841
+ "rule": {
3842
+ "$ref": "#/rules@67"
3843
+ },
3844
+ "arguments": []
3845
+ }
3846
+ }
3847
+ ],
3848
+ "cardinality": "*"
3849
+ }
3850
+ ]
3851
+ },
3852
+ "definesHiddenTokens": false,
3853
+ "entry": false,
3854
+ "fragment": false,
3855
+ "hiddenTokens": [],
3856
+ "parameters": [],
3857
+ "wildcard": false
3858
+ },
3859
+ {
3860
+ "$type": "ParserRule",
3861
+ "name": "Logical",
3862
+ "inferredType": {
3863
+ "$type": "InferredType",
3864
+ "name": "Expr"
3865
+ },
3866
+ "definition": {
3867
+ "$type": "Group",
3868
+ "elements": [
3869
+ {
3870
+ "$type": "RuleCall",
3871
+ "rule": {
3872
+ "$ref": "#/rules@68"
3873
+ },
3874
+ "arguments": []
3875
+ },
3876
+ {
3877
+ "$type": "Group",
3878
+ "elements": [
3879
+ {
3880
+ "$type": "Action",
3881
+ "inferredType": {
3882
+ "$type": "InferredType",
3883
+ "name": "BinExpr"
3884
+ },
3885
+ "feature": "e1",
3886
+ "operator": "="
3887
+ },
3888
+ {
3889
+ "$type": "Assignment",
3890
+ "feature": "op",
3891
+ "operator": "=",
3892
+ "terminal": {
3893
+ "$type": "Alternatives",
3894
+ "elements": [
3895
+ {
3896
+ "$type": "Keyword",
3897
+ "value": "or"
3898
+ },
3899
+ {
3900
+ "$type": "Keyword",
3901
+ "value": "and"
3902
+ }
3903
+ ]
3904
+ }
3905
+ },
3906
+ {
3907
+ "$type": "Assignment",
3908
+ "feature": "e2",
3909
+ "operator": "=",
3910
+ "terminal": {
3911
+ "$type": "RuleCall",
3912
+ "rule": {
3913
+ "$ref": "#/rules@68"
3914
+ },
3915
+ "arguments": []
3916
+ }
3917
+ }
3918
+ ],
3919
+ "cardinality": "*"
3920
+ }
3921
+ ]
3922
+ },
3923
+ "definesHiddenTokens": false,
3924
+ "entry": false,
3925
+ "fragment": false,
3926
+ "hiddenTokens": [],
3927
+ "parameters": [],
3928
+ "wildcard": false
3929
+ },
3930
+ {
3931
+ "$type": "ParserRule",
3932
+ "name": "Comparison",
3933
+ "inferredType": {
3934
+ "$type": "InferredType",
3935
+ "name": "Expr"
3936
+ },
3937
+ "definition": {
3938
+ "$type": "Group",
3939
+ "elements": [
3940
+ {
3941
+ "$type": "RuleCall",
3942
+ "rule": {
3943
+ "$ref": "#/rules@69"
3944
+ },
3945
+ "arguments": []
3946
+ },
3947
+ {
3948
+ "$type": "Group",
3949
+ "elements": [
3950
+ {
3951
+ "$type": "Action",
3952
+ "inferredType": {
3953
+ "$type": "InferredType",
3954
+ "name": "BinExpr"
3955
+ },
3956
+ "feature": "e1",
3957
+ "operator": "="
3958
+ },
3959
+ {
3960
+ "$type": "Assignment",
3961
+ "feature": "op",
3962
+ "operator": "=",
3963
+ "terminal": {
3964
+ "$type": "Alternatives",
3965
+ "elements": [
3966
+ {
3967
+ "$type": "Keyword",
3968
+ "value": "="
3969
+ },
3970
+ {
3971
+ "$type": "Keyword",
3972
+ "value": "<>"
3973
+ },
3974
+ {
3975
+ "$type": "Keyword",
3976
+ "value": "<"
3977
+ },
3978
+ {
3979
+ "$type": "Keyword",
3980
+ "value": "<="
3981
+ },
3982
+ {
3983
+ "$type": "Keyword",
3984
+ "value": ">"
3985
+ },
3986
+ {
3987
+ "$type": "Keyword",
3988
+ "value": ">="
3989
+ },
3990
+ {
3991
+ "$type": "Keyword",
3992
+ "value": "in"
3993
+ },
3994
+ {
3995
+ "$type": "Keyword",
3996
+ "value": "like"
3997
+ }
3998
+ ]
3999
+ }
4000
+ },
4001
+ {
4002
+ "$type": "Assignment",
4003
+ "feature": "e2",
4004
+ "operator": "=",
4005
+ "terminal": {
4006
+ "$type": "RuleCall",
4007
+ "rule": {
4008
+ "$ref": "#/rules@69"
4009
+ },
4010
+ "arguments": []
4011
+ }
4012
+ }
4013
+ ],
4014
+ "cardinality": "*"
4015
+ }
4016
+ ]
4017
+ },
4018
+ "definesHiddenTokens": false,
4019
+ "entry": false,
4020
+ "fragment": false,
4021
+ "hiddenTokens": [],
4022
+ "parameters": [],
4023
+ "wildcard": false
4024
+ },
4025
+ {
4026
+ "$type": "ParserRule",
4027
+ "name": "PrimExpr",
4028
+ "definition": {
4029
+ "$type": "Alternatives",
4030
+ "elements": [
4031
+ {
4032
+ "$type": "RuleCall",
4033
+ "rule": {
4034
+ "$ref": "#/rules@42"
4035
+ },
4036
+ "arguments": []
4037
+ },
4038
+ {
4039
+ "$type": "RuleCall",
4040
+ "rule": {
4041
+ "$ref": "#/rules@70"
4042
+ },
4043
+ "arguments": []
4044
+ },
4045
+ {
4046
+ "$type": "RuleCall",
4047
+ "rule": {
4048
+ "$ref": "#/rules@71"
4049
+ },
4050
+ "arguments": []
4051
+ },
4052
+ {
4053
+ "$type": "RuleCall",
4054
+ "rule": {
4055
+ "$ref": "#/rules@72"
4056
+ },
4057
+ "arguments": []
4058
+ }
4059
+ ]
4060
+ },
4061
+ "definesHiddenTokens": false,
4062
+ "entry": false,
4063
+ "fragment": false,
4064
+ "hiddenTokens": [],
4065
+ "parameters": [],
4066
+ "wildcard": false
4067
+ },
4068
+ {
4069
+ "$type": "ParserRule",
4070
+ "name": "Group",
4071
+ "definition": {
4072
+ "$type": "Group",
4073
+ "elements": [
4074
+ {
4075
+ "$type": "Keyword",
4076
+ "value": "("
4077
+ },
4078
+ {
4079
+ "$type": "Assignment",
4080
+ "feature": "ge",
4081
+ "operator": "=",
4082
+ "terminal": {
4083
+ "$type": "RuleCall",
4084
+ "rule": {
4085
+ "$ref": "#/rules@64"
4086
+ },
4087
+ "arguments": []
4088
+ }
4089
+ },
4090
+ {
4091
+ "$type": "Keyword",
4092
+ "value": ")"
4093
+ }
4094
+ ]
4095
+ },
4096
+ "definesHiddenTokens": false,
4097
+ "entry": false,
4098
+ "fragment": false,
4099
+ "hiddenTokens": [],
4100
+ "parameters": [],
4101
+ "wildcard": false
4102
+ },
4103
+ {
4104
+ "$type": "ParserRule",
4105
+ "name": "NegExpr",
4106
+ "definition": {
4107
+ "$type": "Group",
4108
+ "elements": [
4109
+ {
4110
+ "$type": "Keyword",
4111
+ "value": "-"
4112
+ },
4113
+ {
4114
+ "$type": "Assignment",
4115
+ "feature": "ne",
4116
+ "operator": "=",
4117
+ "terminal": {
4118
+ "$type": "RuleCall",
4119
+ "rule": {
4120
+ "$ref": "#/rules@64"
4121
+ },
4122
+ "arguments": []
4123
+ }
4124
+ }
4125
+ ]
4126
+ },
4127
+ "definesHiddenTokens": false,
4128
+ "entry": false,
4129
+ "fragment": false,
4130
+ "hiddenTokens": [],
4131
+ "parameters": [],
4132
+ "wildcard": false
4133
+ },
4134
+ {
4135
+ "$type": "ParserRule",
4136
+ "name": "NotExpr",
4137
+ "definition": {
4138
+ "$type": "Group",
4139
+ "elements": [
4140
+ {
4141
+ "$type": "Keyword",
4142
+ "value": "not"
4143
+ },
4144
+ {
4145
+ "$type": "Keyword",
4146
+ "value": "("
4147
+ },
4148
+ {
4149
+ "$type": "Assignment",
4150
+ "feature": "ne",
4151
+ "operator": "=",
4152
+ "terminal": {
4153
+ "$type": "RuleCall",
4154
+ "rule": {
4155
+ "$ref": "#/rules@64"
4156
+ },
4157
+ "arguments": []
4158
+ }
4159
+ },
4160
+ {
4161
+ "$type": "Keyword",
4162
+ "value": ")"
4163
+ }
4164
+ ]
4165
+ },
4166
+ "definesHiddenTokens": false,
4167
+ "entry": false,
4168
+ "fragment": false,
4169
+ "hiddenTokens": [],
4170
+ "parameters": [],
4171
+ "wildcard": false
4172
+ },
4173
+ {
4174
+ "$type": "ParserRule",
4175
+ "name": "Boolean",
4176
+ "dataType": "string",
4177
+ "definition": {
4178
+ "$type": "Alternatives",
4179
+ "elements": [
4180
+ {
4181
+ "$type": "Keyword",
4182
+ "value": "true"
4183
+ },
4184
+ {
4185
+ "$type": "Keyword",
4186
+ "value": "false"
4187
+ }
4188
+ ]
4189
+ },
4190
+ "definesHiddenTokens": false,
4191
+ "entry": false,
4192
+ "fragment": false,
4193
+ "hiddenTokens": [],
4194
+ "parameters": [],
4195
+ "wildcard": false
4196
+ },
4197
+ {
4198
+ "$type": "ParserRule",
4199
+ "name": "Decimal",
4200
+ "dataType": "number",
4201
+ "definition": {
4202
+ "$type": "Alternatives",
4203
+ "elements": [
4204
+ {
4205
+ "$type": "RuleCall",
4206
+ "rule": {
4207
+ "$ref": "#/rules@81"
4208
+ },
4209
+ "arguments": []
4210
+ },
4211
+ {
4212
+ "$type": "Group",
4213
+ "elements": [
4214
+ {
4215
+ "$type": "RuleCall",
4216
+ "rule": {
4217
+ "$ref": "#/rules@81"
4218
+ },
4219
+ "arguments": []
4220
+ },
4221
+ {
4222
+ "$type": "Keyword",
4223
+ "value": "."
4224
+ },
4225
+ {
4226
+ "$type": "RuleCall",
4227
+ "rule": {
4228
+ "$ref": "#/rules@81"
4229
+ },
4230
+ "arguments": []
4231
+ }
4232
+ ]
4233
+ }
4234
+ ]
4235
+ },
4236
+ "definesHiddenTokens": false,
4237
+ "entry": false,
4238
+ "fragment": false,
4239
+ "hiddenTokens": [],
4240
+ "parameters": [],
4241
+ "wildcard": false
4242
+ },
4243
+ {
4244
+ "$type": "ParserRule",
4245
+ "name": "QueryId",
4246
+ "dataType": "string",
4247
+ "definition": {
4248
+ "$type": "Alternatives",
4249
+ "elements": [
4250
+ {
4251
+ "$type": "RuleCall",
4252
+ "rule": {
4253
+ "$ref": "#/rules@78"
4254
+ },
4255
+ "arguments": []
4256
+ },
4257
+ {
4258
+ "$type": "Group",
4259
+ "elements": [
4260
+ {
4261
+ "$type": "RuleCall",
4262
+ "rule": {
4263
+ "$ref": "#/rules@78"
4264
+ },
4265
+ "arguments": []
4266
+ },
4267
+ {
4268
+ "$type": "Keyword",
4269
+ "value": "?"
4270
+ }
4271
+ ]
4272
+ }
4273
+ ]
4274
+ },
4275
+ "definesHiddenTokens": false,
4276
+ "entry": false,
4277
+ "fragment": false,
4278
+ "hiddenTokens": [],
4279
+ "parameters": [],
4280
+ "wildcard": false
4281
+ },
4282
+ {
4283
+ "$type": "ParserRule",
4284
+ "name": "TaggedId",
4285
+ "dataType": "string",
4286
+ "definition": {
4287
+ "$type": "Group",
4288
+ "elements": [
4289
+ {
4290
+ "$type": "Keyword",
4291
+ "value": "@"
4292
+ },
4293
+ {
4294
+ "$type": "RuleCall",
4295
+ "rule": {
4296
+ "$ref": "#/rules@78"
4297
+ },
4298
+ "arguments": []
4299
+ }
4300
+ ]
4301
+ },
4302
+ "definesHiddenTokens": false,
4303
+ "entry": false,
4304
+ "fragment": false,
4305
+ "hiddenTokens": [],
4306
+ "parameters": [],
4307
+ "wildcard": false
4308
+ },
4309
+ {
4310
+ "$type": "ParserRule",
4311
+ "name": "Ref",
4312
+ "dataType": "string",
4313
+ "definition": {
4314
+ "$type": "Group",
4315
+ "elements": [
4316
+ {
4317
+ "$type": "RuleCall",
4318
+ "rule": {
4319
+ "$ref": "#/rules@78"
4320
+ },
4321
+ "arguments": []
4322
+ },
4323
+ {
4324
+ "$type": "Keyword",
4325
+ "value": "."
4326
+ },
4327
+ {
4328
+ "$type": "Alternatives",
4329
+ "elements": [
4330
+ {
4331
+ "$type": "RuleCall",
4332
+ "rule": {
4333
+ "$ref": "#/rules@77"
4334
+ },
4335
+ "arguments": []
4336
+ },
4337
+ {
4338
+ "$type": "RuleCall",
4339
+ "rule": {
4340
+ "$ref": "#/rules@78"
4341
+ },
4342
+ "arguments": []
4343
+ }
4344
+ ]
4345
+ }
4346
+ ]
4347
+ },
4348
+ "definesHiddenTokens": false,
4349
+ "entry": false,
4350
+ "fragment": false,
4351
+ "hiddenTokens": [],
4352
+ "parameters": [],
4353
+ "wildcard": false
4354
+ },
4355
+ {
4356
+ "$type": "TerminalRule",
4357
+ "name": "ID",
4358
+ "type": {
4359
+ "$type": "ReturnType",
4360
+ "name": "string"
4361
+ },
4362
+ "definition": {
4363
+ "$type": "TerminalGroup",
4364
+ "elements": [
4365
+ {
4366
+ "$type": "TerminalRuleCall",
4367
+ "rule": {
4368
+ "$ref": "#/rules@79"
4369
+ }
4370
+ },
4371
+ {
4372
+ "$type": "TerminalGroup",
4373
+ "elements": [
4374
+ {
4375
+ "$type": "CharacterRange",
4376
+ "left": {
4377
+ "$type": "Keyword",
4378
+ "value": "/"
4379
+ }
4380
+ },
4381
+ {
4382
+ "$type": "TerminalRuleCall",
4383
+ "rule": {
4384
+ "$ref": "#/rules@79"
4385
+ }
4386
+ }
4387
+ ],
4388
+ "cardinality": "?"
4389
+ }
4390
+ ]
4391
+ },
4392
+ "fragment": false,
4393
+ "hidden": false
4394
+ },
4395
+ {
4396
+ "$type": "TerminalRule",
4397
+ "name": "NAME",
4398
+ "type": {
4399
+ "$type": "ReturnType",
4400
+ "name": "string"
4401
+ },
4402
+ "definition": {
4403
+ "$type": "RegexToken",
4404
+ "regex": "/[_a-zA-Z][\\\\w_]*/"
4405
+ },
4406
+ "fragment": false,
4407
+ "hidden": false
4408
+ },
4409
+ {
4410
+ "$type": "TerminalRule",
4411
+ "name": "STRING",
4412
+ "type": {
4413
+ "$type": "ReturnType",
4414
+ "name": "string"
4415
+ },
4416
+ "definition": {
4417
+ "$type": "RegexToken",
4418
+ "regex": "/([\\"'])((\\\\\\\\{2})*|(.*?[^\\\\\\\\](\\\\\\\\{2})*))\\\\1/"
4419
+ },
4420
+ "fragment": false,
4421
+ "hidden": false
4422
+ },
4423
+ {
4424
+ "$type": "TerminalRule",
4425
+ "name": "INT",
4426
+ "type": {
4427
+ "$type": "ReturnType",
4428
+ "name": "number"
4429
+ },
4430
+ "definition": {
4431
+ "$type": "RegexToken",
4432
+ "regex": "/-?[0-9]+/"
4433
+ },
4434
+ "fragment": false,
4435
+ "hidden": false
4436
+ },
4437
+ {
4438
+ "$type": "TerminalRule",
4439
+ "hidden": true,
4440
+ "name": "WS",
4441
+ "definition": {
4442
+ "$type": "RegexToken",
4443
+ "regex": "/\\\\s+/"
4444
+ },
4445
+ "fragment": false
4446
+ },
4447
+ {
4448
+ "$type": "TerminalRule",
4449
+ "hidden": true,
4450
+ "name": "ML_COMMENT",
4451
+ "definition": {
4452
+ "$type": "RegexToken",
4453
+ "regex": "/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//"
4454
+ },
4455
+ "fragment": false
4456
+ },
4457
+ {
4458
+ "$type": "TerminalRule",
4459
+ "hidden": true,
4460
+ "name": "SL_COMMENT",
4461
+ "definition": {
4462
+ "$type": "RegexToken",
4463
+ "regex": "/\\\\/\\\\/[^\\\\n\\\\r]*/"
4464
+ },
4465
+ "fragment": false
4466
+ }
4467
+ ],
4468
+ "definesHiddenTokens": false,
4469
+ "hiddenTokens": [],
4470
+ "imports": [],
4471
+ "interfaces": [],
4472
+ "types": [],
4473
+ "usedGrammars": []
4474
+ }`));
4475
+ //# sourceMappingURL=grammar.js.map