@likec4/language-server 0.6.2 → 0.6.3

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