zenstack 0.5.0 → 0.6.0-pre.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 (62) hide show
  1. package/{LICENSE.md → LICENSE} +0 -0
  2. package/bin/cli +1 -1
  3. package/package.json +17 -13
  4. package/bin/post-install.js +0 -0
  5. package/bundle/asset/logo-256-bg.png +0 -0
  6. package/bundle/asset/logo-dark-256.png +0 -0
  7. package/bundle/asset/logo-light-256.png +0 -0
  8. package/bundle/cli/index.js +0 -6952
  9. package/bundle/extension.js +0 -39
  10. package/bundle/language-server/main.js +0 -6208
  11. package/bundle/res/package.template.json +0 -9
  12. package/bundle/res/prism-zmodel.js +0 -22
  13. package/bundle/res/stdlib.zmodel +0 -218
  14. package/bundle/res/tsconfig.template.json +0 -17
  15. package/src/cli/cli-error.ts +0 -4
  16. package/src/cli/cli-util.ts +0 -214
  17. package/src/cli/index.ts +0 -246
  18. package/src/extension.ts +0 -76
  19. package/src/generator/ast-utils.ts +0 -18
  20. package/src/generator/constants.ts +0 -6
  21. package/src/generator/field-constraint/index.ts +0 -304
  22. package/src/generator/index.ts +0 -86
  23. package/src/generator/prisma/expression-writer.ts +0 -360
  24. package/src/generator/prisma/index.ts +0 -44
  25. package/src/generator/prisma/prisma-builder.ts +0 -370
  26. package/src/generator/prisma/query-guard-generator.ts +0 -249
  27. package/src/generator/prisma/schema-generator.ts +0 -313
  28. package/src/generator/prisma/typescript-expression-transformer.ts +0 -108
  29. package/src/generator/react-hooks/index.ts +0 -273
  30. package/src/generator/service/index.ts +0 -113
  31. package/src/generator/tsc/index.ts +0 -59
  32. package/src/generator/types.ts +0 -20
  33. package/src/global.d.ts +0 -3
  34. package/src/language-server/constants.ts +0 -29
  35. package/src/language-server/generated/ast.ts +0 -643
  36. package/src/language-server/generated/grammar.ts +0 -2492
  37. package/src/language-server/generated/module.ts +0 -24
  38. package/src/language-server/langium-ext.d.ts +0 -22
  39. package/src/language-server/main.ts +0 -13
  40. package/src/language-server/types.ts +0 -25
  41. package/src/language-server/utils.ts +0 -21
  42. package/src/language-server/validator/attribute-validator.ts +0 -11
  43. package/src/language-server/validator/datamodel-validator.ts +0 -426
  44. package/src/language-server/validator/datasource-validator.ts +0 -102
  45. package/src/language-server/validator/enum-validator.ts +0 -14
  46. package/src/language-server/validator/expression-validator.ts +0 -48
  47. package/src/language-server/validator/schema-validator.ts +0 -31
  48. package/src/language-server/validator/utils.ts +0 -158
  49. package/src/language-server/validator/zmodel-validator.ts +0 -91
  50. package/src/language-server/zmodel-linker.ts +0 -453
  51. package/src/language-server/zmodel-module.ts +0 -131
  52. package/src/language-server/zmodel-scope.ts +0 -45
  53. package/src/language-server/zmodel-workspace-manager.ts +0 -23
  54. package/src/language-server/zmodel.langium +0 -207
  55. package/src/res/package.template.json +0 -9
  56. package/src/res/prism-zmodel.js +0 -22
  57. package/src/res/stdlib.zmodel +0 -218
  58. package/src/res/tsconfig.template.json +0 -17
  59. package/src/telemetry.ts +0 -119
  60. package/src/utils/exec-utils.ts +0 -8
  61. package/src/utils/indent-string.ts +0 -9
  62. package/src/utils/pkg-utils.ts +0 -63
