@zenstackhq/language 2.7.5 → 2.8.1

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.
@@ -70,7 +70,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
70
70
  "terminal": {
71
71
  "$type": "RuleCall",
72
72
  "rule": {
73
- "$ref": "#/rules@64"
73
+ "$ref": "#/rules@67"
74
74
  },
75
75
  "arguments": []
76
76
  }
@@ -126,21 +126,28 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
126
126
  {
127
127
  "$type": "RuleCall",
128
128
  "rule": {
129
- "$ref": "#/rules@41"
129
+ "$ref": "#/rules@40"
130
130
  },
131
131
  "arguments": []
132
132
  },
133
133
  {
134
134
  "$type": "RuleCall",
135
135
  "rule": {
136
- "$ref": "#/rules@43"
136
+ "$ref": "#/rules@44"
137
+ },
138
+ "arguments": []
139
+ },
140
+ {
141
+ "$type": "RuleCall",
142
+ "rule": {
143
+ "$ref": "#/rules@46"
137
144
  },
138
145
  "arguments": []
139
146
  },
140
147
  {
141
148
  "$type": "RuleCall",
142
149
  "rule": {
143
- "$ref": "#/rules@48"
150
+ "$ref": "#/rules@51"
144
151
  },
145
152
  "arguments": []
146
153
  }
