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