@@ -1,2492 +0,0 @@
1
- /******************************************************************************
2
- * This file was generated by langium-cli 0.5.0.
3
- * DO NOT EDIT MANUALLY!
4
- ******************************************************************************/
5
-
6
- import { loadGrammarFromJson, Grammar } from 'langium';
7
-
8
- let loadedZModelGrammar: Grammar | undefined;
9
- export const ZModelGrammar = (): Grammar => loadedZModelGrammar ?? (loadedZModelGrammar = loadGrammarFromJson(`{
10
- "$type": "Grammar",
11
- "isDeclared": true,
12
- "name": "ZModel",
13
- "rules": [
14
- {
15
- "$type": "ParserRule",
16
- "name": "Model",
17
- "entry": true,
18
- "definition": {
19
- "$type": "Assignment",
20
- "feature": "declarations",
21
- "operator": "+=",
22
- "terminal": {
23
- "$type": "RuleCall",
24
- "rule": {
25
- "$refText": "AbstractDeclaration"
26
- },
27
- "arguments": []
28
- },
29
- "cardinality": "*"
30
- },
31
- "definesHiddenTokens": false,
32
- "fragment": false,
33
- "hiddenTokens": [],
34
- "parameters": [],
35
- "wildcard": false
36
- },
37
- {
38
- "$type": "ParserRule",
39
- "name": "AbstractDeclaration",
40
- "definition": {
41
- "$type": "Alternatives",
42
- "elements": [
43
- {
44
- "$type": "RuleCall",
45
- "rule": {
46
- "$refText": "DataSource"
47
- },
48
- "arguments": []
49
- },
50
- {
51
- "$type": "RuleCall",
52
- "rule": {
53
- "$refText": "DataModel"
54
- },
55
- "arguments": []
56
- },
57
- {
58
- "$type": "RuleCall",
59
- "rule": {
60
- "$refText": "Enum"
61
- },
62
- "arguments": []
63
- },
64
- {
65
- "$type": "RuleCall",
66
- "rule": {
67
- "$refText": "Function"
68
- },
69
- "arguments": []
70
- },
71
- {
72
- "$type": "RuleCall",
73
- "rule": {
74
- "$refText": "Attribute"
75
- },
76
- "arguments": []
77
- }
78
- ]
79
- },
80
- "definesHiddenTokens": false,
81
- "entry": false,
82
- "fragment": false,
83
- "hiddenTokens": [],
84
- "parameters": [],
85
- "wildcard": false
86
- },
87
- {
88
- "$type": "ParserRule",
89
- "name": "DataSource",
90
- "definition": {
91
- "$type": "Group",
92
- "elements": [
93
- {
94
- "$type": "Keyword",
95
- "value": "datasource"
96
- },
97
- {
98
- "$type": "Assignment",
99
- "feature": "name",
100
- "operator": "=",
101
- "terminal": {
102
- "$type": "RuleCall",
103
- "rule": {
104
- "$refText": "ID"
105
- },
106
- "arguments": []
107
- }
108
- },
109
- {
110
- "$type": "Keyword",
111
- "value": "{"
112
- },
113
- {
114
- "$type": "Assignment",
115
- "feature": "fields",
116
- "operator": "+=",
117
- "terminal": {
118
- "$type": "RuleCall",
119
- "rule": {
120
- "$refText": "DataSourceField"
121
- },
122
- "arguments": []
123
- },
124
- "cardinality": "*"
125
- },
126
- {
127
- "$type": "Keyword",
128
- "value": "}"
129
- }
130
- ]
131
- },
132
- "definesHiddenTokens": false,
133
- "entry": false,
134
- "fragment": false,
135
- "hiddenTokens": [],
136
- "parameters": [],
137
- "wildcard": false
138
- },
139
- {
140
- "$type": "ParserRule",
141
- "name": "DataSourceField",
142
- "definition": {
143
- "$type": "Group",
144
- "elements": [
145
- {
146
- "$type": "Assignment",
147
- "feature": "name",
148
- "operator": "=",
149
- "terminal": {
150
- "$type": "RuleCall",
151
- "rule": {
152
- "$refText": "ID"
153
- },
154
- "arguments": []
155
- }
156
- },
157
- {
158
- "$type": "Keyword",
159
- "value": "="
160
- },
161
- {
162
- "$type": "Assignment",
163
- "feature": "value",
164
- "operator": "=",
165
- "terminal": {
166
- "$type": "Alternatives",
167
- "elements": [
168
- {
169
- "$type": "RuleCall",
170
- "rule": {
171
- "$refText": "LiteralExpr"
172
- },
173
- "arguments": []
174
- },
175
- {
176
- "$type": "RuleCall",
177
- "rule": {
178
- "$refText": "InvocationExpr"
179
- },
180
- "arguments": []
181
- }
182
- ]
183
- }
184
- }
185
- ]
186
- },
187
- "definesHiddenTokens": false,
188
- "entry": false,
189
- "fragment": false,
190
- "hiddenTokens": [],
191
- "parameters": [],
192
- "wildcard": false
193
- },
194
- {
195
- "$type": "ParserRule",
196
- "name": "Expression",
197
- "definition": {
198
- "$type": "RuleCall",
199
- "rule": {
200
- "$refText": "LogicalExpr"
201
- },
202
- "arguments": []
203
- },
204
- "definesHiddenTokens": false,
205
- "entry": false,
206
- "fragment": false,
207
- "hiddenTokens": [],
208
- "parameters": [],
209
- "wildcard": false
210
- },
211
- {
212
- "$type": "ParserRule",
213
- "name": "LiteralExpr",
214
- "definition": {
215
- "$type": "Assignment",
216
- "feature": "value",
217
- "operator": "=",
218
- "terminal": {
219
- "$type": "Alternatives",
220
- "elements": [
221
- {
222
- "$type": "RuleCall",
223
- "rule": {
224
- "$refText": "BOOLEAN"
225
- },
226
- "arguments": []
227
- },
228
- {
229
- "$type": "RuleCall",
230
- "rule": {
231
- "$refText": "NUMBER"
232
- },
233
- "arguments": []
234
- },
235
- {
236
- "$type": "RuleCall",
237
- "rule": {
238
- "$refText": "STRING"
239
- },
240
- "arguments": []
241
- }
242
- ]
243
- }
244
- },
245
- "definesHiddenTokens": false,
246
- "entry": false,
247
- "fragment": false,
248
- "hiddenTokens": [],
249
- "parameters": [],
250
- "wildcard": false
251
- },
252
- {
253
- "$type": "ParserRule",
254
- "name": "ArrayExpr",
255
- "definition": {
256
- "$type": "Group",
257
- "elements": [
258
- {
259
- "$type": "Keyword",
260
- "value": "["
261
- },
262
- {
263
- "$type": "Group",
264
- "elements": [
265
- {
266
- "$type": "Assignment",
267
- "feature": "items",
268
- "operator": "+=",
269
- "terminal": {
270
- "$type": "RuleCall",
271
- "rule": {
272
- "$refText": "Expression"
273
- },
274
- "arguments": []
275
- }
276
- },
277
- {
278
- "$type": "Group",
279
- "elements": [
280
- {
281
- "$type": "Keyword",
282
- "value": ","
283
- },
284
- {
285
- "$type": "Assignment",
286
- "feature": "items",
287
- "operator": "+=",
288
- "terminal": {
289
- "$type": "RuleCall",
290
- "rule": {
291
- "$refText": "Expression"
292
- },
293
- "arguments": []
294
- }
295
- }
296
- ],
297
- "cardinality": "*"
298
- }
299
- ],
300
- "cardinality": "?"
301
- },
302
- {
303
- "$type": "Keyword",
304
- "value": "]"
305
- }
306
- ]
307
- },
308
- "definesHiddenTokens": false,
309
- "entry": false,
310
- "fragment": false,
311
- "hiddenTokens": [],
312
- "parameters": [],
313
- "wildcard": false
314
- },
315
- {
316
- "$type": "ParserRule",
317
- "name": "ThisExpr",
318
- "definition": {
319
- "$type": "Assignment",
320
- "feature": "value",
321
- "operator": "=",
322
- "terminal": {
323
- "$type": "RuleCall",
324
- "rule": {
325
- "$refText": "THIS"
326
- },
327
- "arguments": []
328
- }
329
- },
330
- "definesHiddenTokens": false,
331
- "entry": false,
332
- "fragment": false,
333
- "hiddenTokens": [],
334
- "parameters": [],
335
- "wildcard": false
336
- },
337
- {
338
- "$type": "ParserRule",
339
- "name": "NullExpr",
340
- "definition": {
341
- "$type": "Assignment",
342
- "feature": "value",
343
- "operator": "=",
344
- "terminal": {
345
- "$type": "RuleCall",
346
- "rule": {
347
- "$refText": "NULL"
348
- },
349
- "arguments": []
350
- }
351
- },
352
- "definesHiddenTokens": false,
353
- "entry": false,
354
- "fragment": false,
355
- "hiddenTokens": [],
356
- "parameters": [],
357
- "wildcard": false
358
- },
359
- {
360
- "$type": "ParserRule",
361
- "name": "ReferenceExpr",
362
- "definition": {
363
- "$type": "Group",
364
- "elements": [
365
- {
366
- "$type": "Assignment",
367
- "feature": "target",
368
- "operator": "=",
369
- "terminal": {
370
- "$type": "CrossReference",
371
- "type": {
372
- "$refText": "ReferenceTarget"
373
- },
374
- "terminal": {
375
- "$type": "RuleCall",
376
- "rule": {
377
- "$refText": "ID"
378
- },
379
- "arguments": []
380
- },
381
- "deprecatedSyntax": false
382
- }
383
- },
384
- {
385
- "$type": "Group",
386
- "elements": [
387
- {
388
- "$type": "Keyword",
389
- "value": "("
390
- },
391
- {
392
- "$type": "RuleCall",
393
- "rule": {
394
- "$refText": "ReferenceArgList"
395
- },
396
- "arguments": []
397
- },
398
- {
399
- "$type": "Keyword",
400
- "value": ")"
401
- }
402
- ],
403
- "cardinality": "?"
404
- }
405
- ]
406
- },
407
- "definesHiddenTokens": false,
408
- "entry": false,
409
- "fragment": false,
410
- "hiddenTokens": [],
411
- "parameters": [],
412
- "wildcard": false
413
- },
414
- {
415
- "$type": "ParserRule",
416
- "name": "ReferenceArgList",
417
- "fragment": true,
418
- "definition": {
419
- "$type": "Group",
420
- "elements": [
421
- {
422
- "$type": "Assignment",
423
- "feature": "args",
424
- "operator": "+=",
425
- "terminal": {
426
- "$type": "RuleCall",
427
- "rule": {
428
- "$refText": "ReferenceArg"
429
- },
430
- "arguments": []
431
- }
432
- },
433
- {
434
- "$type": "Group",
435
- "elements": [
436
- {
437
- "$type": "Keyword",
438
- "value": ","
439
- },
440
- {
441
- "$type": "Assignment",
442
- "feature": "args",
443
- "operator": "+=",
444
- "terminal": {
445
- "$type": "RuleCall",
446
- "rule": {
447
- "$refText": "ReferenceArg"
448
- },
449
- "arguments": []
450
- }
451
- }
452
- ],
453
- "cardinality": "*"
454
- }
455
- ]
456
- },
457
- "definesHiddenTokens": false,
458
- "entry": false,
459
- "hiddenTokens": [],
460
- "parameters": [],
461
- "wildcard": false
462
- },
463
- {
464
- "$type": "ParserRule",
465
- "name": "ReferenceArg",
466
- "definition": {
467
- "$type": "Group",
468
- "elements": [
469
- {
470
- "$type": "Assignment",
471
- "feature": "name",
472
- "operator": "=",
473
- "terminal": {
474
- "$type": "Keyword",
475
- "value": "sort"
476
- }
477
- },
478
- {
479
- "$type": "Keyword",
480
- "value": ":"
481
- },
482
- {
483
- "$type": "Assignment",
484
- "feature": "value",
485
- "operator": "=",
486
- "terminal": {
487
- "$type": "Alternatives",
488
- "elements": [
489
- {
490
- "$type": "Keyword",
491
- "value": "Asc"
492
- },
493
- {
494
- "$type": "Keyword",
495
- "value": "Desc"
496
- }
497
- ]
498
- }
499
- }
500
- ]
501
- },
502
- "definesHiddenTokens": false,
503
- "entry": false,
504
- "fragment": false,
505
- "hiddenTokens": [],
506
- "parameters": [],
507
- "wildcard": false
508
- },
509
- {
510
- "$type": "ParserRule",
511
- "name": "InvocationExpr",
512
- "definition": {
513
- "$type": "Group",
514
- "elements": [
515
- {
516
- "$type": "Assignment",
517
- "feature": "function",
518
- "operator": "=",
519
- "terminal": {
520
- "$type": "CrossReference",
521
- "type": {
522
- "$refText": "Function"
523
- },
524
- "deprecatedSyntax": false
525
- }
526
- },
527
- {
528
- "$type": "Keyword",
529
- "value": "("
530
- },
531
- {
532
- "$type": "RuleCall",
533
- "rule": {
534
- "$refText": "ArgumentList"
535
- },
536
- "arguments": [],
537
- "cardinality": "?"
538
- },
539
- {
540
- "$type": "Keyword",
541
- "value": ")"
542
- }
543
- ]
544
- },
545
- "definesHiddenTokens": false,
546
- "entry": false,
547
- "fragment": false,
548
- "hiddenTokens": [],
549
- "parameters": [],
550
- "wildcard": false
551
- },
552
- {
553
- "$type": "ParserRule",
554
- "name": "UnaryExpr",
555
- "definition": {
556
- "$type": "Group",
557
- "elements": [
558
- {
559
- "$type": "Assignment",
560
- "feature": "operator",
561
- "operator": "=",
562
- "terminal": {
563
- "$type": "Keyword",
564
- "value": "!"
565
- }
566
- },
567
- {
568
- "$type": "Assignment",
569
- "feature": "operand",
570
- "operator": "=",
571
- "terminal": {
572
- "$type": "RuleCall",
573
- "rule": {
574
- "$refText": "Expression"
575
- },
576
- "arguments": []
577
- }
578
- }
579
- ]
580
- },
581
- "definesHiddenTokens": false,
582
- "entry": false,
583
- "fragment": false,
584
- "hiddenTokens": [],
585
- "parameters": [],
586
- "wildcard": false
587
- },
588
- {
589
- "$type": "ParserRule",
590
- "name": "MemberAccessExpr",
591
- "inferredType": {
592
- "$type": "InferredType",
593
- "name": "Expression"
594
- },
595
- "definition": {
596
- "$type": "Group",
597
- "elements": [
598
- {
599
- "$type": "RuleCall",
600
- "rule": {
601
- "$refText": "PrimaryExpr"
602
- },
603
- "arguments": []
604
- },
605
- {
606
- "$type": "Group",
607
- "elements": [
608
- {
609
- "$type": "Action",
610
- "inferredType": {
611
- "$type": "InferredType",
612
- "name": "MemberAccessExpr"
613
- },
614
- "feature": "operand",
615
- "operator": "="
616
- },
617
- {
618
- "$type": "Group",
619
- "elements": [
620
- {
621
- "$type": "Keyword",
622
- "value": "."
623
- },
624
- {
625
- "$type": "Assignment",
626
- "feature": "member",
627
- "operator": "=",
628
- "terminal": {
629
- "$type": "CrossReference",
630
- "type": {
631
- "$refText": "DataModelField"
632
- },
633
- "deprecatedSyntax": false
634
- }
635
- }
636
- ]
637
- }
638
- ],
639
- "cardinality": "*"
640
- }
641
- ]
642
- },
643
- "definesHiddenTokens": false,
644
- "entry": false,
645
- "fragment": false,
646
- "hiddenTokens": [],
647
- "parameters": [],
648
- "wildcard": false
649
- },
650
- {
651
- "$type": "ParserRule",
652
- "name": "CollectionPredicateExpr",
653
- "inferredType": {
654
- "$type": "InferredType",
655
- "name": "Expression"
656
- },
657
- "definition": {
658
- "$type": "Group",
659
- "elements": [
660
- {
661
- "$type": "RuleCall",
662
- "rule": {
663
- "$refText": "MemberAccessExpr"
664
- },
665
- "arguments": []
666
- },
667
- {
668
- "$type": "Group",
669
- "elements": [
670
- {
671
- "$type": "Action",
672
- "inferredType": {
673
- "$type": "InferredType",
674
- "name": "BinaryExpr"
675
- },
676
- "feature": "left",
677
- "operator": "="
678
- },
679
- {
680
- "$type": "Assignment",
681
- "feature": "operator",
682
- "operator": "=",
683
- "terminal": {
684
- "$type": "Alternatives",
685
- "elements": [
686
- {
687
- "$type": "Keyword",
688
- "value": "?"
689
- },
690
- {
691
- "$type": "Keyword",
692
- "value": "!"
693
- },
694
- {
695
- "$type": "Keyword",
696
- "value": "^"
697
- }
698
- ]
699
- }
700
- },
701
- {
702
- "$type": "Keyword",
703
- "value": "["
704
- },
705
- {
706
- "$type": "Assignment",
707
- "feature": "right",
708
- "operator": "=",
709
- "terminal": {
710
- "$type": "RuleCall",
711
- "rule": {
712
- "$refText": "Expression"
713
- },
714
- "arguments": []
715
- }
716
- },
717
- {
718
- "$type": "Keyword",
719
- "value": "]"
720
- }
721
- ],
722
- "cardinality": "*"
723
- }
724
- ]
725
- },
726
- "definesHiddenTokens": false,
727
- "entry": false,
728
- "fragment": false,
729
- "hiddenTokens": [],
730
- "parameters": [],
731
- "wildcard": false
732
- },
733
- {
734
- "$type": "ParserRule",
735
- "name": "ComparisonExpr",
736
- "inferredType": {
737
- "$type": "InferredType",
738
- "name": "Expression"
739
- },
740
- "definition": {
741
- "$type": "Group",
742
- "elements": [
743
- {
744
- "$type": "RuleCall",
745
- "rule": {
746
- "$refText": "CollectionPredicateExpr"
747
- },
748
- "arguments": []
749
- },
750
- {
751
- "$type": "Group",
752
- "elements": [
753
- {
754
- "$type": "Action",
755
- "inferredType": {
756
- "$type": "InferredType",
757
- "name": "BinaryExpr"
758
- },
759
- "feature": "left",
760
- "operator": "="
761
- },
762
- {
763
- "$type": "Assignment",
764
- "feature": "operator",
765
- "operator": "=",
766
- "terminal": {
767
- "$type": "Alternatives",
768
- "elements": [
769
- {
770
- "$type": "Keyword",
771
- "value": ">"
772
- },
773
- {
774
- "$type": "Keyword",
775
- "value": "<"
776
- },
777
- {
778
- "$type": "Keyword",
779
- "value": ">="
780
- },
781
- {
782
- "$type": "Keyword",
783
- "value": "<="
784
- }
785
- ]
786
- }
787
- },
788
- {
789
- "$type": "Assignment",
790
- "feature": "right",
791
- "operator": "=",
792
- "terminal": {
793
- "$type": "RuleCall",
794
- "rule": {
795
- "$refText": "CollectionPredicateExpr"
796
- },
797
- "arguments": []
798
- }
799
- }
800
- ],
801
- "cardinality": "*"
802
- }
803
- ]
804
- },
805
- "definesHiddenTokens": false,
806
- "entry": false,
807
- "fragment": false,
808
- "hiddenTokens": [],
809
- "parameters": [],
810
- "wildcard": false
811
- },
812
- {
813
- "$type": "ParserRule",
814
- "name": "EqualityExpr",
815
- "inferredType": {
816
- "$type": "InferredType",
817
- "name": "Expression"
818
- },
819
- "definition": {
820
- "$type": "Group",
821
- "elements": [
822
- {
823
- "$type": "RuleCall",
824
- "rule": {
825
- "$refText": "ComparisonExpr"
826
- },
827
- "arguments": []
828
- },
829
- {
830
- "$type": "Group",
831
- "elements": [
832
- {
833
- "$type": "Action",
834
- "inferredType": {
835
- "$type": "InferredType",
836
- "name": "BinaryExpr"
837
- },
838
- "feature": "left",
839
- "operator": "="
840
- },
841
- {
842
- "$type": "Assignment",
843
- "feature": "operator",
844
- "operator": "=",
845
- "terminal": {
846
- "$type": "Alternatives",
847
- "elements": [
848
- {
849
- "$type": "Keyword",
850
- "value": "=="
851
- },
852
- {
853
- "$type": "Keyword",
854
- "value": "!="
855
- }
856
- ]
857
- }
858
- },
859
- {
860
- "$type": "Assignment",
861
- "feature": "right",
862
- "operator": "=",
863
- "terminal": {
864
- "$type": "RuleCall",
865
- "rule": {
866
- "$refText": "ComparisonExpr"
867
- },
868
- "arguments": []
869
- }
870
- }
871
- ],
872
- "cardinality": "*"
873
- }
874
- ]
875
- },
876
- "definesHiddenTokens": false,
877
- "entry": false,
878
- "fragment": false,
879
- "hiddenTokens": [],
880
- "parameters": [],
881
- "wildcard": false
882
- },
883
- {
884
- "$type": "ParserRule",
885
- "name": "LogicalExpr",
886
- "inferredType": {
887
- "$type": "InferredType",
888
- "name": "Expression"
889
- },
890
- "definition": {
891
- "$type": "Group",
892
- "elements": [
893
- {
894
- "$type": "RuleCall",
895
- "rule": {
896
- "$refText": "EqualityExpr"
897
- },
898
- "arguments": []
899
- },
900
- {
901
- "$type": "Group",
902
- "elements": [
903
- {
904
- "$type": "Action",
905
- "inferredType": {
906
- "$type": "InferredType",
907
- "name": "BinaryExpr"
908
- },
909
- "feature": "left",
910
- "operator": "="
911
- },
912
- {
913
- "$type": "Assignment",
914
- "feature": "operator",
915
- "operator": "=",
916
- "terminal": {
917
- "$type": "Alternatives",
918
- "elements": [
919
- {
920
- "$type": "Keyword",
921
- "value": "&&"
922
- },
923
- {
924
- "$type": "Keyword",
925
- "value": "||"
926
- }
927
- ]
928
- }
929
- },
930
- {
931
- "$type": "Assignment",
932
- "feature": "right",
933
- "operator": "=",
934
- "terminal": {
935
- "$type": "RuleCall",
936
- "rule": {
937
- "$refText": "EqualityExpr"
938
- },
939
- "arguments": []
940
- }
941
- }
942
- ],
943
- "cardinality": "*"
944
- }
945
- ]
946
- },
947
- "definesHiddenTokens": false,
948
- "entry": false,
949
- "fragment": false,
950
- "hiddenTokens": [],
951
- "parameters": [],
952
- "wildcard": false
953
- },
954
- {
955
- "$type": "ParserRule",
956
- "name": "PrimaryExpr",
957
- "inferredType": {
958
- "$type": "InferredType",
959
- "name": "Expression"
960
- },
961
- "definition": {
962
- "$type": "Alternatives",
963
- "elements": [
964
- {
965
- "$type": "Group",
966
- "elements": [
967
- {
968
- "$type": "Keyword",
969
- "value": "("
970
- },
971
- {
972
- "$type": "RuleCall",
973
- "rule": {
974
- "$refText": "Expression"
975
- },
976
- "arguments": []
977
- },
978
- {
979
- "$type": "Keyword",
980
- "value": ")"
981
- }
982
- ]
983
- },
984
- {
985
- "$type": "RuleCall",
986
- "rule": {
987
- "$refText": "ThisExpr"
988
- },
989
- "arguments": []
990
- },
991
- {
992
- "$type": "RuleCall",
993
- "rule": {
994
- "$refText": "NullExpr"
995
- },
996
- "arguments": []
997
- },
998
- {
999
- "$type": "RuleCall",
1000
- "rule": {
1001
- "$refText": "LiteralExpr"
1002
- },
1003
- "arguments": []
1004
- },
1005
- {
1006
- "$type": "RuleCall",
1007
- "rule": {
1008
- "$refText": "InvocationExpr"
1009
- },
1010
- "arguments": []
1011
- },
1012
- {
1013
- "$type": "RuleCall",
1014
- "rule": {
1015
- "$refText": "ArrayExpr"
1016
- },
1017
- "arguments": []
1018
- },
1019
- {
1020
- "$type": "RuleCall",
1021
- "rule": {
1022
- "$refText": "ReferenceExpr"
1023
- },
1024
- "arguments": []
1025
- },
1026
- {
1027
- "$type": "RuleCall",
1028
- "rule": {
1029
- "$refText": "UnaryExpr"
1030
- },
1031
- "arguments": []
1032
- }
1033
- ]
1034
- },
1035
- "definesHiddenTokens": false,
1036
- "entry": false,
1037
- "fragment": false,
1038
- "hiddenTokens": [],
1039
- "parameters": [],
1040
- "wildcard": false
1041
- },
1042
- {
1043
- "$type": "ParserRule",
1044
- "name": "ArgumentList",
1045
- "fragment": true,
1046
- "definition": {
1047
- "$type": "Group",
1048
- "elements": [
1049
- {
1050
- "$type": "Assignment",
1051
- "feature": "args",
1052
- "operator": "+=",
1053
- "terminal": {
1054
- "$type": "RuleCall",
1055
- "rule": {
1056
- "$refText": "Argument"
1057
- },
1058
- "arguments": []
1059
- }
1060
- },
1061
- {
1062
- "$type": "Group",
1063
- "elements": [
1064
- {
1065
- "$type": "Keyword",
1066
- "value": ","
1067
- },
1068
- {
1069
- "$type": "Assignment",
1070
- "feature": "args",
1071
- "operator": "+=",
1072
- "terminal": {
1073
- "$type": "RuleCall",
1074
- "rule": {
1075
- "$refText": "Argument"
1076
- },
1077
- "arguments": []
1078
- }
1079
- }
1080
- ],
1081
- "cardinality": "*"
1082
- }
1083
- ]
1084
- },
1085
- "definesHiddenTokens": false,
1086
- "entry": false,
1087
- "hiddenTokens": [],
1088
- "parameters": [],
1089
- "wildcard": false
1090
- },
1091
- {
1092
- "$type": "ParserRule",
1093
- "name": "Argument",
1094
- "definition": {
1095
- "$type": "Group",
1096
- "elements": [
1097
- {
1098
- "$type": "Group",
1099
- "elements": [
1100
- {
1101
- "$type": "Assignment",
1102
- "feature": "name",
1103
- "operator": "=",
1104
- "terminal": {
1105
- "$type": "RuleCall",
1106
- "rule": {
1107
- "$refText": "ID"
1108
- },
1109
- "arguments": []
1110
- }
1111
- },
1112
- {
1113
- "$type": "Keyword",
1114
- "value": ":"
1115
- }
1116
- ],
1117
- "cardinality": "?"
1118
- },
1119
- {
1120
- "$type": "Assignment",
1121
- "feature": "value",
1122
- "operator": "=",
1123
- "terminal": {
1124
- "$type": "RuleCall",
1125
- "rule": {
1126
- "$refText": "Expression"
1127
- },
1128
- "arguments": []
1129
- }
1130
- }
1131
- ]
1132
- },
1133
- "definesHiddenTokens": false,
1134
- "entry": false,
1135
- "fragment": false,
1136
- "hiddenTokens": [],
1137
- "parameters": [],
1138
- "wildcard": false
1139
- },
1140
- {
1141
- "$type": "ParserRule",
1142
- "name": "DataModel",
1143
- "definition": {
1144
- "$type": "Group",
1145
- "elements": [
1146
- {
1147
- "$type": "Keyword",
1148
- "value": "model"
1149
- },
1150
- {
1151
- "$type": "Assignment",
1152
- "feature": "name",
1153
- "operator": "=",
1154
- "terminal": {
1155
- "$type": "RuleCall",
1156
- "rule": {
1157
- "$refText": "ID"
1158
- },
1159
- "arguments": []
1160
- }
1161
- },
1162
- {
1163
- "$type": "Keyword",
1164
- "value": "{"
1165
- },
1166
- {
1167
- "$type": "Alternatives",
1168
- "elements": [
1169
- {
1170
- "$type": "Assignment",
1171
- "feature": "fields",
1172
- "operator": "+=",
1173
- "terminal": {
1174
- "$type": "RuleCall",
1175
- "rule": {
1176
- "$refText": "DataModelField"
1177
- },
1178
- "arguments": []
1179
- }
1180
- },
1181
- {
1182
- "$type": "Assignment",
1183
- "feature": "attributes",
1184
- "operator": "+=",
1185
- "terminal": {
1186
- "$type": "RuleCall",
1187
- "rule": {
1188
- "$refText": "DataModelAttribute"
1189
- },
1190
- "arguments": []
1191
- }
1192
- }
1193
- ],
1194
- "cardinality": "+"
1195
- },
1196
- {
1197
- "$type": "Keyword",
1198
- "value": "}"
1199
- }
1200
- ]
1201
- },
1202
- "definesHiddenTokens": false,
1203
- "entry": false,
1204
- "fragment": false,
1205
- "hiddenTokens": [],
1206
- "parameters": [],
1207
- "wildcard": false
1208
- },
1209
- {
1210
- "$type": "ParserRule",
1211
- "name": "DataModelField",
1212
- "definition": {
1213
- "$type": "Group",
1214
- "elements": [
1215
- {
1216
- "$type": "Assignment",
1217
- "feature": "name",
1218
- "operator": "=",
1219
- "terminal": {
1220
- "$type": "RuleCall",
1221
- "rule": {
1222
- "$refText": "ID"
1223
- },
1224
- "arguments": []
1225
- }
1226
- },
1227
- {
1228
- "$type": "Assignment",
1229
- "feature": "type",
1230
- "operator": "=",
1231
- "terminal": {
1232
- "$type": "RuleCall",
1233
- "rule": {
1234
- "$refText": "DataModelFieldType"
1235
- },
1236
- "arguments": []
1237
- }
1238
- },
1239
- {
1240
- "$type": "Assignment",
1241
- "feature": "attributes",
1242
- "operator": "+=",
1243
- "terminal": {
1244
- "$type": "RuleCall",
1245
- "rule": {
1246
- "$refText": "DataModelFieldAttribute"
1247
- },
1248
- "arguments": []
1249
- },
1250
- "cardinality": "*"
1251
- }
1252
- ]
1253
- },
1254
- "definesHiddenTokens": false,
1255
- "entry": false,
1256
- "fragment": false,
1257
- "hiddenTokens": [],
1258
- "parameters": [],
1259
- "wildcard": false
1260
- },
1261
- {
1262
- "$type": "ParserRule",
1263
- "name": "DataModelFieldType",
1264
- "definition": {
1265
- "$type": "Group",
1266
- "elements": [
1267
- {
1268
- "$type": "Alternatives",
1269
- "elements": [
1270
- {
1271
- "$type": "Assignment",
1272
- "feature": "type",
1273
- "operator": "=",
1274
- "terminal": {
1275
- "$type": "RuleCall",
1276
- "rule": {
1277
- "$refText": "BuiltinType"
1278
- },
1279
- "arguments": []
1280
- }
1281
- },
1282
- {
1283
- "$type": "Assignment",
1284
- "feature": "reference",
1285
- "operator": "=",
1286
- "terminal": {
1287
- "$type": "CrossReference",
1288
- "type": {
1289
- "$refText": "TypeDeclaration"
1290
- },
1291
- "terminal": {
1292
- "$type": "RuleCall",
1293
- "rule": {
1294
- "$refText": "ID"
1295
- },
1296
- "arguments": []
1297
- },
1298
- "deprecatedSyntax": false
1299
- }
1300
- }
1301
- ]
1302
- },
1303
- {
1304
- "$type": "Assignment",
1305
- "feature": "array",
1306
- "operator": "?=",
1307
- "terminal": {
1308
- "$type": "Keyword",
1309
- "value": "[]"
1310
- },
1311
- "cardinality": "?"
1312
- },
1313
- {
1314
- "$type": "Assignment",
1315
- "feature": "optional",
1316
- "operator": "?=",
1317
- "terminal": {
1318
- "$type": "Keyword",
1319
- "value": "?"
1320
- },
1321
- "cardinality": "?"
1322
- }
1323
- ]
1324
- },
1325
- "definesHiddenTokens": false,
1326
- "entry": false,
1327
- "fragment": false,
1328
- "hiddenTokens": [],
1329
- "parameters": [],
1330
- "wildcard": false
1331
- },
1332
- {
1333
- "$type": "ParserRule",
1334
- "name": "Enum",
1335
- "definition": {
1336
- "$type": "Group",
1337
- "elements": [
1338
- {
1339
- "$type": "Keyword",
1340
- "value": "enum"
1341
- },
1342
- {
1343
- "$type": "Assignment",
1344
- "feature": "name",
1345
- "operator": "=",
1346
- "terminal": {
1347
- "$type": "RuleCall",
1348
- "rule": {
1349
- "$refText": "ID"
1350
- },
1351
- "arguments": []
1352
- }
1353
- },
1354
- {
1355
- "$type": "Keyword",
1356
- "value": "{"
1357
- },
1358
- {
1359
- "$type": "Assignment",
1360
- "feature": "fields",
1361
- "operator": "+=",
1362
- "terminal": {
1363
- "$type": "RuleCall",
1364
- "rule": {
1365
- "$refText": "EnumField"
1366
- },
1367
- "arguments": []
1368
- },
1369
- "cardinality": "+"
1370
- },
1371
- {
1372
- "$type": "Keyword",
1373
- "value": "}"
1374
- }
1375
- ]
1376
- },
1377
- "definesHiddenTokens": false,
1378
- "entry": false,
1379
- "fragment": false,
1380
- "hiddenTokens": [],
1381
- "parameters": [],
1382
- "wildcard": false
1383
- },
1384
- {
1385
- "$type": "ParserRule",
1386
- "name": "EnumField",
1387
- "definition": {
1388
- "$type": "Assignment",
1389
- "feature": "name",
1390
- "operator": "=",
1391
- "terminal": {
1392
- "$type": "RuleCall",
1393
- "rule": {
1394
- "$refText": "ID"
1395
- },
1396
- "arguments": []
1397
- }
1398
- },
1399
- "definesHiddenTokens": false,
1400
- "entry": false,
1401
- "fragment": false,
1402
- "hiddenTokens": [],
1403
- "parameters": [],
1404
- "wildcard": false
1405
- },
1406
- {
1407
- "$type": "ParserRule",
1408
- "name": "Function",
1409
- "definition": {
1410
- "$type": "Group",
1411
- "elements": [
1412
- {
1413
- "$type": "Keyword",
1414
- "value": "function"
1415
- },
1416
- {
1417
- "$type": "Assignment",
1418
- "feature": "name",
1419
- "operator": "=",
1420
- "terminal": {
1421
- "$type": "RuleCall",
1422
- "rule": {
1423
- "$refText": "ID"
1424
- },
1425
- "arguments": []
1426
- }
1427
- },
1428
- {
1429
- "$type": "Keyword",
1430
- "value": "("
1431
- },
1432
- {
1433
- "$type": "Group",
1434
- "elements": [
1435
- {
1436
- "$type": "Assignment",
1437
- "feature": "params",
1438
- "operator": "+=",
1439
- "terminal": {
1440
- "$type": "RuleCall",
1441
- "rule": {
1442
- "$refText": "FunctionParam"
1443
- },
1444
- "arguments": []
1445
- }
1446
- },
1447
- {
1448
- "$type": "Group",
1449
- "elements": [
1450
- {
1451
- "$type": "Keyword",
1452
- "value": ","
1453
- },
1454
- {
1455
- "$type": "Assignment",
1456
- "feature": "params",
1457
- "operator": "+=",
1458
- "terminal": {
1459
- "$type": "RuleCall",
1460
- "rule": {
1461
- "$refText": "FunctionParam"
1462
- },
1463
- "arguments": []
1464
- }
1465
- }
1466
- ],
1467
- "cardinality": "*"
1468
- }
1469
- ],
1470
- "cardinality": "?"
1471
- },
1472
- {
1473
- "$type": "Keyword",
1474
- "value": ")"
1475
- },
1476
- {
1477
- "$type": "Keyword",
1478
- "value": ":"
1479
- },
1480
- {
1481
- "$type": "Assignment",
1482
- "feature": "returnType",
1483
- "operator": "=",
1484
- "terminal": {
1485
- "$type": "RuleCall",
1486
- "rule": {
1487
- "$refText": "FunctionParamType"
1488
- },
1489
- "arguments": []
1490
- }
1491
- },
1492
- {
1493
- "$type": "Keyword",
1494
- "value": "{"
1495
- },
1496
- {
1497
- "$type": "Assignment",
1498
- "feature": "expression",
1499
- "operator": "=",
1500
- "terminal": {
1501
- "$type": "RuleCall",
1502
- "rule": {
1503
- "$refText": "Expression"
1504
- },
1505
- "arguments": []
1506
- },
1507
- "cardinality": "?"
1508
- },
1509
- {
1510
- "$type": "Keyword",
1511
- "value": "}"
1512
- }
1513
- ]
1514
- },
1515
- "definesHiddenTokens": false,
1516
- "entry": false,
1517
- "fragment": false,
1518
- "hiddenTokens": [],
1519
- "parameters": [],
1520
- "wildcard": false
1521
- },
1522
- {
1523
- "$type": "ParserRule",
1524
- "name": "FunctionParam",
1525
- "definition": {
1526
- "$type": "Group",
1527
- "elements": [
1528
- {
1529
- "$type": "Assignment",
1530
- "feature": "name",
1531
- "operator": "=",
1532
- "terminal": {
1533
- "$type": "RuleCall",
1534
- "rule": {
1535
- "$refText": "ID"
1536
- },
1537
- "arguments": []
1538
- }
1539
- },
1540
- {
1541
- "$type": "Keyword",
1542
- "value": ":"
1543
- },
1544
- {
1545
- "$type": "Assignment",
1546
- "feature": "type",
1547
- "operator": "=",
1548
- "terminal": {
1549
- "$type": "RuleCall",
1550
- "rule": {
1551
- "$refText": "FunctionParamType"
1552
- },
1553
- "arguments": []
1554
- }
1555
- }
1556
- ]
1557
- },
1558
- "definesHiddenTokens": false,
1559
- "entry": false,
1560
- "fragment": false,
1561
- "hiddenTokens": [],
1562
- "parameters": [],
1563
- "wildcard": false
1564
- },
1565
- {
1566
- "$type": "ParserRule",
1567
- "name": "FunctionParamType",
1568
- "definition": {
1569
- "$type": "Group",
1570
- "elements": [
1571
- {
1572
- "$type": "Alternatives",
1573
- "elements": [
1574
- {
1575
- "$type": "Assignment",
1576
- "feature": "type",
1577
- "operator": "=",
1578
- "terminal": {
1579
- "$type": "RuleCall",
1580
- "rule": {
1581
- "$refText": "ExpressionType"
1582
- },
1583
- "arguments": []
1584
- }
1585
- },
1586
- {
1587
- "$type": "Assignment",
1588
- "feature": "reference",
1589
- "operator": "=",
1590
- "terminal": {
1591
- "$type": "CrossReference",
1592
- "type": {
1593
- "$refText": "TypeDeclaration"
1594
- },
1595
- "deprecatedSyntax": false
1596
- }
1597
- }
1598
- ]
1599
- },
1600
- {
1601
- "$type": "Assignment",
1602
- "feature": "array",
1603
- "operator": "?=",
1604
- "terminal": {
1605
- "$type": "Keyword",
1606
- "value": "[]"
1607
- },
1608
- "cardinality": "?"
1609
- }
1610
- ]
1611
- },
1612
- "definesHiddenTokens": false,
1613
- "entry": false,
1614
- "fragment": false,
1615
- "hiddenTokens": [],
1616
- "parameters": [],
1617
- "wildcard": false
1618
- },
1619
- {
1620
- "$type": "ParserRule",
1621
- "name": "AttributeAttributeName",
1622
- "dataType": "string",
1623
- "definition": {
1624
- "$type": "Group",
1625
- "elements": [
1626
- {
1627
- "$type": "Keyword",
1628
- "value": "@@@"
1629
- },
1630
- {
1631
- "$type": "RuleCall",
1632
- "rule": {
1633
- "$refText": "ID"
1634
- },
1635
- "arguments": []
1636
- }
1637
- ]
1638
- },
1639
- "definesHiddenTokens": false,
1640
- "entry": false,
1641
- "fragment": false,
1642
- "hiddenTokens": [],
1643
- "parameters": [],
1644
- "wildcard": false
1645
- },
1646
- {
1647
- "$type": "ParserRule",
1648
- "name": "DataModelAttributeName",
1649
- "dataType": "string",
1650
- "definition": {
1651
- "$type": "Group",
1652
- "elements": [
1653
- {
1654
- "$type": "Keyword",
1655
- "value": "@@"
1656
- },
1657
- {
1658
- "$type": "RuleCall",
1659
- "rule": {
1660
- "$refText": "ID"
1661
- },
1662
- "arguments": []
1663
- }
1664
- ]
1665
- },
1666
- "definesHiddenTokens": false,
1667
- "entry": false,
1668
- "fragment": false,
1669
- "hiddenTokens": [],
1670
- "parameters": [],
1671
- "wildcard": false
1672
- },
1673
- {
1674
- "$type": "ParserRule",
1675
- "name": "DataModelFieldAttributeName",
1676
- "dataType": "string",
1677
- "definition": {
1678
- "$type": "Group",
1679
- "elements": [
1680
- {
1681
- "$type": "Keyword",
1682
- "value": "@"
1683
- },
1684
- {
1685
- "$type": "RuleCall",
1686
- "rule": {
1687
- "$refText": "ID"
1688
- },
1689
- "arguments": []
1690
- }
1691
- ]
1692
- },
1693
- "definesHiddenTokens": false,
1694
- "entry": false,
1695
- "fragment": false,
1696
- "hiddenTokens": [],
1697
- "parameters": [],
1698
- "wildcard": false
1699
- },
1700
- {
1701
- "$type": "ParserRule",
1702
- "name": "AttributeName",
1703
- "dataType": "string",
1704
- "definition": {
1705
- "$type": "Alternatives",
1706
- "elements": [
1707
- {
1708
- "$type": "RuleCall",
1709
- "rule": {
1710
- "$refText": "DataModelAttributeName"
1711
- },
1712
- "arguments": []
1713
- },
1714
- {
1715
- "$type": "RuleCall",
1716
- "rule": {
1717
- "$refText": "DataModelFieldAttributeName"
1718
- },
1719
- "arguments": []
1720
- },
1721
- {
1722
- "$type": "RuleCall",
1723
- "rule": {
1724
- "$refText": "AttributeAttributeName"
1725
- },
1726
- "arguments": []
1727
- }
1728
- ]
1729
- },
1730
- "definesHiddenTokens": false,
1731
- "entry": false,
1732
- "fragment": false,
1733
- "hiddenTokens": [],
1734
- "parameters": [],
1735
- "wildcard": false
1736
- },
1737
- {
1738
- "$type": "ParserRule",
1739
- "name": "Attribute",
1740
- "definition": {
1741
- "$type": "Group",
1742
- "elements": [
1743
- {
1744
- "$type": "Keyword",
1745
- "value": "attribute"
1746
- },
1747
- {
1748
- "$type": "Assignment",
1749
- "feature": "name",
1750
- "operator": "=",
1751
- "terminal": {
1752
- "$type": "RuleCall",
1753
- "rule": {
1754
- "$refText": "AttributeName"
1755
- },
1756
- "arguments": []
1757
- }
1758
- },
1759
- {
1760
- "$type": "Keyword",
1761
- "value": "("
1762
- },
1763
- {
1764
- "$type": "Group",
1765
- "elements": [
1766
- {
1767
- "$type": "Assignment",
1768
- "feature": "params",
1769
- "operator": "+=",
1770
- "terminal": {
1771
- "$type": "RuleCall",
1772
- "rule": {
1773
- "$refText": "AttributeParam"
1774
- },
1775
- "arguments": []
1776
- }
1777
- },
1778
- {
1779
- "$type": "Group",
1780
- "elements": [
1781
- {
1782
- "$type": "Keyword",
1783
- "value": ","
1784
- },
1785
- {
1786
- "$type": "Assignment",
1787
- "feature": "params",
1788
- "operator": "+=",
1789
- "terminal": {
1790
- "$type": "RuleCall",
1791
- "rule": {
1792
- "$refText": "AttributeParam"
1793
- },
1794
- "arguments": []
1795
- }
1796
- }
1797
- ],
1798
- "cardinality": "*"
1799
- }
1800
- ],
1801
- "cardinality": "?"
1802
- },
1803
- {
1804
- "$type": "Keyword",
1805
- "value": ")"
1806
- },
1807
- {
1808
- "$type": "Assignment",
1809
- "feature": "attributes",
1810
- "operator": "+=",
1811
- "terminal": {
1812
- "$type": "RuleCall",
1813
- "rule": {
1814
- "$refText": "AttributeAttribute"
1815
- },
1816
- "arguments": []
1817
- },
1818
- "cardinality": "*"
1819
- }
1820
- ]
1821
- },
1822
- "definesHiddenTokens": false,
1823
- "entry": false,
1824
- "fragment": false,
1825
- "hiddenTokens": [],
1826
- "parameters": [],
1827
- "wildcard": false
1828
- },
1829
- {
1830
- "$type": "ParserRule",
1831
- "name": "AttributeParam",
1832
- "definition": {
1833
- "$type": "Group",
1834
- "elements": [
1835
- {
1836
- "$type": "Assignment",
1837
- "feature": "default",
1838
- "operator": "?=",
1839
- "terminal": {
1840
- "$type": "Keyword",
1841
- "value": "_"
1842
- },
1843
- "cardinality": "?"
1844
- },
1845
- {
1846
- "$type": "Assignment",
1847
- "feature": "name",
1848
- "operator": "=",
1849
- "terminal": {
1850
- "$type": "RuleCall",
1851
- "rule": {
1852
- "$refText": "ID"
1853
- },
1854
- "arguments": []
1855
- }
1856
- },
1857
- {
1858
- "$type": "Keyword",
1859
- "value": ":"
1860
- },
1861
- {
1862
- "$type": "Assignment",
1863
- "feature": "type",
1864
- "operator": "=",
1865
- "terminal": {
1866
- "$type": "RuleCall",
1867
- "rule": {
1868
- "$refText": "AttributeParamType"
1869
- },
1870
- "arguments": []
1871
- }
1872
- }
1873
- ]
1874
- },
1875
- "definesHiddenTokens": false,
1876
- "entry": false,
1877
- "fragment": false,
1878
- "hiddenTokens": [],
1879
- "parameters": [],
1880
- "wildcard": false
1881
- },
1882
- {
1883
- "$type": "ParserRule",
1884
- "name": "AttributeParamType",
1885
- "definition": {
1886
- "$type": "Group",
1887
- "elements": [
1888
- {
1889
- "$type": "Alternatives",
1890
- "elements": [
1891
- {
1892
- "$type": "Assignment",
1893
- "feature": "type",
1894
- "operator": "=",
1895
- "terminal": {
1896
- "$type": "Alternatives",
1897
- "elements": [
1898
- {
1899
- "$type": "RuleCall",
1900
- "rule": {
1901
- "$refText": "ExpressionType"
1902
- },
1903
- "arguments": []
1904
- },
1905
- {
1906
- "$type": "Keyword",
1907
- "value": "FieldReference"
1908
- },
1909
- {
1910
- "$type": "Keyword",
1911
- "value": "ContextType"
1912
- }
1913
- ]
1914
- }
1915
- },
1916
- {
1917
- "$type": "Assignment",
1918
- "feature": "reference",
1919
- "operator": "=",
1920
- "terminal": {
1921
- "$type": "CrossReference",
1922
- "type": {
1923
- "$refText": "TypeDeclaration"
1924
- },
1925
- "terminal": {
1926
- "$type": "RuleCall",
1927
- "rule": {
1928
- "$refText": "ID"
1929
- },
1930
- "arguments": []
1931
- },
1932
- "deprecatedSyntax": false
1933
- }
1934
- }
1935
- ]
1936
- },
1937
- {
1938
- "$type": "Assignment",
1939
- "feature": "array",
1940
- "operator": "?=",
1941
- "terminal": {
1942
- "$type": "Keyword",
1943
- "value": "[]"
1944
- },
1945
- "cardinality": "?"
1946
- },
1947
- {
1948
- "$type": "Assignment",
1949
- "feature": "optional",
1950
- "operator": "?=",
1951
- "terminal": {
1952
- "$type": "Keyword",
1953
- "value": "?"
1954
- },
1955
- "cardinality": "?"
1956
- }
1957
- ]
1958
- },
1959
- "definesHiddenTokens": false,
1960
- "entry": false,
1961
- "fragment": false,
1962
- "hiddenTokens": [],
1963
- "parameters": [],
1964
- "wildcard": false
1965
- },
1966
- {
1967
- "$type": "ParserRule",
1968
- "name": "DataModelFieldAttribute",
1969
- "definition": {
1970
- "$type": "Group",
1971
- "elements": [
1972
- {
1973
- "$type": "Assignment",
1974
- "feature": "decl",
1975
- "operator": "=",
1976
- "terminal": {
1977
- "$type": "CrossReference",
1978
- "type": {
1979
- "$refText": "Attribute"
1980
- },
1981
- "terminal": {
1982
- "$type": "RuleCall",
1983
- "rule": {
1984
- "$refText": "DataModelFieldAttributeName"
1985
- },
1986
- "arguments": []
1987
- },
1988
- "deprecatedSyntax": false
1989
- }
1990
- },
1991
- {
1992
- "$type": "Group",
1993
- "elements": [
1994
- {
1995
- "$type": "Keyword",
1996
- "value": "("
1997
- },
1998
- {
1999
- "$type": "RuleCall",
2000
- "rule": {
2001
- "$refText": "AttributeArgList"
2002
- },
2003
- "arguments": [],
2004
- "cardinality": "?"
2005
- },
2006
- {
2007
- "$type": "Keyword",
2008
- "value": ")"
2009
- }
2010
- ],
2011
- "cardinality": "?"
2012
- }
2013
- ]
2014
- },
2015
- "definesHiddenTokens": false,
2016
- "entry": false,
2017
- "fragment": false,
2018
- "hiddenTokens": [],
2019
- "parameters": [],
2020
- "wildcard": false
2021
- },
2022
- {
2023
- "$type": "ParserRule",
2024
- "name": "DataModelAttribute",
2025
- "definition": {
2026
- "$type": "Group",
2027
- "elements": [
2028
- {
2029
- "$type": "Assignment",
2030
- "feature": "decl",
2031
- "operator": "=",
2032
- "terminal": {
2033
- "$type": "CrossReference",
2034
- "type": {
2035
- "$refText": "Attribute"
2036
- },
2037
- "terminal": {
2038
- "$type": "RuleCall",
2039
- "rule": {
2040
- "$refText": "DataModelAttributeName"
2041
- },
2042
- "arguments": []
2043
- },
2044
- "deprecatedSyntax": false
2045
- }
2046
- },
2047
- {
2048
- "$type": "Group",
2049
- "elements": [
2050
- {
2051
- "$type": "Keyword",
2052
- "value": "("
2053
- },
2054
- {
2055
- "$type": "RuleCall",
2056
- "rule": {
2057
- "$refText": "AttributeArgList"
2058
- },
2059
- "arguments": [],
2060
- "cardinality": "?"
2061
- },
2062
- {
2063
- "$type": "Keyword",
2064
- "value": ")"
2065
- }
2066
- ],
2067
- "cardinality": "?"
2068
- }
2069
- ]
2070
- },
2071
- "definesHiddenTokens": false,
2072
- "entry": false,
2073
- "fragment": false,
2074
- "hiddenTokens": [],
2075
- "parameters": [],
2076
- "wildcard": false
2077
- },
2078
- {
2079
- "$type": "ParserRule",
2080
- "name": "AttributeAttribute",
2081
- "definition": {
2082
- "$type": "Group",
2083
- "elements": [
2084
- {
2085
- "$type": "Assignment",
2086
- "feature": "decl",
2087
- "operator": "=",
2088
- "terminal": {
2089
- "$type": "CrossReference",
2090
- "type": {
2091
- "$refText": "Attribute"
2092
- },
2093
- "terminal": {
2094
- "$type": "RuleCall",
2095
- "rule": {
2096
- "$refText": "AttributeAttributeName"
2097
- },
2098
- "arguments": []
2099
- },
2100
- "deprecatedSyntax": false
2101
- }
2102
- },
2103
- {
2104
- "$type": "Group",
2105
- "elements": [
2106
- {
2107
- "$type": "Keyword",
2108
- "value": "("
2109
- },
2110
- {
2111
- "$type": "RuleCall",
2112
- "rule": {
2113
- "$refText": "AttributeArgList"
2114
- },
2115
- "arguments": [],
2116
- "cardinality": "?"
2117
- },
2118
- {
2119
- "$type": "Keyword",
2120
- "value": ")"
2121
- }
2122
- ],
2123
- "cardinality": "?"
2124
- }
2125
- ]
2126
- },
2127
- "definesHiddenTokens": false,
2128
- "entry": false,
2129
- "fragment": false,
2130
- "hiddenTokens": [],
2131
- "parameters": [],
2132
- "wildcard": false
2133
- },
2134
- {
2135
- "$type": "ParserRule",
2136
- "name": "AttributeArgList",
2137
- "fragment": true,
2138
- "definition": {
2139
- "$type": "Group",
2140
- "elements": [
2141
- {
2142
- "$type": "Assignment",
2143
- "feature": "args",
2144
- "operator": "+=",
2145
- "terminal": {
2146
- "$type": "RuleCall",
2147
- "rule": {
2148
- "$refText": "AttributeArg"
2149
- },
2150
- "arguments": []
2151
- }
2152
- },
2153
- {
2154
- "$type": "Group",
2155
- "elements": [
2156
- {
2157
- "$type": "Keyword",
2158
- "value": ","
2159
- },
2160
- {
2161
- "$type": "Assignment",
2162
- "feature": "args",
2163
- "operator": "+=",
2164
- "terminal": {
2165
- "$type": "RuleCall",
2166
- "rule": {
2167
- "$refText": "AttributeArg"
2168
- },
2169
- "arguments": []
2170
- }
2171
- }
2172
- ],
2173
- "cardinality": "*"
2174
- }
2175
- ]
2176
- },
2177
- "definesHiddenTokens": false,
2178
- "entry": false,
2179
- "hiddenTokens": [],
2180
- "parameters": [],
2181
- "wildcard": false
2182
- },
2183
- {
2184
- "$type": "ParserRule",
2185
- "name": "AttributeArg",
2186
- "definition": {
2187
- "$type": "Group",
2188
- "elements": [
2189
- {
2190
- "$type": "Group",
2191
- "elements": [
2192
- {
2193
- "$type": "Assignment",
2194
- "feature": "name",
2195
- "operator": "=",
2196
- "terminal": {
2197
- "$type": "RuleCall",
2198
- "rule": {
2199
- "$refText": "ID"
2200
- },
2201
- "arguments": []
2202
- }
2203
- },
2204
- {
2205
- "$type": "Keyword",
2206
- "value": ":"
2207
- }
2208
- ],
2209
- "cardinality": "?"
2210
- },
2211
- {
2212
- "$type": "Assignment",
2213
- "feature": "value",
2214
- "operator": "=",
2215
- "terminal": {
2216
- "$type": "RuleCall",
2217
- "rule": {
2218
- "$refText": "Expression"
2219
- },
2220
- "arguments": []
2221
- }
2222
- }
2223
- ]
2224
- },
2225
- "definesHiddenTokens": false,
2226
- "entry": false,
2227
- "fragment": false,
2228
- "hiddenTokens": [],
2229
- "parameters": [],
2230
- "wildcard": false
2231
- },
2232
- {
2233
- "$type": "ParserRule",
2234
- "name": "ExpressionType",
2235
- "dataType": "string",
2236
- "definition": {
2237
- "$type": "Alternatives",
2238
- "elements": [
2239
- {
2240
- "$type": "Keyword",
2241
- "value": "String"
2242
- },
2243
- {
2244
- "$type": "Keyword",
2245
- "value": "Int"
2246
- },
2247
- {
2248
- "$type": "Keyword",
2249
- "value": "Float"
2250
- },
2251
- {
2252
- "$type": "Keyword",
2253
- "value": "Boolean"
2254
- },
2255
- {
2256
- "$type": "Keyword",
2257
- "value": "DateTime"
2258
- },
2259
- {
2260
- "$type": "Keyword",
2261
- "value": "Null"
2262
- },
2263
- {
2264
- "$type": "Keyword",
2265
- "value": "Any"
2266
- }
2267
- ]
2268
- },
2269
- "definesHiddenTokens": false,
2270
- "entry": false,
2271
- "fragment": false,
2272
- "hiddenTokens": [],
2273
- "parameters": [],
2274
- "wildcard": false
2275
- },
2276
- {
2277
- "$type": "ParserRule",
2278
- "name": "BuiltinType",
2279
- "dataType": "string",
2280
- "definition": {
2281
- "$type": "Alternatives",
2282
- "elements": [
2283
- {
2284
- "$type": "Keyword",
2285
- "value": "String"
2286
- },
2287
- {
2288
- "$type": "Keyword",
2289
- "value": "Boolean"
2290
- },
2291
- {
2292
- "$type": "Keyword",
2293
- "value": "Int"
2294
- },
2295
- {
2296
- "$type": "Keyword",
2297
- "value": "BigInt"
2298
- },
2299
- {
2300
- "$type": "Keyword",
2301
- "value": "Float"
2302
- },
2303
- {
2304
- "$type": "Keyword",
2305
- "value": "Decimal"
2306
- },
2307
- {
2308
- "$type": "Keyword",
2309
- "value": "DateTime"
2310
- },
2311
- {
2312
- "$type": "Keyword",
2313
- "value": "Json"
2314
- },
2315
- {
2316
- "$type": "Keyword",
2317
- "value": "Bytes"
2318
- }
2319
- ]
2320
- },
2321
- "definesHiddenTokens": false,
2322
- "entry": false,
2323
- "fragment": false,
2324
- "hiddenTokens": [],
2325
- "parameters": [],
2326
- "wildcard": false
2327
- },
2328
- {
2329
- "$type": "TerminalRule",
2330
- "hidden": true,
2331
- "name": "WS",
2332
- "definition": {
2333
- "$type": "RegexToken",
2334
- "regex": "\\\\s+"
2335
- },
2336
- "fragment": false
2337
- },
2338
- {
2339
- "$type": "TerminalRule",
2340
- "name": "BOOLEAN",
2341
- "type": {
2342
- "$type": "ReturnType",
2343
- "name": "boolean"
2344
- },
2345
- "definition": {
2346
- "$type": "RegexToken",
2347
- "regex": "true|false"
2348
- },
2349
- "fragment": false,
2350
- "hidden": false
2351
- },
2352
- {
2353
- "$type": "TerminalRule",
2354
- "name": "NULL",
2355
- "definition": {
2356
- "$type": "CharacterRange",
2357
- "left": {
2358
- "$type": "Keyword",
2359
- "value": "null"
2360
- }
2361
- },
2362
- "fragment": false,
2363
- "hidden": false
2364
- },
2365
- {
2366
- "$type": "TerminalRule",
2367
- "name": "THIS",
2368
- "definition": {
2369
- "$type": "CharacterRange",
2370
- "left": {
2371
- "$type": "Keyword",
2372
- "value": "this"
2373
- }
2374
- },
2375
- "fragment": false,
2376
- "hidden": false
2377
- },
2378
- {
2379
- "$type": "TerminalRule",
2380
- "name": "ID",
2381
- "definition": {
2382
- "$type": "RegexToken",
2383
- "regex": "[_a-zA-Z][\\\\w_]*"
2384
- },
2385
- "fragment": false,
2386
- "hidden": false
2387
- },
2388
- {
2389
- "$type": "TerminalRule",
2390
- "name": "STRING",
2391
- "definition": {
2392
- "$type": "RegexToken",
2393
- "regex": "\\"[^\\"]*\\"|'[^']*'"
2394
- },
2395
- "fragment": false,
2396
- "hidden": false
2397
- },
2398
- {
2399
- "$type": "TerminalRule",
2400
- "name": "NUMBER",
2401
- "type": {
2402
- "$type": "ReturnType",
2403
- "name": "number"
2404
- },
2405
- "definition": {
2406
- "$type": "RegexToken",
2407
- "regex": "[+-]?[0-9]+(\\\\.[0-9]+)?"
2408
- },
2409
- "fragment": false,
2410
- "hidden": false
2411
- },
2412
- {
2413
- "$type": "TerminalRule",
2414
- "hidden": true,
2415
- "name": "ML_COMMENT",
2416
- "definition": {
2417
- "$type": "RegexToken",
2418
- "regex": "\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/"
2419
- },
2420
- "fragment": false
2421
- },
2422
- {
2423
- "$type": "TerminalRule",
2424
- "hidden": true,
2425
- "name": "SL_COMMENT",
2426
- "definition": {
2427
- "$type": "RegexToken",
2428
- "regex": "\\\\/\\\\/[^\\\\n\\\\r]*"
2429
- },
2430
- "fragment": false
2431
- }
2432
- ],
2433
- "types": [
2434
- {
2435
- "$type": "Type",
2436
- "typeAlternatives": [
2437
- {
2438
- "$type": "AtomType",
2439
- "refType": {
2440
- "$refText": "FunctionParam"
2441
- },
2442
- "isArray": false,
2443
- "isRef": false
2444
- },
2445
- {
2446
- "$type": "AtomType",
2447
- "refType": {
2448
- "$refText": "DataModelField"
2449
- },
2450
- "isArray": false,
2451
- "isRef": false
2452
- },
2453
- {
2454
- "$type": "AtomType",
2455
- "refType": {
2456
- "$refText": "EnumField"
2457
- },
2458
- "isArray": false,
2459
- "isRef": false
2460
- }
2461
- ],
2462
- "name": "ReferenceTarget"
2463
- },
2464
- {
2465
- "$type": "Type",
2466
- "typeAlternatives": [
2467
- {
2468
- "$type": "AtomType",
2469
- "refType": {
2470
- "$refText": "DataModel"
2471
- },
2472
- "isArray": false,
2473
- "isRef": false
2474
- },
2475
- {
2476
- "$type": "AtomType",
2477
- "refType": {
2478
- "$refText": "Enum"
2479
- },
2480
- "isArray": false,
2481
- "isRef": false
2482
- }
2483
- ],
2484
- "name": "TypeDeclaration"
2485
- }
2486
- ],
2487
- "definesHiddenTokens": false,
2488
- "hiddenTokens": [],
2489
- "imports": [],
2490
- "interfaces": [],
2491
- "usedGrammars": []
2492
- }`));