@zenstackhq/language 1.0.0-alpha.99 → 1.0.0-beta.10

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.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /******************************************************************************
3
- * This file was generated by langium-cli 1.1.0.
3
+ * This file was generated by langium-cli 1.2.0.
4
4
  * DO NOT EDIT MANUALLY!
5
5
  ******************************************************************************/
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -17,17 +17,35 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
17
17
  "name": "Model",
18
18
  "entry": true,
19
19
  "definition": {
20
- "$type": "Assignment",
21
- "feature": "declarations",
22
- "operator": "+=",
23
- "terminal": {
24
- "$type": "RuleCall",
25
- "rule": {
26
- "$ref": "#/rules@1"
20
+ "$type": "Group",
21
+ "elements": [
22
+ {
23
+ "$type": "Assignment",
24
+ "feature": "imports",
25
+ "operator": "+=",
26
+ "terminal": {
27
+ "$type": "RuleCall",
28
+ "rule": {
29
+ "$ref": "#/rules@1"
30
+ },
31
+ "arguments": []
32
+ },
33
+ "cardinality": "*"
27
34
  },
28
- "arguments": []
29
- },
30
- "cardinality": "*"
35
+ {
36
+ "$type": "Assignment",
37
+ "feature": "declarations",
38
+ "operator": "+=",
39
+ "terminal": {
40
+ "$type": "RuleCall",
41
+ "rule": {
42
+ "$ref": "#/rules@2"
43
+ },
44
+ "arguments": []
45
+ },
46
+ "cardinality": "*"
47
+ }
48
+ ]
31
49
  },
32
50
  "definesHiddenTokens": false,
33
51
  "fragment": false,
@@ -35,6 +53,42 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
35
53
  "parameters": [],
36
54
  "wildcard": false
37
55
  },