@@ -162,7 +169,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
162
169
  {
163
170
  "$type": "RuleCall",
164
171
  "rule": {
165
- "$ref": "#/rules@66"
172
+ "$ref": "#/rules@69"
166
173
  },
167
174
  "arguments": [],
168
175
  "cardinality": "*"
@@ -178,7 +185,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
178
185
  "terminal": {
179
186
  "$type": "RuleCall",
180
187
  "rule": {
181
- "$ref": "#/rules@46"
188
+ "$ref": "#/rules@49"
182
189
  },
183
190
  "arguments": []
184
191
  }
@@ -222,7 +229,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
222
229
  {
223
230
  "$type": "RuleCall",
224
231
  "rule": {
225
- "$ref": "#/rules@66"
232
+ "$ref": "#/rules@69"
226
233
  },
227
234
  "arguments": [],
228
235
  "cardinality": "*"
@@ -238,7 +245,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
238
245
  "terminal": {
239
246
  "$type": "RuleCall",
240
247
  "rule": {
241
- "$ref": "#/rules@46"
248
+ "$ref": "#/rules@49"
242
249
  },
243
250
  "arguments": []
244
251
  }
@@ -282,7 +289,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
282
289
  {
283
290
  "$type": "RuleCall",
284
291
  "rule": {
285
- "$ref": "#/rules@66"
292
+ "$ref": "#/rules@69"
286
293
  },
287
294
  "arguments": [],
288
295
  "cardinality": "*"
@@ -294,7 +301,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
294
301
  "terminal": {
295
302
  "$type": "RuleCall",
296
303
  "rule": {
297
- "$ref": "#/rules@46"
304
+ "$ref": "#/rules@49"
298
305
  },
299
306
  "arguments": []
300
307
  }
@@ -333,7 +340,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
333
340
  {
334
341
  "$type": "RuleCall",
335
342
  "rule": {
336
- "$ref": "#/rules@66"
343
+ "$ref": "#/rules@69"
337
344
  },
338
345
  "arguments": [],
339
346
  "cardinality": "*"
@@ -349,7 +356,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
349
356
  "terminal": {
350
357
  "$type": "RuleCall",
351
358
  "rule": {
352
- "$ref": "#/rules@46"
359
+ "$ref": "#/rules@49"
353
360
  },
354
361
  "arguments": []
355
362
  }
@@ -393,7 +400,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
393
400
  {
394
401
  "$type": "RuleCall",
395
402
  "rule": {
396
- "$ref": "#/rules@66"
403
+ "$ref": "#/rules@69"
397
404
  },
398
405
  "arguments": [],
399
406
  "cardinality": "*"
@@ -405,7 +412,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
405
412
  "terminal": {
406
413
  "$type": "RuleCall",
407
414
  "rule": {
408
- "$ref": "#/rules@46"
415
+ "$ref": "#/rules@49"
409
416
  },
410
417
  "arguments": []
411
418
  }
@@ -481,7 +488,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
481
488
  "terminal": {
482
489
  "$type": "RuleCall",
483
490
  "rule": {
484
- "$ref": "#/rules@65"
491
+ "$ref": "#/rules@68"
485
492
  },
486
493
  "arguments": []
487
494
  }
@@ -503,7 +510,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
503
510
  "terminal": {
504
511
  "$type": "RuleCall",
505
512
  "rule": {
506
- "$ref": "#/rules@64"
513
+ "$ref": "#/rules@67"
507
514
  },
508
515
  "arguments": []
509
516
  }
@@ -525,7 +532,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
525
532
  "terminal": {
526
533
  "$type": "RuleCall",
527
534
  "rule": {
528
- "$ref": "#/rules@58"
535
+ "$ref": "#/rules@61"
529
536
  },
530
537
  "arguments": []
531
538
  }
@@ -649,7 +656,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
649
656
  "terminal": {
650
657
  "$type": "RuleCall",
651
658
  "rule": {
652
- "$ref": "#/rules@63"
659
+ "$ref": "#/rules@66"
653
660
  },
654
661
  "arguments": []
655
662
  }
@@ -747,7 +754,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
747
754
  "terminal": {
748
755
  "$type": "RuleCall",
749
756
  "rule": {
750
- "$ref": "#/rules@63"
757
+ "$ref": "#/rules@66"
751
758
  },
752
759
  "arguments": []
753
760
  }
@@ -956,7 +963,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
956
963
  "terminal": {
957
964
  "$type": "RuleCall",
958
965
  "rule": {
959
- "$ref": "#/rules@47"
966
+ "$ref": "#/rules@50"
960
967
  },
961
968
  "arguments": []
962
969
  },
@@ -1055,7 +1062,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1055
1062
  "terminal": {
1056
1063
  "$type": "RuleCall",
1057
1064
  "rule": {
1058
- "$ref": "#/rules@63"
1065
+ "$ref": "#/rules@66"
1059
1066
  },
1060
1067
  "arguments": []
1061
1068
  }
@@ -1169,14 +1176,14 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1169
1176
  {
1170
1177
  "$type": "RuleCall",
1171
1178
  "rule": {
1172
- "$ref": "#/rules@46"
1179
+ "$ref": "#/rules@49"
1173
1180
  },
1174
1181
  "arguments": []
1175
1182
  },
1176
1183
  {
1177
1184
  "$type": "RuleCall",
1178
1185
  "rule": {
1179
- "$ref": "#/rules@64"
1186
+ "$ref": "#/rules@67"
1180
1187
  },
1181
1188
  "arguments": []
1182
1189
  }
@@ -1221,7 +1228,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1221
1228
  "terminal": {
1222
1229
  "$type": "CrossReference",
1223
1230
  "type": {
1224
- "$ref": "#/rules@43"
1231
+ "$ref": "#/rules@46"
1225
1232
  },
1226
1233
  "deprecatedSyntax": false
1227
1234
  }
@@ -1894,7 +1901,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1894
1901
  "terminal": {
1895
1902
  "$type": "RuleCall",
1896
1903
  "rule": {
1897
- "$ref": "#/rules@66"
1904
+ "$ref": "#/rules@69"
1898
1905
  },
1899
1906
  "arguments": []
1900
1907
  },
@@ -1927,7 +1934,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1927
1934
  "terminal": {
1928
1935
  "$type": "RuleCall",
1929
1936
  "rule": {
1930
- "$ref": "#/rules@46"
1937
+ "$ref": "#/rules@49"
1931
1938
  },
1932
1939
  "arguments": []
1933
1940
  }
@@ -1997,7 +2004,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
1997
2004
  "terminal": {
1998
2005
  "$type": "RuleCall",
1999
2006
  "rule": {
2000
- "$ref": "#/rules@46"
2007
+ "$ref": "#/rules@49"
2001
2008
  },
2002
2009
  "arguments": []
2003
2010
  }
@@ -2032,7 +2039,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2032
2039
  "terminal": {
2033
2040
  "$type": "RuleCall",
2034
2041
  "rule": {
2035
- "$ref": "#/rules@52"
2042
+ "$ref": "#/rules@55"
2036
2043
  },
2037
2044
  "arguments": []
2038
2045
  }
@@ -2066,7 +2073,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2066
2073
  "terminal": {
2067
2074
  "$type": "RuleCall",
2068
2075
  "rule": {
2069
- "$ref": "#/rules@66"
2076
+ "$ref": "#/rules@69"
2070
2077
  },
2071
2078
  "arguments": []
2072
2079
  },
@@ -2079,7 +2086,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2079
2086
  "terminal": {
2080
2087
  "$type": "RuleCall",
2081
2088
  "rule": {
2082
- "$ref": "#/rules@47"
2089
+ "$ref": "#/rules@50"
2083
2090
  },
2084
2091
  "arguments": []
2085
2092
  }
@@ -2103,7 +2110,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2103
2110
  "terminal": {
2104
2111
  "$type": "RuleCall",
2105
2112
  "rule": {
2106
- "$ref": "#/rules@51"
2113
+ "$ref": "#/rules@54"
2107
2114
  },
2108
2115
  "arguments": []
2109
2116
  },
@@ -2134,7 +2141,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2134
2141
  "terminal": {
2135
2142
  "$type": "RuleCall",
2136
2143
  "rule": {
2137
- "$ref": "#/rules@57"
2144
+ "$ref": "#/rules@60"
2138
2145
  },
2139
2146
  "arguments": []
2140
2147
  }
@@ -2146,7 +2153,217 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2146
2153
  "terminal": {
2147
2154
  "$type": "RuleCall",
2148
2155
  "rule": {
2149
- "$ref": "#/rules@40"
2156
+ "$ref": "#/rules@43"
2157
+ },
2158
+ "arguments": []
2159
+ }
2160
+ },
2161
+ {
2162
+ "$type": "Assignment",
2163
+ "feature": "reference",
2164
+ "operator": "=",
2165
+ "terminal": {
2166
+ "$type": "CrossReference",
2167
+ "type": {
2168
+ "$ref": "#/types@2"
2169
+ },
2170
+ "terminal": {
2171
+ "$type": "RuleCall",
2172
+ "rule": {
2173
+ "$ref": "#/rules@49"
2174
+ },
2175
+ "arguments": []
2176
+ },
2177
+ "deprecatedSyntax": false
2178
+ }
2179
+ }
2180
+ ]
2181
+ },
2182
+ {
2183
+ "$type": "Group",
2184
+ "elements": [
2185
+ {
2186
+ "$type": "Assignment",
2187
+ "feature": "array",
2188
+ "operator": "?=",
2189
+ "terminal": {
2190
+ "$type": "Keyword",
2191
+ "value": "["
2192
+ }
2193
+ },
2194
+ {
2195
+ "$type": "Keyword",
2196
+ "value": "]"
2197
+ }
2198
+ ],
2199
+ "cardinality": "?"
2200
+ },
2201
+ {
2202
+ "$type": "Assignment",
2203
+ "feature": "optional",
2204
+ "operator": "?=",
2205
+ "terminal": {
2206
+ "$type": "Keyword",
2207
+ "value": "?"
2208
+ },
2209
+ "cardinality": "?"
2210
+ }
2211
+ ]
2212
+ },
2213
+ "definesHiddenTokens": false,
2214
+ "entry": false,
2215
+ "fragment": false,
2216
+ "hiddenTokens": [],
2217
+ "parameters": [],
2218
+ "wildcard": false
2219
+ },
2220
+ {
2221
+ "$type": "ParserRule",
2222
+ "name": "TypeDef",
2223
+ "definition": {
2224
+ "$type": "Group",
2225
+ "elements": [
2226
+ {
2227
+ "$type": "Assignment",
2228
+ "feature": "comments",
2229
+ "operator": "+=",
2230
+ "terminal": {
2231
+ "$type": "RuleCall",
2232
+ "rule": {
2233
+ "$ref": "#/rules@69"
2234
+ },
2235
+ "arguments": []
2236
+ },
2237
+ "cardinality": "*"
2238
+ },
2239
+ {
2240
+ "$type": "Keyword",
2241
+ "value": "type"
2242
+ },
2243
+ {
2244
+ "$type": "Assignment",
2245
+ "feature": "name",
2246
+ "operator": "=",
2247
+ "terminal": {
2248
+ "$type": "RuleCall",
2249
+ "rule": {
2250
+ "$ref": "#/rules@49"
2251
+ },
2252
+ "arguments": []
2253
+ }
2254
+ },
2255
+ {
2256
+ "$type": "Keyword",
2257
+ "value": "{"
2258
+ },
2259
+ {
2260
+ "$type": "Assignment",
2261
+ "feature": "fields",
2262
+ "operator": "+=",
2263
+ "terminal": {
2264
+ "$type": "RuleCall",
2265
+ "rule": {
2266
+ "$ref": "#/rules@41"
2267
+ },
2268
+ "arguments": []
2269
+ },
2270
+ "cardinality": "*"
2271
+ },
2272
+ {
2273
+ "$type": "Keyword",
2274
+ "value": "}"
2275
+ }
2276
+ ]
2277
+ },
2278
+ "definesHiddenTokens": false,
2279
+ "entry": false,
2280
+ "fragment": false,
2281
+ "hiddenTokens": [],
2282
+ "parameters": [],
2283
+ "wildcard": false
2284
+ },
2285
+ {
2286
+ "$type": "ParserRule",
2287
+ "name": "TypeDefField",
2288
+ "definition": {
2289
+ "$type": "Group",
2290
+ "elements": [
2291
+ {
2292
+ "$type": "Assignment",
2293
+ "feature": "comments",
2294
+ "operator": "+=",
2295
+ "terminal": {
2296
+ "$type": "RuleCall",
2297
+ "rule": {
2298
+ "$ref": "#/rules@69"
2299
+ },
2300
+ "arguments": []
2301
+ },
2302
+ "cardinality": "*"
2303
+ },
2304
+ {
2305
+ "$type": "Assignment",
2306
+ "feature": "name",
2307
+ "operator": "=",
2308
+ "terminal": {
2309
+ "$type": "RuleCall",
2310
+ "rule": {
2311
+ "$ref": "#/rules@50"
2312
+ },
2313
+ "arguments": []
2314
+ }
2315
+ },
2316
+ {
2317
+ "$type": "Assignment",
2318
+ "feature": "type",
2319
+ "operator": "=",
2320
+ "terminal": {
2321
+ "$type": "RuleCall",
2322
+ "rule": {
2323
+ "$ref": "#/rules@42"
2324
+ },
2325
+ "arguments": []
2326
+ }
2327
+ },
2328
+ {
2329
+ "$type": "Assignment",
2330
+ "feature": "attributes",
2331
+ "operator": "+=",
2332
+ "terminal": {
2333
+ "$type": "RuleCall",
2334
+ "rule": {
2335
+ "$ref": "#/rules@54"
2336
+ },
2337
+ "arguments": []
2338
+ },
2339
+ "cardinality": "*"
2340
+ }
2341
+ ]
2342
+ },
2343
+ "definesHiddenTokens": false,
2344
+ "entry": false,
2345
+ "fragment": false,
2346
+ "hiddenTokens": [],
2347
+ "parameters": [],
2348
+ "wildcard": false
2349
+ },
2350
+ {
2351
+ "$type": "ParserRule",
2352
+ "name": "TypeDefFieldType",
2353
+ "definition": {
2354
+ "$type": "Group",
2355
+ "elements": [
2356
+ {
2357
+ "$type": "Alternatives",
2358
+ "elements": [
2359
+ {
2360
+ "$type": "Assignment",
2361
+ "feature": "type",
2362
+ "operator": "=",
2363
+ "terminal": {
2364
+ "$type": "RuleCall",
2365
+ "rule": {
2366
+ "$ref": "#/rules@60"
2150
2367
  },
2151
2368
  "arguments": []
2152
2369
  }
@@ -2163,7 +2380,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2163
2380
  "terminal": {
2164
2381
  "$type": "RuleCall",
2165
2382
  "rule": {
2166
- "$ref": "#/rules@46"
2383
+ "$ref": "#/rules@49"
2167
2384
  },
2168
2385
  "arguments": []
2169
2386
  },
@@ -2262,7 +2479,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2262
2479
  "terminal": {
2263
2480
  "$type": "RuleCall",
2264
2481
  "rule": {
2265
- "$ref": "#/rules@66"
2482
+ "$ref": "#/rules@69"
2266
2483
  },
2267
2484
  "arguments": []
2268
2485
  },
@@ -2279,7 +2496,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2279
2496
  "terminal": {
2280
2497
  "$type": "RuleCall",
2281
2498
  "rule": {
2282
- "$ref": "#/rules@46"
2499
+ "$ref": "#/rules@49"
2283
2500
  },
2284
2501
  "arguments": []
2285
2502
  }
@@ -2298,7 +2515,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2298
2515
  "terminal": {
2299
2516
  "$type": "RuleCall",
2300
2517
  "rule": {
2301
- "$ref": "#/rules@42"
2518
+ "$ref": "#/rules@45"
2302
2519
  },
2303
2520
  "arguments": []
2304
2521
  }
@@ -2310,7 +2527,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2310
2527
  "terminal": {
2311
2528
  "$type": "RuleCall",
2312
2529
  "rule": {
2313
- "$ref": "#/rules@52"
2530
+ "$ref": "#/rules@55"
2314
2531
  },
2315
2532
  "arguments": []
2316
2533
  }
@@ -2344,7 +2561,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2344
2561
  "terminal": {
2345
2562
  "$type": "RuleCall",
2346
2563
  "rule": {
2347
- "$ref": "#/rules@66"
2564
+ "$ref": "#/rules@69"
2348
2565
  },
2349
2566
  "arguments": []
2350
2567
  },
@@ -2357,7 +2574,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2357
2574
  "terminal": {
2358
2575
  "$type": "RuleCall",
2359
2576
  "rule": {
2360
- "$ref": "#/rules@47"
2577
+ "$ref": "#/rules@50"
2361
2578
  },
2362
2579
  "arguments": []
2363
2580
  }
@@ -2369,7 +2586,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2369
2586
  "terminal": {
2370
2587
  "$type": "RuleCall",
2371
2588
  "rule": {
2372
- "$ref": "#/rules@51"
2589
+ "$ref": "#/rules@54"
2373
2590
  },
2374
2591
  "arguments": []
2375
2592
  },
@@ -2393,7 +2610,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2393
2610
  {
2394
2611
  "$type": "RuleCall",
2395
2612
  "rule": {
2396
- "$ref": "#/rules@66"
2613
+ "$ref": "#/rules@69"
2397
2614
  },
2398
2615
  "arguments": [],
2399
2616
  "cardinality": "*"
@@ -2409,7 +2626,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2409
2626
  "terminal": {
2410
2627
  "$type": "RuleCall",
2411
2628
  "rule": {
2412
- "$ref": "#/rules@46"
2629
+ "$ref": "#/rules@49"
2413
2630
  },
2414
2631
  "arguments": []
2415
2632
  }
@@ -2428,7 +2645,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2428
2645
  "terminal": {
2429
2646
  "$type": "RuleCall",
2430
2647
  "rule": {
2431
- "$ref": "#/rules@44"
2648
+ "$ref": "#/rules@47"
2432
2649
  },
2433
2650
  "arguments": []
2434
2651
  }
@@ -2447,7 +2664,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2447
2664
  "terminal": {
2448
2665
  "$type": "RuleCall",
2449
2666
  "rule": {
2450
- "$ref": "#/rules@44"
2667
+ "$ref": "#/rules@47"
2451
2668
  },
2452
2669
  "arguments": []
2453
2670
  }
@@ -2473,7 +2690,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2473
2690
  "terminal": {
2474
2691
  "$type": "RuleCall",
2475
2692
  "rule": {
2476
- "$ref": "#/rules@45"
2693
+ "$ref": "#/rules@48"
2477
2694
  },
2478
2695
  "arguments": []
2479
2696
  }
@@ -2506,7 +2723,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2506
2723
  "terminal": {
2507
2724
  "$type": "RuleCall",
2508
2725
  "rule": {
2509
- "$ref": "#/rules@53"
2726
+ "$ref": "#/rules@56"
2510
2727
  },
2511
2728
  "arguments": []
2512
2729
  },
@@ -2530,7 +2747,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2530
2747
  {
2531
2748
  "$type": "RuleCall",
2532
2749
  "rule": {
2533
- "$ref": "#/rules@66"
2750
+ "$ref": "#/rules@69"
2534
2751
  },
2535
2752
  "arguments": [],
2536
2753
  "cardinality": "*"
@@ -2542,7 +2759,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2542
2759
  "terminal": {
2543
2760
  "$type": "RuleCall",
2544
2761
  "rule": {
2545
- "$ref": "#/rules@46"
2762
+ "$ref": "#/rules@49"
2546
2763
  },
2547
2764
  "arguments": []
2548
2765
  }
@@ -2558,7 +2775,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2558
2775
  "terminal": {
2559
2776
  "$type": "RuleCall",
2560
2777
  "rule": {
2561
- "$ref": "#/rules@45"
2778
+ "$ref": "#/rules@48"
2562
2779
  },
2563
2780
  "arguments": []
2564
2781
  }
@@ -2598,7 +2815,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2598
2815
  "terminal": {
2599
2816
  "$type": "RuleCall",
2600
2817
  "rule": {
2601
- "$ref": "#/rules@56"
2818
+ "$ref": "#/rules@59"
2602
2819
  },
2603
2820
  "arguments": []
2604
2821
  }
@@ -2610,12 +2827,12 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2610
2827
  "terminal": {
2611
2828
  "$type": "CrossReference",
2612
2829
  "type": {
2613
- "$ref": "#/types@1"
2830
+ "$ref": "#/types@2"
2614
2831
  },
2615
2832
  "terminal": {
2616
2833
  "$type": "RuleCall",
2617
2834
  "rule": {
2618
- "$ref": "#/rules@46"
2835
+ "$ref": "#/rules@49"
2619
2836
  },
2620
2837
  "arguments": []
2621
2838
  },
@@ -2662,7 +2879,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2662
2879
  {
2663
2880
  "$type": "RuleCall",
2664
2881
  "rule": {
2665
- "$ref": "#/rules@63"
2882
+ "$ref": "#/rules@66"
2666
2883
  },
2667
2884
  "arguments": []
2668
2885
  },
@@ -2701,6 +2918,10 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2701
2918
  {
2702
2919
  "$type": "Keyword",
2703
2920
  "value": "import"
2921
+ },
2922
+ {
2923
+ "$type": "Keyword",
2924
+ "value": "type"
2704
2925
  }
2705
2926
  ]
2706
2927
  },
@@ -2721,7 +2942,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2721
2942
  {
2722
2943
  "$type": "RuleCall",
2723
2944
  "rule": {
2724
- "$ref": "#/rules@46"
2945
+ "$ref": "#/rules@49"
2725
2946
  },
2726
2947
  "arguments": []
2727
2948
  },
@@ -2799,7 +3020,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2799
3020
  "terminal": {
2800
3021
  "$type": "RuleCall",
2801
3022
  "rule": {
2802
- "$ref": "#/rules@66"
3023
+ "$ref": "#/rules@69"
2803
3024
  },
2804
3025
  "arguments": []
2805
3026
  },
@@ -2819,21 +3040,21 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2819
3040
  {
2820
3041
  "$type": "RuleCall",
2821
3042
  "rule": {
2822
- "$ref": "#/rules@60"
3043
+ "$ref": "#/rules@63"
2823
3044
  },
2824
3045
  "arguments": []
2825
3046
  },
2826
3047
  {
2827
3048
  "$type": "RuleCall",
2828
3049
  "rule": {
2829
- "$ref": "#/rules@61"
3050
+ "$ref": "#/rules@64"
2830
3051
  },
2831
3052
  "arguments": []
2832
3053
  },
2833
3054
  {
2834
3055
  "$type": "RuleCall",
2835
3056
  "rule": {
2836
- "$ref": "#/rules@62"
3057
+ "$ref": "#/rules@65"
2837
3058
  },
2838
3059
  "arguments": []
2839
3060
  }
@@ -2854,7 +3075,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2854
3075
  "terminal": {
2855
3076
  "$type": "RuleCall",
2856
3077
  "rule": {
2857
- "$ref": "#/rules@49"
3078
+ "$ref": "#/rules@52"
2858
3079
  },
2859
3080
  "arguments": []
2860
3081
  }
@@ -2873,7 +3094,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2873
3094
  "terminal": {
2874
3095
  "$type": "RuleCall",
2875
3096
  "rule": {
2876
- "$ref": "#/rules@49"
3097
+ "$ref": "#/rules@52"
2877
3098
  },
2878
3099
  "arguments": []
2879
3100
  }
@@ -2895,7 +3116,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2895
3116
  "terminal": {
2896
3117
  "$type": "RuleCall",
2897
3118
  "rule": {
2898
- "$ref": "#/rules@53"
3119
+ "$ref": "#/rules@56"
2899
3120
  },
2900
3121
  "arguments": []
2901
3122
  },
@@ -2923,7 +3144,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2923
3144
  "terminal": {
2924
3145
  "$type": "RuleCall",
2925
3146
  "rule": {
2926
- "$ref": "#/rules@66"
3147
+ "$ref": "#/rules@69"
2927
3148
  },
2928
3149
  "arguments": []
2929
3150
  },
@@ -2946,7 +3167,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2946
3167
  "terminal": {
2947
3168
  "$type": "RuleCall",
2948
3169
  "rule": {
2949
- "$ref": "#/rules@46"
3170
+ "$ref": "#/rules@49"
2950
3171
  },
2951
3172
  "arguments": []
2952
3173
  }
@@ -2962,7 +3183,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2962
3183
  "terminal": {
2963
3184
  "$type": "RuleCall",
2964
3185
  "rule": {
2965
- "$ref": "#/rules@50"
3186
+ "$ref": "#/rules@53"
2966
3187
  },
2967
3188
  "arguments": []
2968
3189
  }
@@ -2974,7 +3195,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
2974
3195
  "terminal": {
2975
3196
  "$type": "RuleCall",
2976
3197
  "rule": {
2977
- "$ref": "#/rules@53"
3198
+ "$ref": "#/rules@56"
2978
3199
  },
2979
3200
  "arguments": []
2980
3201
  },
@@ -3008,7 +3229,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3008
3229
  {
3009
3230
  "$type": "RuleCall",
3010
3231
  "rule": {
3011
- "$ref": "#/rules@56"
3232
+ "$ref": "#/rules@59"
3012
3233
  },
3013
3234
  "arguments": []
3014
3235
  },
@@ -3034,12 +3255,12 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3034
3255
  "terminal": {
3035
3256
  "$type": "CrossReference",
3036
3257
  "type": {
3037
- "$ref": "#/types@1"
3258
+ "$ref": "#/types@2"
3038
3259
  },
3039
3260
  "terminal": {
3040
3261
  "$type": "RuleCall",
3041
3262
  "rule": {
3042
- "$ref": "#/rules@46"
3263
+ "$ref": "#/rules@49"
3043
3264
  },
3044
3265
  "arguments": []
3045
3266
  },
@@ -3099,12 +3320,12 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3099
3320
  "terminal": {
3100
3321
  "$type": "CrossReference",
3101
3322
  "type": {
3102
- "$ref": "#/rules@48"
3323
+ "$ref": "#/rules@51"
3103
3324
  },
3104
3325
  "terminal": {
3105
3326
  "$type": "RuleCall",
3106
3327
  "rule": {
3107
- "$ref": "#/rules@62"
3328
+ "$ref": "#/rules@65"
3108
3329
  },
3109
3330
  "arguments": []
3110
3331
  },
@@ -3121,7 +3342,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3121
3342
  {
3122
3343
  "$type": "RuleCall",
3123
3344
  "rule": {
3124
- "$ref": "#/rules@54"
3345
+ "$ref": "#/rules@57"
3125
3346
  },
3126
3347
  "arguments": [],
3127
3348
  "cardinality": "?"
@@ -3151,7 +3372,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3151
3372
  {
3152
3373
  "$type": "RuleCall",
3153
3374
  "rule": {
3154
- "$ref": "#/rules@66"
3375
+ "$ref": "#/rules@69"
3155
3376
  },
3156
3377
  "arguments": [],
3157
3378
  "cardinality": "*"
@@ -3163,12 +3384,12 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3163
3384
  "terminal": {
3164
3385
  "$type": "CrossReference",
3165
3386
  "type": {
3166
- "$ref": "#/rules@48"
3387
+ "$ref": "#/rules@51"
3167
3388
  },
3168
3389
  "terminal": {
3169
3390
  "$type": "RuleCall",
3170
3391
  "rule": {
3171
- "$ref": "#/rules@61"
3392
+ "$ref": "#/rules@64"
3172
3393
  },
3173
3394
  "arguments": []
3174
3395
  },
@@ -3185,7 +3406,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3185
3406
  {
3186
3407
  "$type": "RuleCall",
3187
3408
  "rule": {
3188
- "$ref": "#/rules@54"
3409
+ "$ref": "#/rules@57"
3189
3410
  },
3190
3411
  "arguments": [],
3191
3412
  "cardinality": "?"
@@ -3219,12 +3440,12 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3219
3440
  "terminal": {
3220
3441
  "$type": "CrossReference",
3221
3442
  "type": {
3222
- "$ref": "#/rules@48"
3443
+ "$ref": "#/rules@51"
3223
3444
  },
3224
3445
  "terminal": {
3225
3446
  "$type": "RuleCall",
3226
3447
  "rule": {
3227
- "$ref": "#/rules@60"
3448
+ "$ref": "#/rules@63"
3228
3449
  },
3229
3450
  "arguments": []
3230
3451
  },
@@ -3241,7 +3462,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3241
3462
  {
3242
3463
  "$type": "RuleCall",
3243
3464
  "rule": {
3244
- "$ref": "#/rules@54"
3465
+ "$ref": "#/rules@57"
3245
3466
  },
3246
3467
  "arguments": [],
3247
3468
  "cardinality": "?"
@@ -3276,7 +3497,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3276
3497
  "terminal": {
3277
3498
  "$type": "RuleCall",
3278
3499
  "rule": {
3279
- "$ref": "#/rules@55"
3500
+ "$ref": "#/rules@58"
3280
3501
  },
3281
3502
  "arguments": []
3282
3503
  }
@@ -3295,7 +3516,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3295
3516
  "terminal": {
3296
3517
  "$type": "RuleCall",
3297
3518
  "rule": {
3298
- "$ref": "#/rules@55"
3519
+ "$ref": "#/rules@58"
3299
3520
  },
3300
3521
  "arguments": []
3301
3522
  }
@@ -3327,7 +3548,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3327
3548
  "terminal": {
3328
3549
  "$type": "RuleCall",
3329
3550
  "rule": {
3330
- "$ref": "#/rules@46"
3551
+ "$ref": "#/rules@49"
3331
3552
  },
3332
3553
  "arguments": []
3333
3554
  }
@@ -3599,7 +3820,7 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3599
3820
  {
3600
3821
  "$type": "SimpleType",
3601
3822
  "typeRef": {
3602
- "$ref": "#/rules@44"
3823
+ "$ref": "#/rules@47"
3603
3824
  }
3604
3825
  },
3605
3826
  {
@@ -3611,7 +3832,28 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3611
3832
  {
3612
3833
  "$type": "SimpleType",
3613
3834
  "typeRef": {
3614
- "$ref": "#/rules@42"
3835
+ "$ref": "#/rules@45"
3836
+ }
3837
+ }
3838
+ ]
3839
+ }
3840
+ },
3841
+ {
3842
+ "$type": "Type",
3843
+ "name": "TypeDefFieldTypes",
3844
+ "type": {
3845
+ "$type": "UnionType",
3846
+ "types": [
3847
+ {
3848
+ "$type": "SimpleType",
3849
+ "typeRef": {
3850
+ "$ref": "#/rules@40"
3851
+ }
3852
+ },
3853
+ {
3854
+ "$type": "SimpleType",
3855
+ "typeRef": {
3856
+ "$ref": "#/rules@44"
3615
3857
  }
3616
3858
  }
3617
3859
  ]
@@ -3632,7 +3874,13 @@ const ZModelGrammar = () => loadedZModelGrammar !== null && loadedZModelGrammar
3632
3874
  {
3633
3875
  "$type": "SimpleType",
3634
3876
  "typeRef": {
3635
- "$ref": "#/rules@41"
3877
+ "$ref": "#/rules@40"
3878
+ }
3879
+ },
3880
+ {
3881
+ "$type": "SimpleType",
3882
+ "typeRef": {
3883
+ "$ref": "#/rules@44"
3636
3884
  }
3637
3885
  }
3638
3886
  ]