56
+ {
57
+ "$type": "ParserRule",
58
+ "name": "ModelImport",
59
+ "definition": {
60
+ "$type": "Group",
61
+ "elements": [
62
+ {
63
+ "$type": "Keyword",
64
+ "value": "import"
65
+ },
66
+ {
67
+ "$type": "Assignment",
68
+ "feature": "path",
69
+ "operator": "=",
70
+ "terminal": {
71
+ "$type": "RuleCall",
72
+ "rule": {
73
+ "$ref": "#/rules@60"
74
+ },
75
+ "arguments": []
76
+ }
77
+ },
78
+ {
79
+ "$type": "Keyword",
80
+ "value": ";",
81
+ "cardinality": "?"
82
+ }
83
+ ]
84
+ },
85
+ "definesHiddenTokens": false,
86
+ "entry": false,
87
+ "fragment": false,
88
+ "hiddenTokens": [],
89
+ "parameters": [],
90
+ "wildcard": false
91
+ },
38
92
  {
39
93
  "$type": "ParserRule",
40
94
  "name": "AbstractDeclaration",
@@ -44,49 +98,49 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
44
98
  {
45
99
  "$type": "RuleCall",
46
100
  "rule": {
47
- "$ref": "#/rules@2"
101
+ "$ref": "#/rules@3"
48
102
  },
49
103
  "arguments": []
50
104
  },
51
105
  {
52
106
  "$type": "RuleCall",
53
107
  "rule": {
54
- "$ref": "#/rules@4"
108
+ "$ref": "#/rules@5"
55
109
  },
56
110
  "arguments": []
57
111
  },
58
112
  {
59
113
  "$type": "RuleCall",
60
114
  "rule": {
61
- "$ref": "#/rules@6"
115
+ "$ref": "#/rules@7"
62
116
  },
63
117
  "arguments": []
64
118
  },
65
119
  {
66
120
  "$type": "RuleCall",
67
121
  "rule": {
68
- "$ref": "#/rules@29"
122
+ "$ref": "#/rules@30"
69
123
  },
70
124
  "arguments": []
71
125
  },
72
126
  {
73
127
  "$type": "RuleCall",
74
128
  "rule": {
75
- "$ref": "#/rules@32"
129
+ "$ref": "#/rules@34"
76
130
  },
77
131
  "arguments": []
78
132
  },
79
133
  {
80
134
  "$type": "RuleCall",
81
135
  "rule": {
82
- "$ref": "#/rules@34"
136
+ "$ref": "#/rules@36"
83
137
  },
84
138
  "arguments": []
85
139
  },
86
140
  {
87
141
  "$type": "RuleCall",
88
142
  "rule": {
89
- "$ref": "#/rules@43"
143
+ "$ref": "#/rules@45"
90
144
  },
91
145
  "arguments": []
92
146
  }
@@ -108,7 +162,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
108
162
  {
109
163
  "$type": "RuleCall",
110
164
  "rule": {
111
- "$ref": "#/rules@60"
165
+ "$ref": "#/rules@62"
112
166
  },
113
167
  "arguments": [],
114
168
  "cardinality": "*"
@@ -124,7 +178,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
124
178
  "terminal": {
125
179
  "$type": "RuleCall",
126
180
  "rule": {
127
- "$ref": "#/rules@38"
181
+ "$ref": "#/rules@40"
128
182
  },
129
183
  "arguments": []
130
184
  }
@@ -140,7 +194,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
140
194
  "terminal": {
141
195
  "$type": "RuleCall",
142
196
  "rule": {
143
- "$ref": "#/rules@3"
197
+ "$ref": "#/rules@4"
144
198
  },
145
199
  "arguments": []
146
200
  },
@@ -168,7 +222,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
168
222
  {
169
223
  "$type": "RuleCall",
170
224
  "rule": {
171
- "$ref": "#/rules@60"
225
+ "$ref": "#/rules@62"
172
226
  },
173
227
  "arguments": [],
174
228
  "cardinality": "*"
@@ -180,7 +234,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
180
234
  "terminal": {
181
235
  "$type": "RuleCall",
182
236
  "rule": {
183
- "$ref": "#/rules@38"
237
+ "$ref": "#/rules@40"
184
238
  },
185
239
  "arguments": []
186
240
  }
@@ -199,21 +253,21 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
199
253
  {
200
254
  "$type": "RuleCall",
201
255
  "rule": {
202
- "$ref": "#/rules@9"
256
+ "$ref": "#/rules@10"
203
257
  },
204
258
  "arguments": []
205
259
  },
206
260
  {
207
261
  "$type": "RuleCall",
208
262
  "rule": {
209
- "$ref": "#/rules@18"
263
+ "$ref": "#/rules@19"
210
264
  },
211
265
  "arguments": []
212
266
  },
213
267
  {
214
268
  "$type": "RuleCall",
215
269
  "rule": {
216
- "$ref": "#/rules@10"
270
+ "$ref": "#/rules@11"
217
271
  },
218
272
  "arguments": []
219
273
  }
@@ -238,7 +292,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
238
292
  {
239
293
  "$type": "RuleCall",
240
294
  "rule": {
241
- "$ref": "#/rules@60"
295
+ "$ref": "#/rules@62"
242
296
  },
243
297
  "arguments": [],
244
298
  "cardinality": "*"
@@ -254,7 +308,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
254
308
  "terminal": {
255
309
  "$type": "RuleCall",
256
310
  "rule": {
257
- "$ref": "#/rules@38"
311
+ "$ref": "#/rules@40"
258
312
  },
259
313
  "arguments": []
260
314
  }
@@ -270,7 +324,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
270
324
  "terminal": {
271
325
  "$type": "RuleCall",
272
326
  "rule": {
273
- "$ref": "#/rules@5"
327
+ "$ref": "#/rules@6"
274
328
  },
275
329
  "arguments": []
276
330
  },
@@ -298,7 +352,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
298
352
  {
299
353
  "$type": "RuleCall",
300
354
  "rule": {
301
- "$ref": "#/rules@60"
355
+ "$ref": "#/rules@62"
302
356
  },
303
357
  "arguments": [],
304
358
  "cardinality": "*"
@@ -310,7 +364,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
310
364
  "terminal": {
311
365
  "$type": "RuleCall",
312
366
  "rule": {
313
- "$ref": "#/rules@38"
367
+ "$ref": "#/rules@40"
314
368
  },
315
369
  "arguments": []
316
370
  }
@@ -329,14 +383,14 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
329
383
  {
330
384
  "$type": "RuleCall",
331
385
  "rule": {
332
- "$ref": "#/rules@9"
386
+ "$ref": "#/rules@10"
333
387
  },
334
388
  "arguments": []
335
389
  },
336
390
  {
337
391
  "$type": "RuleCall",
338
392
  "rule": {
339
- "$ref": "#/rules@10"
393
+ "$ref": "#/rules@11"
340
394
  },
341
395
  "arguments": []
342
396
  }
@@ -361,7 +415,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
361
415
  {
362
416
  "$type": "RuleCall",
363
417
  "rule": {
364
- "$ref": "#/rules@60"
418
+ "$ref": "#/rules@62"
365
419
  },
366
420
  "arguments": [],
367
421
  "cardinality": "*"
@@ -377,7 +431,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
377
431
  "terminal": {
378
432
  "$type": "RuleCall",
379
433
  "rule": {
380
- "$ref": "#/rules@38"
434
+ "$ref": "#/rules@40"
381
435
  },
382
436
  "arguments": []
383
437
  }
@@ -393,7 +447,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
393
447
  "terminal": {
394
448
  "$type": "RuleCall",
395
449
  "rule": {
396
- "$ref": "#/rules@7"
450
+ "$ref": "#/rules@8"
397
451
  },
398
452
  "arguments": []
399
453
  },
@@ -421,7 +475,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
421
475
  {
422
476
  "$type": "RuleCall",
423
477
  "rule": {
424
- "$ref": "#/rules@60"
478
+ "$ref": "#/rules@62"
425
479
  },
426
480
  "arguments": [],
427
481
  "cardinality": "*"
@@ -433,7 +487,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
433
487
  "terminal": {
434
488
  "$type": "RuleCall",
435
489
  "rule": {
436
- "$ref": "#/rules@38"
490
+ "$ref": "#/rules@40"
437
491
  },
438
492
  "arguments": []
439
493
  }
@@ -452,21 +506,21 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
452
506
  {
453
507
  "$type": "RuleCall",
454
508
  "rule": {
455
- "$ref": "#/rules@9"
509
+ "$ref": "#/rules@10"
456
510
  },
457
511
  "arguments": []
458
512
  },
459
513
  {
460
514
  "$type": "RuleCall",
461
515
  "rule": {
462
- "$ref": "#/rules@10"
516
+ "$ref": "#/rules@11"
463
517
  },
464
518
  "arguments": []
465
519
  },
466
520
  {
467
521
  "$type": "RuleCall",
468
522
  "rule": {
469
- "$ref": "#/rules@16"
523
+ "$ref": "#/rules@17"
470
524
  },
471
525
  "arguments": []
472
526
  }
@@ -488,7 +542,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
488
542
  "definition": {
489
543
  "$type": "RuleCall",
490
544
  "rule": {
491
- "$ref": "#/rules@25"
545
+ "$ref": "#/rules@26"
492
546
  },
493
547
  "arguments": []
494
548
  },
@@ -512,21 +566,21 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
512
566
  {
513
567
  "$type": "RuleCall",
514
568
  "rule": {
515
- "$ref": "#/rules@54"
569
+ "$ref": "#/rules@55"
516
570
  },
517
571
  "arguments": []
518
572
  },
519
573
  {
520
574
  "$type": "RuleCall",
521
575
  "rule": {
522
- "$ref": "#/rules@59"
576
+ "$ref": "#/rules@61"
523
577
  },
524
578
  "arguments": []
525
579
  },
526
580
  {
527
581
  "$type": "RuleCall",
528
582
  "rule": {
529
- "$ref": "#/rules@58"
583
+ "$ref": "#/rules@60"
530
584
  },
531
585
  "arguments": []
532
586
  }
@@ -560,7 +614,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
560
614
  "terminal": {
561
615
  "$type": "RuleCall",
562
616
  "rule": {
563
- "$ref": "#/rules@8"
617
+ "$ref": "#/rules@9"
564
618
  },
565
619
  "arguments": []
566
620
  }
@@ -579,7 +633,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
579
633
  "terminal": {
580
634
  "$type": "RuleCall",
581
635
  "rule": {
582
- "$ref": "#/rules@8"
636
+ "$ref": "#/rules@9"
583
637
  },
584
638
  "arguments": []
585
639
  }
@@ -613,7 +667,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
613
667
  "terminal": {
614
668
  "$type": "RuleCall",
615
669
  "rule": {
616
- "$ref": "#/rules@56"
670
+ "$ref": "#/rules@58"
617
671
  },
618
672
  "arguments": []
619
673
  }
@@ -635,7 +689,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
635
689
  "terminal": {
636
690
  "$type": "RuleCall",
637
691
  "rule": {
638
- "$ref": "#/rules@55"
692
+ "$ref": "#/rules@57"
639
693
  },
640
694
  "arguments": []
641
695
  }
@@ -665,7 +719,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
665
719
  "terminal": {
666
720
  "$type": "RuleCall",
667
721
  "rule": {
668
- "$ref": "#/rules@38"
722
+ "$ref": "#/rules@40"
669
723
  },
670
724
  "arguments": []
671
725
  },
@@ -682,7 +736,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
682
736
  {
683
737
  "$type": "RuleCall",
684
738
  "rule": {
685
- "$ref": "#/rules@14"
739
+ "$ref": "#/rules@15"
686
740
  },
687
741
  "arguments": []
688
742
  },
@@ -716,7 +770,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
716
770
  "terminal": {
717
771
  "$type": "RuleCall",
718
772
  "rule": {
719
- "$ref": "#/rules@15"
773
+ "$ref": "#/rules@16"
720
774
  },
721
775
  "arguments": []
722
776
  }
@@ -735,7 +789,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
735
789
  "terminal": {
736
790
  "$type": "RuleCall",
737
791
  "rule": {
738
- "$ref": "#/rules@15"
792
+ "$ref": "#/rules@16"
739
793
  },
740
794
  "arguments": []
741
795
  }
@@ -817,7 +871,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
817
871
  "terminal": {
818
872
  "$type": "RuleCall",
819
873
  "rule": {
820
- "$ref": "#/rules@17"
874
+ "$ref": "#/rules@18"
821
875
  },
822
876
  "arguments": []
823
877
  }
@@ -836,7 +890,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
836
890
  "terminal": {
837
891
  "$type": "RuleCall",
838
892
  "rule": {
839
- "$ref": "#/rules@17"
893
+ "$ref": "#/rules@18"
840
894
  },
841
895
  "arguments": []
842
896
  }
@@ -878,7 +932,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
878
932
  "terminal": {
879
933
  "$type": "RuleCall",
880
934
  "rule": {
881
- "$ref": "#/rules@38"
935
+ "$ref": "#/rules@40"
882
936
  },
883
937
  "arguments": []
884
938
  }
@@ -894,7 +948,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
894
948
  "terminal": {
895
949
  "$type": "RuleCall",
896
950
  "rule": {
897
- "$ref": "#/rules@8"
951
+ "$ref": "#/rules@9"
898
952
  },
899
953
  "arguments": []
900
954
  }
@@ -921,7 +975,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
921
975
  "terminal": {
922
976
  "$type": "CrossReference",
923
977
  "type": {
924
- "$ref": "#/rules@34"
978
+ "$ref": "#/rules@36"
925
979
  },
926
980
  "deprecatedSyntax": false
927
981
  }
@@ -933,7 +987,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
933
987
  {
934
988
  "$type": "RuleCall",
935
989
  "rule": {
936
- "$ref": "#/rules@27"
990
+ "$ref": "#/rules@28"
937
991
  },
938
992
  "arguments": [],
939
993
  "cardinality": "?"
@@ -951,42 +1005,6 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
951
1005
  "parameters": [],
952
1006
  "wildcard": false
953
1007
  },
954
- {
955
- "$type": "ParserRule",
956
- "name": "UnaryExpr",
957
- "definition": {
958
- "$type": "Group",
959
- "elements": [
960
- {
961
- "$type": "Assignment",
962
- "feature": "operator",
963
- "operator": "=",
964
- "terminal": {
965
- "$type": "Keyword",
966
- "value": "!"
967
- }
968
- },
969
- {
970
- "$type": "Assignment",
971
- "feature": "operand",
972
- "operator": "=",
973
- "terminal": {
974
- "$type": "RuleCall",
975
- "rule": {
976
- "$ref": "#/rules@8"
977
- },
978
- "arguments": []
979
- }
980
- }
981
- ]
982
- },
983
- "definesHiddenTokens": false,
984
- "entry": false,
985
- "fragment": false,
986
- "hiddenTokens": [],
987
- "parameters": [],
988
- "wildcard": false
989
- },
990
1008
  {
991
1009
  "$type": "ParserRule",
992
1010
  "name": "MemberAccessExpr",
@@ -1000,7 +1018,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1000
1018
  {
1001
1019
  "$type": "RuleCall",
1002
1020
  "rule": {
1003
- "$ref": "#/rules@26"
1021
+ "$ref": "#/rules@27"
1004
1022
  },
1005
1023
  "arguments": []
1006
1024
  },
@@ -1030,7 +1048,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1030
1048
  "terminal": {
1031
1049
  "$type": "CrossReference",
1032
1050
  "type": {
1033
- "$ref": "#/rules@30"
1051
+ "$ref": "#/rules@31"
1034
1052
  },
1035
1053
  "deprecatedSyntax": false
1036
1054
  }
@@ -1049,6 +1067,42 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1049
1067
  "parameters": [],
1050
1068
  "wildcard": false
1051
1069
  },
1070
+ {
1071
+ "$type": "ParserRule",
1072
+ "name": "UnaryExpr",
1073
+ "definition": {
1074
+ "$type": "Group",
1075
+ "elements": [
1076
+ {
1077
+ "$type": "Assignment",
1078
+ "feature": "operator",
1079
+ "operator": "=",
1080
+ "terminal": {
1081
+ "$type": "Keyword",
1082
+ "value": "!"
1083
+ }
1084
+ },
1085
+ {
1086
+ "$type": "Assignment",
1087
+ "feature": "operand",
1088
+ "operator": "=",
1089
+ "terminal": {
1090
+ "$type": "RuleCall",
1091
+ "rule": {
1092
+ "$ref": "#/rules@20"
1093
+ },
1094
+ "arguments": []
1095
+ }
1096
+ }
1097
+ ]
1098
+ },
1099
+ "definesHiddenTokens": false,
1100
+ "entry": false,
1101
+ "fragment": false,
1102
+ "hiddenTokens": [],
1103
+ "parameters": [],
1104
+ "wildcard": false
1105
+ },
1052
1106
  {
1053
1107
  "$type": "ParserRule",
1054
1108
  "name": "CollectionPredicateExpr",
@@ -1111,7 +1165,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1111
1165
  "terminal": {
1112
1166
  "$type": "RuleCall",
1113
1167
  "rule": {
1114
- "$ref": "#/rules@8"
1168
+ "$ref": "#/rules@9"
1115
1169
  },
1116
1170
  "arguments": []
1117
1171
  }
@@ -1145,7 +1199,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1145
1199
  {
1146
1200
  "$type": "RuleCall",
1147
1201
  "rule": {
1148
- "$ref": "#/rules@21"
1202
+ "$ref": "#/rules@22"
1149
1203
  },
1150
1204
  "arguments": []
1151
1205
  },
@@ -1177,7 +1231,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1177
1231
  "terminal": {
1178
1232
  "$type": "RuleCall",
1179
1233
  "rule": {
1180
- "$ref": "#/rules@21"
1234
+ "$ref": "#/rules@22"
1181
1235
  },
1182
1236
  "arguments": []
1183
1237
  }
@@ -1207,7 +1261,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1207
1261
  {
1208
1262
  "$type": "RuleCall",
1209
1263
  "rule": {
1210
- "$ref": "#/rules@22"
1264
+ "$ref": "#/rules@23"
1211
1265
  },
1212
1266
  "arguments": []
1213
1267
  },
@@ -1256,7 +1310,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1256
1310
  "terminal": {
1257
1311
  "$type": "RuleCall",
1258
1312
  "rule": {
1259
- "$ref": "#/rules@22"
1313
+ "$ref": "#/rules@23"
1260
1314
  },
1261
1315
  "arguments": []
1262
1316
  }
@@ -1286,7 +1340,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1286
1340
  {
1287
1341
  "$type": "RuleCall",
1288
1342
  "rule": {
1289
- "$ref": "#/rules@23"
1343
+ "$ref": "#/rules@24"
1290
1344
  },
1291
1345
  "arguments": []
1292
1346
  },
@@ -1327,7 +1381,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1327
1381
  "terminal": {
1328
1382
  "$type": "RuleCall",
1329
1383
  "rule": {
1330
- "$ref": "#/rules@23"
1384
+ "$ref": "#/rules@24"
1331
1385
  },
1332
1386
  "arguments": []
1333
1387
  }
@@ -1357,7 +1411,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1357
1411
  {
1358
1412
  "$type": "RuleCall",
1359
1413
  "rule": {
1360
- "$ref": "#/rules@24"
1414
+ "$ref": "#/rules@25"
1361
1415
  },
1362
1416
  "arguments": []
1363
1417
  },
@@ -1398,7 +1452,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1398
1452
  "terminal": {
1399
1453
  "$type": "RuleCall",
1400
1454
  "rule": {
1401
- "$ref": "#/rules@24"
1455
+ "$ref": "#/rules@25"
1402
1456
  },
1403
1457
  "arguments": []
1404
1458
  }
@@ -1435,7 +1489,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1435
1489
  {
1436
1490
  "$type": "RuleCall",
1437
1491
  "rule": {
1438
- "$ref": "#/rules@8"
1492
+ "$ref": "#/rules@9"
1439
1493
  },
1440
1494
  "arguments": []
1441
1495
  },
@@ -1448,56 +1502,56 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1448
1502
  {
1449
1503
  "$type": "RuleCall",
1450
1504
  "rule": {
1451
- "$ref": "#/rules@11"
1505
+ "$ref": "#/rules@12"
1452
1506
  },
1453
1507
  "arguments": []
1454
1508
  },
1455
1509
  {
1456
1510
  "$type": "RuleCall",
1457
1511
  "rule": {
1458
- "$ref": "#/rules@12"
1512
+ "$ref": "#/rules@13"
1459
1513
  },
1460
1514
  "arguments": []
1461
1515
  },
1462
1516
  {
1463
1517
  "$type": "RuleCall",
1464
1518
  "rule": {
1465
- "$ref": "#/rules@9"
1519
+ "$ref": "#/rules@10"
1466
1520
  },
1467
1521
  "arguments": []
1468
1522
  },
1469
1523
  {
1470
1524
  "$type": "RuleCall",
1471
1525
  "rule": {
1472
- "$ref": "#/rules@18"
1526
+ "$ref": "#/rules@21"
1473
1527
  },
1474
1528
  "arguments": []
1475
1529
  },
1476
1530
  {
1477
1531
  "$type": "RuleCall",
1478
1532
  "rule": {
1479
- "$ref": "#/rules@10"
1533
+ "$ref": "#/rules@19"
1480
1534
  },
1481
1535
  "arguments": []
1482
1536
  },
1483
1537
  {
1484
1538
  "$type": "RuleCall",
1485
1539
  "rule": {
1486
- "$ref": "#/rules@13"
1540
+ "$ref": "#/rules@11"
1487
1541
  },
1488
1542
  "arguments": []
1489
1543
  },
1490
1544
  {
1491
1545
  "$type": "RuleCall",
1492
1546
  "rule": {
1493
- "$ref": "#/rules@19"
1547
+ "$ref": "#/rules@14"
1494
1548
  },
1495
1549
  "arguments": []
1496
1550
  },
1497
1551
  {
1498
1552
  "$type": "RuleCall",
1499
1553
  "rule": {
1500
- "$ref": "#/rules@16"
1554
+ "$ref": "#/rules@17"
1501
1555
  },
1502
1556
  "arguments": []
1503
1557
  }
@@ -1524,7 +1578,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1524
1578
  "terminal": {
1525
1579
  "$type": "RuleCall",
1526
1580
  "rule": {
1527
- "$ref": "#/rules@28"
1581
+ "$ref": "#/rules@29"
1528
1582
  },
1529
1583
  "arguments": []
1530
1584
  }
@@ -1543,7 +1597,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1543
1597
  "terminal": {
1544
1598
  "$type": "RuleCall",
1545
1599
  "rule": {
1546
- "$ref": "#/rules@28"
1600
+ "$ref": "#/rules@29"
1547
1601
  },
1548
1602
  "arguments": []
1549
1603
  }
@@ -1575,7 +1629,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1575
1629
  "terminal": {
1576
1630
  "$type": "RuleCall",
1577
1631
  "rule": {
1578
- "$ref": "#/rules@38"
1632
+ "$ref": "#/rules@40"
1579
1633
  },
1580
1634
  "arguments": []
1581
1635
  }
@@ -1594,7 +1648,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1594
1648
  "terminal": {
1595
1649
  "$type": "RuleCall",
1596
1650
  "rule": {
1597
- "$ref": "#/rules@8"
1651
+ "$ref": "#/rules@9"
1598
1652
  },
1599
1653
  "arguments": []
1600
1654
  }
@@ -1621,27 +1675,117 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1621
1675
  "terminal": {
1622
1676
  "$type": "RuleCall",
1623
1677
  "rule": {
1624
- "$ref": "#/rules@60"
1678
+ "$ref": "#/rules@62"
1625
1679
  },
1626
1680
  "arguments": []
1627
1681
  },
1628
1682
  "cardinality": "*"
1629
1683
  },
1630
1684
  {
1631
- "$type": "Keyword",
1632
- "value": "model"
1633
- },
1634
- {
1635
- "$type": "Assignment",
1636
- "feature": "name",
1637
- "operator": "=",
1638
- "terminal": {
1639
- "$type": "RuleCall",
1640
- "rule": {
1641
- "$ref": "#/rules@38"
1685
+ "$type": "Alternatives",
1686
+ "elements": [
1687
+ {
1688
+ "$type": "Group",
1689
+ "elements": [
1690
+ {
1691
+ "$type": "Assignment",
1692
+ "feature": "isAbstract",
1693
+ "operator": "?=",
1694
+ "terminal": {
1695
+ "$type": "Keyword",
1696
+ "value": "abstract"
1697
+ },
1698
+ "cardinality": "?"
1699
+ },
1700
+ {
1701
+ "$type": "Keyword",
1702
+ "value": "model"
1703
+ },
1704
+ {
1705
+ "$type": "Assignment",
1706
+ "feature": "name",
1707
+ "operator": "=",
1708
+ "terminal": {
1709
+ "$type": "RuleCall",
1710
+ "rule": {
1711
+ "$ref": "#/rules@40"
1712
+ },
1713
+ "arguments": []
1714
+ }
1715
+ },
1716
+ {
1717
+ "$type": "Group",
1718
+ "elements": [
1719
+ {
1720
+ "$type": "Keyword",
1721
+ "value": "extends"
1722
+ },
1723
+ {
1724
+ "$type": "Assignment",
1725
+ "feature": "superTypes",
1726
+ "operator": "+=",
1727
+ "terminal": {
1728
+ "$type": "CrossReference",
1729
+ "type": {
1730
+ "$ref": "#/rules@30"
1731
+ },
1732
+ "deprecatedSyntax": false
1733
+ }
1734
+ },
1735
+ {
1736
+ "$type": "Group",
1737
+ "elements": [
1738
+ {
1739
+ "$type": "Keyword",
1740
+ "value": ","
1741
+ },
1742
+ {
1743
+ "$type": "Assignment",
1744
+ "feature": "superTypes",
1745
+ "operator": "+=",
1746
+ "terminal": {
1747
+ "$type": "CrossReference",
1748
+ "type": {
1749
+ "$ref": "#/rules@30"
1750
+ },
1751
+ "deprecatedSyntax": false
1752
+ }
1753
+ }
1754
+ ],
1755
+ "cardinality": "*"
1756
+ }
1757
+ ],
1758
+ "cardinality": "?"
1759
+ }
1760
+ ]
1642
1761
  },
1643
- "arguments": []
1644
- }
1762
+ {
1763
+ "$type": "Group",
1764
+ "elements": [
1765
+ {
1766
+ "$type": "Assignment",
1767
+ "feature": "isView",
1768
+ "operator": "?=",
1769
+ "terminal": {
1770
+ "$type": "Keyword",
1771
+ "value": "view"
1772
+ }
1773
+ },
1774
+ {
1775
+ "$type": "Assignment",
1776
+ "feature": "name",
1777
+ "operator": "=",
1778
+ "terminal": {
1779
+ "$type": "RuleCall",
1780
+ "rule": {
1781
+ "$ref": "#/rules@40"
1782
+ },
1783
+ "arguments": []
1784
+ }
1785
+ }
1786
+ ]
1787
+ }
1788
+ ]
1645
1789
  },
1646
1790
  {
1647
1791
  "$type": "Keyword",
@@ -1657,7 +1801,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1657
1801
  "terminal": {
1658
1802
  "$type": "RuleCall",
1659
1803
  "rule": {
1660
- "$ref": "#/rules@30"
1804
+ "$ref": "#/rules@31"
1661
1805
  },
1662
1806
  "arguments": []
1663
1807
  }
@@ -1669,7 +1813,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1669
1813
  "terminal": {
1670
1814
  "$type": "RuleCall",
1671
1815
  "rule": {
1672
- "$ref": "#/rules@47"
1816
+ "$ref": "#/rules@49"
1673
1817
  },
1674
1818
  "arguments": []
1675
1819
  }
@@ -1703,7 +1847,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1703
1847
  "terminal": {
1704
1848
  "$type": "RuleCall",
1705
1849
  "rule": {
1706
- "$ref": "#/rules@60"
1850
+ "$ref": "#/rules@62"
1707
1851
  },
1708
1852
  "arguments": []
1709
1853
  },
@@ -1716,7 +1860,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1716
1860
  "terminal": {
1717
1861
  "$type": "RuleCall",
1718
1862
  "rule": {
1719
- "$ref": "#/rules@38"
1863
+ "$ref": "#/rules@40"
1720
1864
  },
1721
1865
  "arguments": []
1722
1866
  }
@@ -1728,7 +1872,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1728
1872
  "terminal": {
1729
1873
  "$type": "RuleCall",
1730
1874
  "rule": {
1731
- "$ref": "#/rules@31"
1875
+ "$ref": "#/rules@32"
1732
1876
  },
1733
1877
  "arguments": []
1734
1878
  }
@@ -1740,7 +1884,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1740
1884
  "terminal": {
1741
1885
  "$type": "RuleCall",
1742
1886
  "rule": {
1743
- "$ref": "#/rules@46"
1887
+ "$ref": "#/rules@48"
1744
1888
  },
1745
1889
  "arguments": []
1746
1890
  },
@@ -1771,7 +1915,19 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1771
1915
  "terminal": {
1772
1916
  "$type": "RuleCall",
1773
1917
  "rule": {
1774
- "$ref": "#/rules@52"
1918
+ "$ref": "#/rules@54"
1919
+ },
1920
+ "arguments": []
1921
+ }
1922
+ },
1923
+ {
1924
+ "$type": "Assignment",
1925
+ "feature": "unsupported",
1926
+ "operator": "=",
1927
+ "terminal": {
1928
+ "$type": "RuleCall",
1929
+ "rule": {
1930
+ "$ref": "#/rules@33"
1775
1931
  },
1776
1932
  "arguments": []
1777
1933
  }
@@ -1788,7 +1944,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1788
1944
  "terminal": {
1789
1945
  "$type": "RuleCall",
1790
1946
  "rule": {
1791
- "$ref": "#/rules@38"
1947
+ "$ref": "#/rules@40"
1792
1948
  },
1793
1949
  "arguments": []
1794
1950
  },
@@ -1835,6 +1991,45 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1835
1991
  "parameters": [],
1836
1992
  "wildcard": false
1837
1993
  },
1994
+ {
1995
+ "$type": "ParserRule",
1996
+ "name": "UnsupportedFieldType",
1997
+ "definition": {
1998
+ "$type": "Group",
1999
+ "elements": [
2000
+ {
2001
+ "$type": "Keyword",
2002
+ "value": "Unsupported"
2003
+ },
2004
+ {
2005
+ "$type": "Keyword",
2006
+ "value": "("
2007
+ },
2008
+ {
2009
+ "$type": "Assignment",
2010
+ "feature": "value",
2011
+ "operator": "=",
2012
+ "terminal": {
2013
+ "$type": "RuleCall",
2014
+ "rule": {
2015
+ "$ref": "#/rules@10"
2016
+ },
2017
+ "arguments": []
2018
+ }
2019
+ },
2020
+ {
2021
+ "$type": "Keyword",
2022
+ "value": ")"
2023
+ }
2024
+ ]
2025
+ },
2026
+ "definesHiddenTokens": false,
2027
+ "entry": false,
2028
+ "fragment": false,
2029
+ "hiddenTokens": [],
2030
+ "parameters": [],
2031
+ "wildcard": false
2032
+ },
1838
2033
  {
1839
2034
  "$type": "ParserRule",
1840
2035
  "name": "Enum",
@@ -1848,7 +2043,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1848
2043
  "terminal": {
1849
2044
  "$type": "RuleCall",
1850
2045
  "rule": {
1851
- "$ref": "#/rules@60"
2046
+ "$ref": "#/rules@62"
1852
2047
  },
1853
2048
  "arguments": []
1854
2049
  },
@@ -1865,7 +2060,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1865
2060
  "terminal": {
1866
2061
  "$type": "RuleCall",
1867
2062
  "rule": {
1868
- "$ref": "#/rules@38"
2063
+ "$ref": "#/rules@40"
1869
2064
  },
1870
2065
  "arguments": []
1871
2066
  }
@@ -1884,7 +2079,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1884
2079
  "terminal": {
1885
2080
  "$type": "RuleCall",
1886
2081
  "rule": {
1887
- "$ref": "#/rules@33"
2082
+ "$ref": "#/rules@35"
1888
2083
  },
1889
2084
  "arguments": []
1890
2085
  }
@@ -1896,7 +2091,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1896
2091
  "terminal": {
1897
2092
  "$type": "RuleCall",
1898
2093
  "rule": {
1899
- "$ref": "#/rules@47"
2094
+ "$ref": "#/rules@49"
1900
2095
  },
1901
2096
  "arguments": []
1902
2097
  }
@@ -1930,7 +2125,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1930
2125
  "terminal": {
1931
2126
  "$type": "RuleCall",
1932
2127
  "rule": {
1933
- "$ref": "#/rules@60"
2128
+ "$ref": "#/rules@62"
1934
2129
  },
1935
2130
  "arguments": []
1936
2131
  },
@@ -1943,7 +2138,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1943
2138
  "terminal": {
1944
2139
  "$type": "RuleCall",
1945
2140
  "rule": {
1946
- "$ref": "#/rules@38"
2141
+ "$ref": "#/rules@40"
1947
2142
  },
1948
2143
  "arguments": []
1949
2144
  }
@@ -1955,7 +2150,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1955
2150
  "terminal": {
1956
2151
  "$type": "RuleCall",
1957
2152
  "rule": {
1958
- "$ref": "#/rules@46"
2153
+ "$ref": "#/rules@48"
1959
2154
  },
1960
2155
  "arguments": []
1961
2156
  },
@@ -1979,7 +2174,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1979
2174
  {
1980
2175
  "$type": "RuleCall",
1981
2176
  "rule": {
1982
- "$ref": "#/rules@60"
2177
+ "$ref": "#/rules@62"
1983
2178
  },
1984
2179
  "arguments": [],
1985
2180
  "cardinality": "*"
@@ -1995,7 +2190,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1995
2190
  "terminal": {
1996
2191
  "$type": "RuleCall",
1997
2192
  "rule": {
1998
- "$ref": "#/rules@38"
2193
+ "$ref": "#/rules@40"
1999
2194
  },
2000
2195
  "arguments": []
2001
2196
  }
@@ -2014,7 +2209,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2014
2209
  "terminal": {
2015
2210
  "$type": "RuleCall",
2016
2211
  "rule": {
2017
- "$ref": "#/rules@35"
2212
+ "$ref": "#/rules@37"
2018
2213
  },
2019
2214
  "arguments": []
2020
2215
  }
@@ -2033,7 +2228,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2033
2228
  "terminal": {
2034
2229
  "$type": "RuleCall",
2035
2230
  "rule": {
2036
- "$ref": "#/rules@35"
2231
+ "$ref": "#/rules@37"
2037
2232
  },
2038
2233
  "arguments": []
2039
2234
  }
@@ -2059,7 +2254,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2059
2254
  "terminal": {
2060
2255
  "$type": "RuleCall",
2061
2256
  "rule": {
2062
- "$ref": "#/rules@36"
2257
+ "$ref": "#/rules@38"
2063
2258
  },
2064
2259
  "arguments": []
2065
2260
  }
@@ -2075,7 +2270,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2075
2270
  "terminal": {
2076
2271
  "$type": "RuleCall",
2077
2272
  "rule": {
2078
- "$ref": "#/rules@8"
2273
+ "$ref": "#/rules@9"
2079
2274
  },
2080
2275
  "arguments": []
2081
2276
  },
@@ -2084,6 +2279,19 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2084
2279
  {
2085
2280
  "$type": "Keyword",
2086
2281
  "value": "}"
2282
+ },
2283
+ {
2284
+ "$type": "Assignment",
2285
+ "feature": "attributes",
2286
+ "operator": "+=",
2287
+ "terminal": {
2288
+ "$type": "RuleCall",
2289
+ "rule": {
2290
+ "$ref": "#/rules@50"
2291
+ },
2292
+ "arguments": []
2293
+ },
2294
+ "cardinality": "*"
2087
2295
  }
2088
2296
  ]
2089
2297
  },
@@ -2103,7 +2311,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2103
2311
  {
2104
2312
  "$type": "RuleCall",
2105
2313
  "rule": {
2106
- "$ref": "#/rules@60"
2314
+ "$ref": "#/rules@62"
2107
2315
  },
2108
2316
  "arguments": [],
2109
2317
  "cardinality": "*"
@@ -2115,7 +2323,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2115
2323
  "terminal": {
2116
2324
  "$type": "RuleCall",
2117
2325
  "rule": {
2118
- "$ref": "#/rules@38"
2326
+ "$ref": "#/rules@40"
2119
2327
  },
2120
2328
  "arguments": []
2121
2329
  }
@@ -2131,7 +2339,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2131
2339
  "terminal": {
2132
2340
  "$type": "RuleCall",
2133
2341
  "rule": {
2134
- "$ref": "#/rules@36"
2342
+ "$ref": "#/rules@38"
2135
2343
  },
2136
2344
  "arguments": []
2137
2345
  }
@@ -2171,7 +2379,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2171
2379
  "terminal": {
2172
2380
  "$type": "RuleCall",
2173
2381
  "rule": {
2174
- "$ref": "#/rules@51"
2382
+ "$ref": "#/rules@53"
2175
2383
  },
2176
2384
  "arguments": []
2177
2385
  }
@@ -2188,7 +2396,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2188
2396
  "terminal": {
2189
2397
  "$type": "RuleCall",
2190
2398
  "rule": {
2191
- "$ref": "#/rules@38"
2399
+ "$ref": "#/rules@40"
2192
2400
  },
2193
2401
  "arguments": []
2194
2402
  },
@@ -2235,7 +2443,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2235
2443
  {
2236
2444
  "$type": "RuleCall",
2237
2445
  "rule": {
2238
- "$ref": "#/rules@57"
2446
+ "$ref": "#/rules@59"
2239
2447
  },
2240
2448
  "arguments": []
2241
2449
  },
@@ -2252,14 +2460,14 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2252
2460
  {
2253
2461
  "$type": "RuleCall",
2254
2462
  "rule": {
2255
- "$ref": "#/rules@57"
2463
+ "$ref": "#/rules@59"
2256
2464
  },
2257
2465
  "arguments": []
2258
2466
  },
2259
2467
  {
2260
2468
  "$type": "RuleCall",
2261
2469
  "rule": {
2262
- "$ref": "#/rules@52"
2470
+ "$ref": "#/rules@54"
2263
2471
  },
2264
2472
  "arguments": []
2265
2473
  }
@@ -2287,13 +2495,41 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2287
2495
  {
2288
2496
  "$type": "RuleCall",
2289
2497
  "rule": {
2290
- "$ref": "#/rules@57"
2498
+ "$ref": "#/rules@59"
2291
2499
  },
2292
2500
  "arguments": []
2293
2501
  },
2502
+ {
2503
+ "$type": "Keyword",
2504
+ "value": "model"
2505
+ },
2506
+ {
2507
+ "$type": "Keyword",
2508
+ "value": "enum"
2509
+ },
2510
+ {
2511
+ "$type": "Keyword",
2512
+ "value": "attribute"
2513
+ },
2514
+ {
2515
+ "$type": "Keyword",
2516
+ "value": "datasource"
2517
+ },
2518
+ {
2519
+ "$type": "Keyword",
2520
+ "value": "plugin"
2521
+ },
2522
+ {
2523
+ "$type": "Keyword",
2524
+ "value": "abstract"
2525
+ },
2294
2526
  {
2295
2527
  "$type": "Keyword",
2296
2528
  "value": "in"
2529
+ },
2530
+ {
2531
+ "$type": "Keyword",
2532
+ "value": "sort"
2297
2533
  }
2298
2534
  ]
2299
2535
  },
@@ -2306,7 +2542,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2306
2542
  },
2307
2543
  {
2308
2544
  "$type": "ParserRule",
2309
- "name": "AttributeAttributeName",
2545
+ "name": "InternalAttributeName",
2310
2546
  "dataType": "string",
2311
2547
  "definition": {
2312
2548
  "$type": "Group",
@@ -2318,7 +2554,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2318
2554
  {
2319
2555
  "$type": "RuleCall",
2320
2556
  "rule": {
2321
- "$ref": "#/rules@37"
2557
+ "$ref": "#/rules@39"
2322
2558
  },
2323
2559
  "arguments": []
2324
2560
  }
@@ -2345,7 +2581,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2345
2581
  {
2346
2582
  "$type": "RuleCall",
2347
2583
  "rule": {
2348
- "$ref": "#/rules@37"
2584
+ "$ref": "#/rules@39"
2349
2585
  },
2350
2586
  "arguments": []
2351
2587
  }
@@ -2372,7 +2608,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2372
2608
  {
2373
2609
  "$type": "RuleCall",
2374
2610
  "rule": {
2375
- "$ref": "#/rules@37"
2611
+ "$ref": "#/rules@39"
2376
2612
  },
2377
2613
  "arguments": []
2378
2614
  }
@@ -2395,21 +2631,21 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2395
2631
  {
2396
2632
  "$type": "RuleCall",
2397
2633
  "rule": {
2398
- "$ref": "#/rules@40"
2634
+ "$ref": "#/rules@42"
2399
2635
  },
2400
2636
  "arguments": []
2401
2637
  },
2402
2638
  {
2403
2639
  "$type": "RuleCall",
2404
2640
  "rule": {
2405
- "$ref": "#/rules@41"
2641
+ "$ref": "#/rules@43"
2406
2642
  },
2407
2643
  "arguments": []
2408
2644
  },
2409
2645
  {
2410
2646
  "$type": "RuleCall",
2411
2647
  "rule": {
2412
- "$ref": "#/rules@39"
2648
+ "$ref": "#/rules@41"
2413
2649
  },
2414
2650
  "arguments": []
2415
2651
  }
@@ -2431,7 +2667,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2431
2667
  {
2432
2668
  "$type": "RuleCall",
2433
2669
  "rule": {
2434
- "$ref": "#/rules@60"
2670
+ "$ref": "#/rules@62"
2435
2671
  },
2436
2672
  "arguments": [],
2437
2673
  "cardinality": "*"
@@ -2447,7 +2683,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2447
2683
  "terminal": {
2448
2684
  "$type": "RuleCall",
2449
2685
  "rule": {
2450
- "$ref": "#/rules@42"
2686
+ "$ref": "#/rules@44"
2451
2687
  },
2452
2688
  "arguments": []
2453
2689
  }
@@ -2466,7 +2702,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2466
2702
  "terminal": {
2467
2703
  "$type": "RuleCall",
2468
2704
  "rule": {
2469
- "$ref": "#/rules@44"
2705
+ "$ref": "#/rules@46"
2470
2706
  },
2471
2707
  "arguments": []
2472
2708
  }
@@ -2485,7 +2721,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2485
2721
  "terminal": {
2486
2722
  "$type": "RuleCall",
2487
2723
  "rule": {
2488
- "$ref": "#/rules@44"
2724
+ "$ref": "#/rules@46"
2489
2725
  },
2490
2726
  "arguments": []
2491
2727
  }
@@ -2507,7 +2743,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2507
2743
  "terminal": {
2508
2744
  "$type": "RuleCall",
2509
2745
  "rule": {
2510
- "$ref": "#/rules@48"
2746
+ "$ref": "#/rules@50"
2511
2747
  },
2512
2748
  "arguments": []
2513
2749
  },
@@ -2531,7 +2767,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2531
2767
  {
2532
2768
  "$type": "RuleCall",
2533
2769
  "rule": {
2534
- "$ref": "#/rules@60"
2770
+ "$ref": "#/rules@62"
2535
2771
  },
2536
2772
  "arguments": [],
2537
2773
  "cardinality": "*"
@@ -2553,7 +2789,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2553
2789
  "terminal": {
2554
2790
  "$type": "RuleCall",
2555
2791
  "rule": {
2556
- "$ref": "#/rules@38"
2792
+ "$ref": "#/rules@40"
2557
2793
  },
2558
2794
  "arguments": []
2559
2795
  }
@@ -2569,7 +2805,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2569
2805
  "terminal": {
2570
2806
  "$type": "RuleCall",
2571
2807
  "rule": {
2572
- "$ref": "#/rules@45"
2808
+ "$ref": "#/rules@47"
2573
2809
  },
2574
2810
  "arguments": []
2575
2811
  }
@@ -2602,7 +2838,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2602
2838
  {
2603
2839
  "$type": "RuleCall",
2604
2840
  "rule": {
2605
- "$ref": "#/rules@51"
2841
+ "$ref": "#/rules@53"
2606
2842
  },
2607
2843
  "arguments": []
2608
2844
  },
@@ -2633,7 +2869,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2633
2869
  "terminal": {
2634
2870
  "$type": "RuleCall",
2635
2871
  "rule": {
2636
- "$ref": "#/rules@38"
2872
+ "$ref": "#/rules@40"
2637
2873
  },
2638
2874
  "arguments": []
2639
2875
  },
@@ -2693,12 +2929,12 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2693
2929
  "terminal": {
2694
2930
  "$type": "CrossReference",
2695
2931
  "type": {
2696
- "$ref": "#/rules@43"
2932
+ "$ref": "#/rules@45"
2697
2933
  },
2698
2934
  "terminal": {
2699
2935
  "$type": "RuleCall",
2700
2936
  "rule": {
2701
- "$ref": "#/rules@41"
2937
+ "$ref": "#/rules@43"
2702
2938
  },
2703
2939
  "arguments": []
2704
2940
  },
@@ -2715,7 +2951,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2715
2951
  {
2716
2952
  "$type": "RuleCall",
2717
2953
  "rule": {
2718
- "$ref": "#/rules@49"
2954
+ "$ref": "#/rules@51"
2719
2955
  },
2720
2956
  "arguments": [],
2721
2957
  "cardinality": "?"
@@ -2745,7 +2981,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2745
2981
  {
2746
2982
  "$type": "RuleCall",
2747
2983
  "rule": {
2748
- "$ref": "#/rules@60"
2984
+ "$ref": "#/rules@62"
2749
2985
  },
2750
2986
  "arguments": [],
2751
2987
  "cardinality": "*"
@@ -2757,12 +2993,12 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2757
2993
  "terminal": {
2758
2994
  "$type": "CrossReference",
2759
2995
  "type": {
2760
- "$ref": "#/rules@43"
2996
+ "$ref": "#/rules@45"
2761
2997
  },
2762
2998
  "terminal": {
2763
2999
  "$type": "RuleCall",
2764
3000
  "rule": {
2765
- "$ref": "#/rules@40"
3001
+ "$ref": "#/rules@42"
2766
3002
  },
2767
3003
  "arguments": []
2768
3004
  },
@@ -2779,7 +3015,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2779
3015
  {
2780
3016
  "$type": "RuleCall",
2781
3017
  "rule": {
2782
- "$ref": "#/rules@49"
3018
+ "$ref": "#/rules@51"
2783
3019
  },
2784
3020
  "arguments": [],
2785
3021
  "cardinality": "?"
@@ -2802,7 +3038,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2802
3038
  },
2803
3039
  {
2804
3040
  "$type": "ParserRule",
2805
- "name": "AttributeAttribute",
3041
+ "name": "InternalAttribute",
2806
3042
  "definition": {
2807
3043
  "$type": "Group",
2808
3044
  "elements": [
@@ -2813,12 +3049,12 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2813
3049
  "terminal": {
2814
3050
  "$type": "CrossReference",
2815
3051
  "type": {
2816
- "$ref": "#/rules@43"
3052
+ "$ref": "#/rules@45"
2817
3053
  },
2818
3054
  "terminal": {
2819
3055
  "$type": "RuleCall",
2820
3056
  "rule": {
2821
- "$ref": "#/rules@39"
3057
+ "$ref": "#/rules@41"
2822
3058
  },
2823
3059
  "arguments": []
2824
3060
  },
@@ -2835,7 +3071,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2835
3071
  {
2836
3072
  "$type": "RuleCall",
2837
3073
  "rule": {
2838
- "$ref": "#/rules@49"
3074
+ "$ref": "#/rules@51"
2839
3075
  },
2840
3076
  "arguments": [],
2841
3077
  "cardinality": "?"
@@ -2870,7 +3106,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2870
3106
  "terminal": {
2871
3107
  "$type": "RuleCall",
2872
3108
  "rule": {
2873
- "$ref": "#/rules@50"
3109
+ "$ref": "#/rules@52"
2874
3110
  },
2875
3111
  "arguments": []
2876
3112
  }
@@ -2889,7 +3125,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2889
3125
  "terminal": {
2890
3126
  "$type": "RuleCall",
2891
3127
  "rule": {
2892
- "$ref": "#/rules@50"
3128
+ "$ref": "#/rules@52"
2893
3129
  },
2894
3130
  "arguments": []
2895
3131
  }
@@ -2921,7 +3157,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2921
3157
  "terminal": {
2922
3158
  "$type": "RuleCall",
2923
3159
  "rule": {
2924
- "$ref": "#/rules@38"
3160
+ "$ref": "#/rules@40"
2925
3161
  },
2926
3162
  "arguments": []
2927
3163
  }
@@ -2940,7 +3176,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2940
3176
  "terminal": {
2941
3177
  "$type": "RuleCall",
2942
3178
  "rule": {
2943
- "$ref": "#/rules@8"
3179
+ "$ref": "#/rules@9"
2944
3180
  },
2945
3181
  "arguments": []
2946
3182
  }
@@ -2992,6 +3228,10 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2992
3228
  {
2993
3229
  "$type": "Keyword",
2994
3230
  "value": "Any"
3231
+ },
3232
+ {
3233
+ "$type": "Keyword",
3234
+ "value": "Unsupported"
2995
3235
  }
2996
3236
  ]
2997
3237
  },
@@ -3055,28 +3295,38 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3055
3295
  "wildcard": false
3056
3296
  },
3057
3297
  {
3058
- "$type": "TerminalRule",
3059
- "hidden": true,
3060
- "name": "WS",
3298
+ "$type": "ParserRule",
3299
+ "name": "Boolean",
3300
+ "dataType": "boolean",
3061
3301
  "definition": {
3062
- "$type": "RegexToken",
3063
- "regex": "\\\\s+"
3302
+ "$type": "Alternatives",
3303
+ "elements": [
3304
+ {
3305
+ "$type": "Keyword",
3306
+ "value": "true"
3307
+ },
3308
+ {
3309
+ "$type": "Keyword",
3310
+ "value": "false"
3311
+ }
3312
+ ]
3064
3313
  },
3065
- "fragment": false
3314
+ "definesHiddenTokens": false,
3315
+ "entry": false,
3316
+ "fragment": false,
3317
+ "hiddenTokens": [],
3318
+ "parameters": [],
3319
+ "wildcard": false
3066
3320
  },
3067
3321
  {
3068
3322
  "$type": "TerminalRule",
3069
- "name": "BOOLEAN",
3070
- "type": {
3071
- "$type": "ReturnType",
3072
- "name": "boolean"
3073
- },
3323
+ "hidden": true,
3324
+ "name": "WS",
3074
3325
  "definition": {
3075
3326
  "$type": "RegexToken",
3076
- "regex": "true|false"
3327
+ "regex": "\\\\s+"
3077
3328
  },
3078
- "fragment": false,
3079
- "hidden": false
3329
+ "fragment": false
3080
3330
  },
3081
3331
  {
3082
3332
  "$type": "TerminalRule",
@@ -3179,19 +3429,19 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3179
3429
  {
3180
3430
  "$type": "SimpleType",
3181
3431
  "typeRef": {
3182
- "$ref": "#/rules@35"
3432
+ "$ref": "#/rules@37"
3183
3433
  }
3184
3434
  },
3185
3435
  {
3186
3436
  "$type": "SimpleType",
3187
3437
  "typeRef": {
3188
- "$ref": "#/rules@30"
3438
+ "$ref": "#/rules@31"
3189
3439
  }
3190
3440
  },
3191
3441
  {
3192
3442
  "$type": "SimpleType",
3193
3443
  "typeRef": {
3194
- "$ref": "#/rules@33"
3444
+ "$ref": "#/rules@35"
3195
3445
  }
3196
3446
  }
3197
3447
  ]
@@ -3206,13 +3456,13 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3206
3456
  {
3207
3457
  "$type": "SimpleType",
3208
3458
  "typeRef": {
3209
- "$ref": "#/rules@29"
3459
+ "$ref": "#/rules@30"
3210
3460
  }
3211
3461
  },
3212
3462
  {
3213
3463
  "$type": "SimpleType",
3214
3464
  "typeRef": {
3215
- "$ref": "#/rules@32"
3465
+ "$ref": "#/rules@34"
3216
3466
  }
3217
3467
  }
3218
3468
  ]