@likec4/language-server 0.37.1 → 0.41.0

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 (60) hide show
  1. package/contrib/likec4.monarch.ts +5 -5
  2. package/contrib/likec4.tmLanguage.json +1 -1
  3. package/dist/Rpc.d.ts +7 -0
  4. package/dist/Rpc.js +130 -0
  5. package/dist/ast.d.ts +20 -0
  6. package/dist/ast.js +169 -141
  7. package/dist/elementRef.js +31 -44
  8. package/dist/generated/ast.d.ts +48 -7
  9. package/dist/generated/ast.js +344 -315
  10. package/dist/generated/grammar.js +2 -3177
  11. package/dist/generated/module.js +13 -18
  12. package/dist/index.js +2 -3
  13. package/dist/logger.js +39 -42
  14. package/dist/lsp/CodeLensProvider.js +28 -32
  15. package/dist/lsp/DocumentLinkProvider.js +26 -33
  16. package/dist/lsp/DocumentSymbolProvider.js +165 -167
  17. package/dist/lsp/HoverProvider.js +35 -48
  18. package/dist/lsp/SemanticTokenProvider.js +160 -201
  19. package/dist/lsp/index.js +5 -6
  20. package/dist/model/fqn-computation.js +39 -40
  21. package/dist/model/fqn-index.js +117 -141
  22. package/dist/model/index.js +5 -6
  23. package/dist/model/model-builder.d.ts +10 -5
  24. package/dist/model/model-builder.js +247 -176
  25. package/dist/model/model-locator.d.ts +1 -1
  26. package/dist/model/model-locator.js +102 -100
  27. package/dist/model/model-parser.d.ts +2 -6
  28. package/dist/model/model-parser.js +284 -286
  29. package/dist/module.d.ts +4 -1
  30. package/dist/module.js +69 -60
  31. package/dist/protocol.d.ts +16 -19
  32. package/dist/protocol.js +14 -22
  33. package/dist/references/index.js +2 -3
  34. package/dist/references/scope-computation.js +72 -69
  35. package/dist/references/scope-provider.js +126 -116
  36. package/dist/shared/WorkspaceManager.d.ts +2 -3
  37. package/dist/shared/WorkspaceManager.js +13 -16
  38. package/dist/shared/index.js +1 -2
  39. package/dist/test/index.js +1 -2
  40. package/dist/test/testServices.js +73 -61
  41. package/dist/utils.d.ts +1 -0
  42. package/dist/utils.js +4 -3
  43. package/dist/validation/element.d.ts +1 -0
  44. package/dist/validation/element.js +31 -38
  45. package/dist/validation/index.js +37 -46
  46. package/dist/validation/relation.js +46 -46
  47. package/dist/validation/specification.d.ts +1 -0
  48. package/dist/validation/specification.js +33 -30
  49. package/dist/validation/view.js +16 -22
  50. package/dist/view-utils/assignNavigateTo.d.ts +3 -0
  51. package/dist/view-utils/assignNavigateTo.js +20 -0
  52. package/dist/view-utils/index.d.ts +4 -0
  53. package/dist/view-utils/index.js +3 -0
  54. package/dist/view-utils/resolve-extended-views.d.ts +7 -0
  55. package/dist/view-utils/resolve-extended-views.js +41 -0
  56. package/dist/view-utils/resolve-relative-paths.d.ts +3 -0
  57. package/dist/view-utils/resolve-relative-paths.js +76 -0
  58. package/package.json +33 -18
  59. package/dist/registerProtocolHandlers.d.ts +0 -3
  60. package/dist/registerProtocolHandlers.js +0 -112
@@ -1,3178 +1,3 @@
1
- /******************************************************************************
2
- * This file was generated by langium-cli 2.0.1.
3
- * DO NOT EDIT MANUALLY!
4
- ******************************************************************************/
5
- import { loadGrammarFromJson } from 'langium';
1
+ import { loadGrammarFromJson } from "langium";
6
2
  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@3"
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@6"
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@22"
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": "ElementKind",
69
- "definition": {
70
- "$type": "Assignment",
71
- "feature": "name",
72
- "operator": "=",
73
- "terminal": {
74
- "$type": "RuleCall",
75
- "rule": {
76
- "$ref": "#/rules@43"
77
- },
78
- "arguments": []
79
- }
80
- },
81
- "definesHiddenTokens": false,
82
- "entry": false,
83
- "fragment": false,
84
- "hiddenTokens": [],
85
- "parameters": [],
86
- "wildcard": false
87
- },
88
- {
89
- "$type": "ParserRule",
90
- "name": "Tag",
91
- "definition": {
92
- "$type": "Assignment",
93
- "feature": "name",
94
- "operator": "=",
95
- "terminal": {
96
- "$type": "RuleCall",
97
- "rule": {
98
- "$ref": "#/rules@43"
99
- },
100
- "arguments": []
101
- }
102
- },
103
- "definesHiddenTokens": false,
104
- "entry": false,
105
- "fragment": false,
106
- "hiddenTokens": [],
107
- "parameters": [],
108
- "wildcard": false
109
- },
110
- {
111
- "$type": "ParserRule",
112
- "name": "SpecificationRule",
113
- "definition": {
114
- "$type": "Group",
115
- "elements": [
116
- {
117
- "$type": "Assignment",
118
- "feature": "name",
119
- "operator": "=",
120
- "terminal": {
121
- "$type": "Keyword",
122
- "value": "specification"
123
- }
124
- },
125
- {
126
- "$type": "RuleCall",
127
- "rule": {
128
- "$ref": "#/rules@60"
129
- },
130
- "arguments": []
131
- },
132
- {
133
- "$type": "Alternatives",
134
- "elements": [
135
- {
136
- "$type": "Assignment",
137
- "feature": "elements",
138
- "operator": "+=",
139
- "terminal": {
140
- "$type": "RuleCall",
141
- "rule": {
142
- "$ref": "#/rules@4"
143
- },
144
- "arguments": []
145
- }
146
- },
147
- {
148
- "$type": "Assignment",
149
- "feature": "tags",
150
- "operator": "+=",
151
- "terminal": {
152
- "$type": "RuleCall",
153
- "rule": {
154
- "$ref": "#/rules@5"
155
- },
156
- "arguments": []
157
- }
158
- }
159
- ],
160
- "cardinality": "*"
161
- },
162
- {
163
- "$type": "RuleCall",
164
- "rule": {
165
- "$ref": "#/rules@61"
166
- },
167
- "arguments": []
168
- }
169
- ]
170
- },
171
- "definesHiddenTokens": false,
172
- "entry": false,
173
- "fragment": false,
174
- "hiddenTokens": [],
175
- "parameters": [],
176
- "wildcard": false
177
- },
178
- {
179
- "$type": "ParserRule",
180
- "name": "SpecificationElementKind",
181
- "definition": {
182
- "$type": "Group",
183
- "elements": [
184
- {
185
- "$type": "Keyword",
186
- "value": "element"
187
- },
188
- {
189
- "$type": "Assignment",
190
- "feature": "kind",
191
- "operator": "=",
192
- "terminal": {
193
- "$type": "RuleCall",
194
- "rule": {
195
- "$ref": "#/rules@1"
196
- },
197
- "arguments": []
198
- }
199
- },
200
- {
201
- "$type": "Group",
202
- "elements": [
203
- {
204
- "$type": "RuleCall",
205
- "rule": {
206
- "$ref": "#/rules@60"
207
- },
208
- "arguments": []
209
- },
210
- {
211
- "$type": "Assignment",
212
- "feature": "style",
213
- "operator": "=",
214
- "terminal": {
215
- "$type": "RuleCall",
216
- "rule": {
217
- "$ref": "#/rules@39"
218
- },
219
- "arguments": []
220
- },
221
- "cardinality": "?"
222
- },
223
- {
224
- "$type": "RuleCall",
225
- "rule": {
226
- "$ref": "#/rules@61"
227
- },
228
- "arguments": []
229
- }
230
- ],
231
- "cardinality": "?"
232
- }
233
- ]
234
- },
235
- "definesHiddenTokens": false,
236
- "entry": false,
237
- "fragment": false,
238
- "hiddenTokens": [],
239
- "parameters": [],
240
- "wildcard": false
241
- },
242
- {
243
- "$type": "ParserRule",
244
- "name": "SpecificationTag",
245
- "definition": {
246
- "$type": "Group",
247
- "elements": [
248
- {
249
- "$type": "Keyword",
250
- "value": "tag"
251
- },
252
- {
253
- "$type": "Assignment",
254
- "feature": "tag",
255
- "operator": "=",
256
- "terminal": {
257
- "$type": "RuleCall",
258
- "rule": {
259
- "$ref": "#/rules@2"
260
- },
261
- "arguments": []
262
- }
263
- },
264
- {
265
- "$type": "Group",
266
- "elements": [
267
- {
268
- "$type": "RuleCall",
269
- "rule": {
270
- "$ref": "#/rules@60"
271
- },
272
- "arguments": []
273
- },
274
- {
275
- "$type": "Assignment",
276
- "feature": "style",
277
- "operator": "=",
278
- "terminal": {
279
- "$type": "RuleCall",
280
- "rule": {
281
- "$ref": "#/rules@39"
282
- },
283
- "arguments": []
284
- },
285
- "cardinality": "?"
286
- },
287
- {
288
- "$type": "RuleCall",
289
- "rule": {
290
- "$ref": "#/rules@61"
291
- },
292
- "arguments": []
293
- }
294
- ],
295
- "cardinality": "?"
296
- }
297
- ]
298
- },
299
- "definesHiddenTokens": false,
300
- "entry": false,
301
- "fragment": false,
302
- "hiddenTokens": [],
303
- "parameters": [],
304
- "wildcard": false
305
- },
306
- {
307
- "$type": "ParserRule",
308
- "name": "Model",
309
- "definition": {
310
- "$type": "Group",
311
- "elements": [
312
- {
313
- "$type": "Assignment",
314
- "feature": "name",
315
- "operator": "=",
316
- "terminal": {
317
- "$type": "Keyword",
318
- "value": "model"
319
- }
320
- },
321
- {
322
- "$type": "RuleCall",
323
- "rule": {
324
- "$ref": "#/rules@60"
325
- },
326
- "arguments": []
327
- },
328
- {
329
- "$type": "Assignment",
330
- "feature": "elements",
331
- "operator": "+=",
332
- "terminal": {
333
- "$type": "Alternatives",
334
- "elements": [
335
- {
336
- "$type": "RuleCall",
337
- "rule": {
338
- "$ref": "#/rules@7"
339
- },
340
- "arguments": []
341
- },
342
- {
343
- "$type": "RuleCall",
344
- "rule": {
345
- "$ref": "#/rules@11"
346
- },
347
- "arguments": []
348
- },
349
- {
350
- "$type": "RuleCall",
351
- "rule": {
352
- "$ref": "#/rules@19"
353
- },
354
- "arguments": []
355
- }
356
- ]
357
- },
358
- "cardinality": "*"
359
- },
360
- {
361
- "$type": "RuleCall",
362
- "rule": {
363
- "$ref": "#/rules@61"
364
- },
365
- "arguments": []
366
- }
367
- ]
368
- },
369
- "definesHiddenTokens": false,
370
- "entry": false,
371
- "fragment": false,
372
- "hiddenTokens": [],
373
- "parameters": [],
374
- "wildcard": false
375
- },
376
- {
377
- "$type": "ParserRule",
378
- "name": "Element",
379
- "definition": {
380
- "$type": "Group",
381
- "elements": [
382
- {
383
- "$type": "Alternatives",
384
- "elements": [
385
- {
386
- "$type": "Group",
387
- "elements": [
388
- {
389
- "$type": "Assignment",
390
- "feature": "kind",
391
- "operator": "=",
392
- "terminal": {
393
- "$type": "CrossReference",
394
- "type": {
395
- "$ref": "#/rules@1"
396
- },
397
- "terminal": {
398
- "$type": "RuleCall",
399
- "rule": {
400
- "$ref": "#/rules@43"
401
- },
402
- "arguments": []
403
- },
404
- "deprecatedSyntax": false
405
- }
406
- },
407
- {
408
- "$type": "Assignment",
409
- "feature": "name",
410
- "operator": "=",
411
- "terminal": {
412
- "$type": "RuleCall",
413
- "rule": {
414
- "$ref": "#/rules@43"
415
- },
416
- "arguments": []
417
- }
418
- }
419
- ]
420
- },
421
- {
422
- "$type": "Group",
423
- "elements": [
424
- {
425
- "$type": "Assignment",
426
- "feature": "name",
427
- "operator": "=",
428
- "terminal": {
429
- "$type": "RuleCall",
430
- "rule": {
431
- "$ref": "#/rules@43"
432
- },
433
- "arguments": []
434
- }
435
- },
436
- {
437
- "$type": "RuleCall",
438
- "rule": {
439
- "$ref": "#/rules@59"
440
- },
441
- "arguments": []
442
- },
443
- {
444
- "$type": "Assignment",
445
- "feature": "kind",
446
- "operator": "=",
447
- "terminal": {
448
- "$type": "CrossReference",
449
- "type": {
450
- "$ref": "#/rules@1"
451
- },
452
- "terminal": {
453
- "$type": "RuleCall",
454
- "rule": {
455
- "$ref": "#/rules@43"
456
- },
457
- "arguments": []
458
- },
459
- "deprecatedSyntax": false
460
- }
461
- }
462
- ]
463
- }
464
- ]
465
- },
466
- {
467
- "$type": "Group",
468
- "elements": [
469
- {
470
- "$type": "Assignment",
471
- "feature": "props",
472
- "operator": "+=",
473
- "terminal": {
474
- "$type": "RuleCall",
475
- "rule": {
476
- "$ref": "#/rules@67"
477
- },
478
- "arguments": []
479
- }
480
- },
481
- {
482
- "$type": "Group",
483
- "elements": [
484
- {
485
- "$type": "Assignment",
486
- "feature": "props",
487
- "operator": "+=",
488
- "terminal": {
489
- "$type": "RuleCall",
490
- "rule": {
491
- "$ref": "#/rules@67"
492
- },
493
- "arguments": []
494
- }
495
- },
496
- {
497
- "$type": "Group",
498
- "elements": [
499
- {
500
- "$type": "Assignment",
501
- "feature": "props",
502
- "operator": "+=",
503
- "terminal": {
504
- "$type": "RuleCall",
505
- "rule": {
506
- "$ref": "#/rules@67"
507
- },
508
- "arguments": []
509
- }
510
- },
511
- {
512
- "$type": "Assignment",
513
- "feature": "props",
514
- "operator": "+=",
515
- "terminal": {
516
- "$type": "RuleCall",
517
- "rule": {
518
- "$ref": "#/rules@67"
519
- },
520
- "arguments": []
521
- },
522
- "cardinality": "?"
523
- }
524
- ],
525
- "cardinality": "?"
526
- }
527
- ],
528
- "cardinality": "?"
529
- }
530
- ],
531
- "cardinality": "?"
532
- },
533
- {
534
- "$type": "Assignment",
535
- "feature": "body",
536
- "operator": "=",
537
- "terminal": {
538
- "$type": "RuleCall",
539
- "rule": {
540
- "$ref": "#/rules@8"
541
- },
542
- "arguments": []
543
- },
544
- "cardinality": "?"
545
- }
546
- ]
547
- },
548
- "definesHiddenTokens": false,
549
- "entry": false,
550
- "fragment": false,
551
- "hiddenTokens": [],
552
- "parameters": [],
553
- "wildcard": false
554
- },
555
- {
556
- "$type": "ParserRule",
557
- "name": "ElementBody",
558
- "definition": {
559
- "$type": "Group",
560
- "elements": [
561
- {
562
- "$type": "RuleCall",
563
- "rule": {
564
- "$ref": "#/rules@60"
565
- },
566
- "arguments": []
567
- },
568
- {
569
- "$type": "Assignment",
570
- "feature": "tags",
571
- "operator": "=",
572
- "terminal": {
573
- "$type": "RuleCall",
574
- "rule": {
575
- "$ref": "#/rules@15"
576
- },
577
- "arguments": []
578
- },
579
- "cardinality": "?"
580
- },
581
- {
582
- "$type": "Assignment",
583
- "feature": "props",
584
- "operator": "+=",
585
- "terminal": {
586
- "$type": "Alternatives",
587
- "elements": [
588
- {
589
- "$type": "RuleCall",
590
- "rule": {
591
- "$ref": "#/rules@9"
592
- },
593
- "arguments": []
594
- },
595
- {
596
- "$type": "RuleCall",
597
- "rule": {
598
- "$ref": "#/rules@35"
599
- },
600
- "arguments": []
601
- }
602
- ]
603
- },
604
- "cardinality": "*"
605
- },
606
- {
607
- "$type": "Assignment",
608
- "feature": "elements",
609
- "operator": "+=",
610
- "terminal": {
611
- "$type": "Alternatives",
612
- "elements": [
613
- {
614
- "$type": "RuleCall",
615
- "rule": {
616
- "$ref": "#/rules@7"
617
- },
618
- "arguments": []
619
- },
620
- {
621
- "$type": "RuleCall",
622
- "rule": {
623
- "$ref": "#/rules@16"
624
- },
625
- "arguments": []
626
- }
627
- ]
628
- },
629
- "cardinality": "*"
630
- },
631
- {
632
- "$type": "RuleCall",
633
- "rule": {
634
- "$ref": "#/rules@61"
635
- },
636
- "arguments": []
637
- }
638
- ]
639
- },
640
- "definesHiddenTokens": false,
641
- "entry": false,
642
- "fragment": false,
643
- "hiddenTokens": [],
644
- "parameters": [],
645
- "wildcard": false
646
- },
647
- {
648
- "$type": "ParserRule",
649
- "name": "ElementProperty",
650
- "definition": {
651
- "$type": "Alternatives",
652
- "elements": [
653
- {
654
- "$type": "RuleCall",
655
- "rule": {
656
- "$ref": "#/rules@10"
657
- },
658
- "arguments": []
659
- },
660
- {
661
- "$type": "RuleCall",
662
- "rule": {
663
- "$ref": "#/rules@39"
664
- },
665
- "arguments": []
666
- }
667
- ]
668
- },
669
- "definesHiddenTokens": false,
670
- "entry": false,
671
- "fragment": false,
672
- "hiddenTokens": [],
673
- "parameters": [],
674
- "wildcard": false
675
- },
676
- {
677
- "$type": "ParserRule",
678
- "name": "ElementStringProperty",
679
- "definition": {
680
- "$type": "Group",
681
- "elements": [
682
- {
683
- "$type": "Assignment",
684
- "feature": "key",
685
- "operator": "=",
686
- "terminal": {
687
- "$type": "Alternatives",
688
- "elements": [
689
- {
690
- "$type": "Keyword",
691
- "value": "title"
692
- },
693
- {
694
- "$type": "Keyword",
695
- "value": "technology"
696
- },
697
- {
698
- "$type": "Keyword",
699
- "value": "description"
700
- }
701
- ]
702
- }
703
- },
704
- {
705
- "$type": "RuleCall",
706
- "rule": {
707
- "$ref": "#/rules@62"
708
- },
709
- "arguments": [],
710
- "cardinality": "?"
711
- },
712
- {
713
- "$type": "Assignment",
714
- "feature": "value",
715
- "operator": "=",
716
- "terminal": {
717
- "$type": "RuleCall",
718
- "rule": {
719
- "$ref": "#/rules@67"
720
- },
721
- "arguments": []
722
- }
723
- },
724
- {
725
- "$type": "RuleCall",
726
- "rule": {
727
- "$ref": "#/rules@63"
728
- },
729
- "arguments": [],
730
- "cardinality": "?"
731
- }
732
- ]
733
- },
734
- "definesHiddenTokens": false,
735
- "entry": false,
736
- "fragment": false,
737
- "hiddenTokens": [],
738
- "parameters": [],
739
- "wildcard": false
740
- },
741
- {
742
- "$type": "ParserRule",
743
- "name": "ExtendElement",
744
- "definition": {
745
- "$type": "Group",
746
- "elements": [
747
- {
748
- "$type": "Keyword",
749
- "value": "extend"
750
- },
751
- {
752
- "$type": "Assignment",
753
- "feature": "element",
754
- "operator": "=",
755
- "terminal": {
756
- "$type": "RuleCall",
757
- "rule": {
758
- "$ref": "#/rules@13"
759
- },
760
- "arguments": []
761
- }
762
- },
763
- {
764
- "$type": "Assignment",
765
- "feature": "body",
766
- "operator": "=",
767
- "terminal": {
768
- "$type": "RuleCall",
769
- "rule": {
770
- "$ref": "#/rules@12"
771
- },
772
- "arguments": []
773
- }
774
- }
775
- ]
776
- },
777
- "definesHiddenTokens": false,
778
- "entry": false,
779
- "fragment": false,
780
- "hiddenTokens": [],
781
- "parameters": [],
782
- "wildcard": false
783
- },
784
- {
785
- "$type": "ParserRule",
786
- "name": "ExtendElementBody",
787
- "definition": {
788
- "$type": "Group",
789
- "elements": [
790
- {
791
- "$type": "RuleCall",
792
- "rule": {
793
- "$ref": "#/rules@60"
794
- },
795
- "arguments": []
796
- },
797
- {
798
- "$type": "Assignment",
799
- "feature": "elements",
800
- "operator": "+=",
801
- "terminal": {
802
- "$type": "Alternatives",
803
- "elements": [
804
- {
805
- "$type": "RuleCall",
806
- "rule": {
807
- "$ref": "#/rules@7"
808
- },
809
- "arguments": []
810
- },
811
- {
812
- "$type": "RuleCall",
813
- "rule": {
814
- "$ref": "#/rules@19"
815
- },
816
- "arguments": []
817
- }
818
- ]
819
- },
820
- "cardinality": "*"
821
- },
822
- {
823
- "$type": "RuleCall",
824
- "rule": {
825
- "$ref": "#/rules@61"
826
- },
827
- "arguments": []
828
- }
829
- ]
830
- },
831
- "definesHiddenTokens": false,
832
- "entry": false,
833
- "fragment": false,
834
- "hiddenTokens": [],
835
- "parameters": [],
836
- "wildcard": false
837
- },
838
- {
839
- "$type": "ParserRule",
840
- "name": "StrictElementRef",
841
- "definition": {
842
- "$type": "Group",
843
- "elements": [
844
- {
845
- "$type": "Assignment",
846
- "feature": "el",
847
- "operator": "=",
848
- "terminal": {
849
- "$type": "CrossReference",
850
- "type": {
851
- "$ref": "#/rules@7"
852
- },
853
- "terminal": {
854
- "$type": "RuleCall",
855
- "rule": {
856
- "$ref": "#/rules@43"
857
- },
858
- "arguments": []
859
- },
860
- "deprecatedSyntax": false
861
- }
862
- },
863
- {
864
- "$type": "Group",
865
- "elements": [
866
- {
867
- "$type": "RuleCall",
868
- "rule": {
869
- "$ref": "#/rules@57"
870
- },
871
- "arguments": []
872
- },
873
- {
874
- "$type": "Assignment",
875
- "feature": "next",
876
- "operator": "=",
877
- "terminal": {
878
- "$type": "RuleCall",
879
- "rule": {
880
- "$ref": "#/rules@13"
881
- },
882
- "arguments": []
883
- }
884
- }
885
- ],
886
- "cardinality": "?"
887
- }
888
- ]
889
- },
890
- "definesHiddenTokens": false,
891
- "entry": false,
892
- "fragment": false,
893
- "hiddenTokens": [],
894
- "parameters": [],
895
- "wildcard": false
896
- },
897
- {
898
- "$type": "ParserRule",
899
- "name": "ElementRef",
900
- "definition": {
901
- "$type": "Group",
902
- "elements": [
903
- {
904
- "$type": "Assignment",
905
- "feature": "el",
906
- "operator": "=",
907
- "terminal": {
908
- "$type": "CrossReference",
909
- "type": {
910
- "$ref": "#/rules@7"
911
- },
912
- "terminal": {
913
- "$type": "RuleCall",
914
- "rule": {
915
- "$ref": "#/rules@43"
916
- },
917
- "arguments": []
918
- },
919
- "deprecatedSyntax": false
920
- }
921
- },
922
- {
923
- "$type": "Group",
924
- "elements": [
925
- {
926
- "$type": "RuleCall",
927
- "rule": {
928
- "$ref": "#/rules@57"
929
- },
930
- "arguments": []
931
- },
932
- {
933
- "$type": "Assignment",
934
- "feature": "next",
935
- "operator": "=",
936
- "terminal": {
937
- "$type": "RuleCall",
938
- "rule": {
939
- "$ref": "#/rules@14"
940
- },
941
- "arguments": []
942
- }
943
- }
944
- ],
945
- "cardinality": "?"
946
- }
947
- ]
948
- },
949
- "definesHiddenTokens": false,
950
- "entry": false,
951
- "fragment": false,
952
- "hiddenTokens": [],
953
- "parameters": [],
954
- "wildcard": false
955
- },
956
- {
957
- "$type": "ParserRule",
958
- "name": "Tags",
959
- "definition": {
960
- "$type": "Group",
961
- "elements": [
962
- {
963
- "$type": "Assignment",
964
- "feature": "value",
965
- "operator": "+=",
966
- "terminal": {
967
- "$type": "CrossReference",
968
- "type": {
969
- "$ref": "#/rules@2"
970
- },
971
- "terminal": {
972
- "$type": "RuleCall",
973
- "rule": {
974
- "$ref": "#/rules@65"
975
- },
976
- "arguments": []
977
- },
978
- "deprecatedSyntax": false
979
- }
980
- },
981
- {
982
- "$type": "Group",
983
- "elements": [
984
- {
985
- "$type": "RuleCall",
986
- "rule": {
987
- "$ref": "#/rules@64"
988
- },
989
- "arguments": [],
990
- "cardinality": "?"
991
- },
992
- {
993
- "$type": "Assignment",
994
- "feature": "value",
995
- "operator": "+=",
996
- "terminal": {
997
- "$type": "CrossReference",
998
- "type": {
999
- "$ref": "#/rules@2"
1000
- },
1001
- "terminal": {
1002
- "$type": "RuleCall",
1003
- "rule": {
1004
- "$ref": "#/rules@65"
1005
- },
1006
- "arguments": []
1007
- },
1008
- "deprecatedSyntax": false
1009
- }
1010
- }
1011
- ],
1012
- "cardinality": "*"
1013
- }
1014
- ]
1015
- },
1016
- "definesHiddenTokens": false,
1017
- "entry": false,
1018
- "fragment": false,
1019
- "hiddenTokens": [],
1020
- "parameters": [],
1021
- "wildcard": false
1022
- },
1023
- {
1024
- "$type": "ParserRule",
1025
- "name": "Relation",
1026
- "definition": {
1027
- "$type": "Alternatives",
1028
- "elements": [
1029
- {
1030
- "$type": "RuleCall",
1031
- "rule": {
1032
- "$ref": "#/rules@19"
1033
- },
1034
- "arguments": []
1035
- },
1036
- {
1037
- "$type": "RuleCall",
1038
- "rule": {
1039
- "$ref": "#/rules@18"
1040
- },
1041
- "arguments": []
1042
- }
1043
- ]
1044
- },
1045
- "definesHiddenTokens": false,
1046
- "entry": false,
1047
- "fragment": false,
1048
- "hiddenTokens": [],
1049
- "parameters": [],
1050
- "wildcard": false
1051
- },
1052
- {
1053
- "$type": "ParserRule",
1054
- "name": "RelationFragment",
1055
- "fragment": true,
1056
- "definition": {
1057
- "$type": "Group",
1058
- "elements": [
1059
- {
1060
- "$type": "Assignment",
1061
- "feature": "target",
1062
- "operator": "=",
1063
- "terminal": {
1064
- "$type": "RuleCall",
1065
- "rule": {
1066
- "$ref": "#/rules@14"
1067
- },
1068
- "arguments": []
1069
- }
1070
- },
1071
- {
1072
- "$type": "Assignment",
1073
- "feature": "title",
1074
- "operator": "=",
1075
- "terminal": {
1076
- "$type": "RuleCall",
1077
- "rule": {
1078
- "$ref": "#/rules@67"
1079
- },
1080
- "arguments": []
1081
- },
1082
- "cardinality": "?"
1083
- },
1084
- {
1085
- "$type": "Assignment",
1086
- "feature": "body",
1087
- "operator": "=",
1088
- "terminal": {
1089
- "$type": "RuleCall",
1090
- "rule": {
1091
- "$ref": "#/rules@20"
1092
- },
1093
- "arguments": []
1094
- },
1095
- "cardinality": "?"
1096
- }
1097
- ]
1098
- },
1099
- "definesHiddenTokens": false,
1100
- "entry": false,
1101
- "hiddenTokens": [],
1102
- "parameters": [],
1103
- "wildcard": false
1104
- },
1105
- {
1106
- "$type": "ParserRule",
1107
- "name": "ImplicitRelation",
1108
- "inferredType": {
1109
- "$type": "InferredType",
1110
- "name": "Relation"
1111
- },
1112
- "definition": {
1113
- "$type": "Group",
1114
- "elements": [
1115
- {
1116
- "$type": "Alternatives",
1117
- "elements": [
1118
- {
1119
- "$type": "Keyword",
1120
- "value": "this"
1121
- },
1122
- {
1123
- "$type": "Keyword",
1124
- "value": "it"
1125
- }
1126
- ],
1127
- "cardinality": "?"
1128
- },
1129
- {
1130
- "$type": "Assignment",
1131
- "feature": "arr",
1132
- "operator": "=",
1133
- "terminal": {
1134
- "$type": "RuleCall",
1135
- "rule": {
1136
- "$ref": "#/rules@45"
1137
- },
1138
- "arguments": []
1139
- }
1140
- },
1141
- {
1142
- "$type": "RuleCall",
1143
- "rule": {
1144
- "$ref": "#/rules@17"
1145
- },
1146
- "arguments": []
1147
- }
1148
- ]
1149
- },
1150
- "definesHiddenTokens": false,
1151
- "entry": false,
1152
- "fragment": false,
1153
- "hiddenTokens": [],
1154
- "parameters": [],
1155
- "wildcard": false
1156
- },
1157
- {
1158
- "$type": "ParserRule",
1159
- "name": "ExplicitRelation",
1160
- "inferredType": {
1161
- "$type": "InferredType",
1162
- "name": "Relation"
1163
- },
1164
- "definition": {
1165
- "$type": "Group",
1166
- "elements": [
1167
- {
1168
- "$type": "Assignment",
1169
- "feature": "source",
1170
- "operator": "=",
1171
- "terminal": {
1172
- "$type": "RuleCall",
1173
- "rule": {
1174
- "$ref": "#/rules@14"
1175
- },
1176
- "arguments": []
1177
- }
1178
- },
1179
- {
1180
- "$type": "Assignment",
1181
- "feature": "arr",
1182
- "operator": "=",
1183
- "terminal": {
1184
- "$type": "RuleCall",
1185
- "rule": {
1186
- "$ref": "#/rules@45"
1187
- },
1188
- "arguments": []
1189
- }
1190
- },
1191
- {
1192
- "$type": "RuleCall",
1193
- "rule": {
1194
- "$ref": "#/rules@17"
1195
- },
1196
- "arguments": []
1197
- }
1198
- ]
1199
- },
1200
- "definesHiddenTokens": false,
1201
- "entry": false,
1202
- "fragment": false,
1203
- "hiddenTokens": [],
1204
- "parameters": [],
1205
- "wildcard": false
1206
- },
1207
- {
1208
- "$type": "ParserRule",
1209
- "name": "RelationBody",
1210
- "definition": {
1211
- "$type": "Group",
1212
- "elements": [
1213
- {
1214
- "$type": "RuleCall",
1215
- "rule": {
1216
- "$ref": "#/rules@60"
1217
- },
1218
- "arguments": []
1219
- },
1220
- {
1221
- "$type": "Assignment",
1222
- "feature": "tags",
1223
- "operator": "=",
1224
- "terminal": {
1225
- "$type": "RuleCall",
1226
- "rule": {
1227
- "$ref": "#/rules@15"
1228
- },
1229
- "arguments": []
1230
- },
1231
- "cardinality": "?"
1232
- },
1233
- {
1234
- "$type": "Assignment",
1235
- "feature": "props",
1236
- "operator": "+=",
1237
- "terminal": {
1238
- "$type": "RuleCall",
1239
- "rule": {
1240
- "$ref": "#/rules@21"
1241
- },
1242
- "arguments": []
1243
- },
1244
- "cardinality": "*"
1245
- },
1246
- {
1247
- "$type": "RuleCall",
1248
- "rule": {
1249
- "$ref": "#/rules@61"
1250
- },
1251
- "arguments": []
1252
- }
1253
- ]
1254
- },
1255
- "definesHiddenTokens": false,
1256
- "entry": false,
1257
- "fragment": false,
1258
- "hiddenTokens": [],
1259
- "parameters": [],
1260
- "wildcard": false
1261
- },
1262
- {
1263
- "$type": "ParserRule",
1264
- "name": "RelationStringProperty",
1265
- "definition": {
1266
- "$type": "Group",
1267
- "elements": [
1268
- {
1269
- "$type": "Assignment",
1270
- "feature": "key",
1271
- "operator": "=",
1272
- "terminal": {
1273
- "$type": "Keyword",
1274
- "value": "title"
1275
- }
1276
- },
1277
- {
1278
- "$type": "RuleCall",
1279
- "rule": {
1280
- "$ref": "#/rules@62"
1281
- },
1282
- "arguments": [],
1283
- "cardinality": "?"
1284
- },
1285
- {
1286
- "$type": "Assignment",
1287
- "feature": "value",
1288
- "operator": "=",
1289
- "terminal": {
1290
- "$type": "RuleCall",
1291
- "rule": {
1292
- "$ref": "#/rules@67"
1293
- },
1294
- "arguments": []
1295
- }
1296
- },
1297
- {
1298
- "$type": "RuleCall",
1299
- "rule": {
1300
- "$ref": "#/rules@63"
1301
- },
1302
- "arguments": [],
1303
- "cardinality": "?"
1304
- }
1305
- ]
1306
- },
1307
- "definesHiddenTokens": false,
1308
- "entry": false,
1309
- "fragment": false,
1310
- "hiddenTokens": [],
1311
- "parameters": [],
1312
- "wildcard": false
1313
- },
1314
- {
1315
- "$type": "ParserRule",
1316
- "name": "ModelViews",
1317
- "definition": {
1318
- "$type": "Group",
1319
- "elements": [
1320
- {
1321
- "$type": "Assignment",
1322
- "feature": "name",
1323
- "operator": "=",
1324
- "terminal": {
1325
- "$type": "Keyword",
1326
- "value": "views"
1327
- }
1328
- },
1329
- {
1330
- "$type": "RuleCall",
1331
- "rule": {
1332
- "$ref": "#/rules@60"
1333
- },
1334
- "arguments": []
1335
- },
1336
- {
1337
- "$type": "Assignment",
1338
- "feature": "views",
1339
- "operator": "+=",
1340
- "terminal": {
1341
- "$type": "RuleCall",
1342
- "rule": {
1343
- "$ref": "#/rules@23"
1344
- },
1345
- "arguments": []
1346
- },
1347
- "cardinality": "*"
1348
- },
1349
- {
1350
- "$type": "RuleCall",
1351
- "rule": {
1352
- "$ref": "#/rules@61"
1353
- },
1354
- "arguments": []
1355
- }
1356
- ]
1357
- },
1358
- "definesHiddenTokens": false,
1359
- "entry": false,
1360
- "fragment": false,
1361
- "hiddenTokens": [],
1362
- "parameters": [],
1363
- "wildcard": false
1364
- },
1365
- {
1366
- "$type": "ParserRule",
1367
- "name": "View",
1368
- "definition": {
1369
- "$type": "RuleCall",
1370
- "rule": {
1371
- "$ref": "#/rules@24"
1372
- },
1373
- "arguments": []
1374
- },
1375
- "definesHiddenTokens": false,
1376
- "entry": false,
1377
- "fragment": false,
1378
- "hiddenTokens": [],
1379
- "parameters": [],
1380
- "wildcard": false
1381
- },
1382
- {
1383
- "$type": "ParserRule",
1384
- "name": "ElementView",
1385
- "definition": {
1386
- "$type": "Group",
1387
- "elements": [
1388
- {
1389
- "$type": "Keyword",
1390
- "value": "view"
1391
- },
1392
- {
1393
- "$type": "Assignment",
1394
- "feature": "name",
1395
- "operator": "=",
1396
- "terminal": {
1397
- "$type": "RuleCall",
1398
- "rule": {
1399
- "$ref": "#/rules@43"
1400
- },
1401
- "arguments": []
1402
- },
1403
- "cardinality": "?"
1404
- },
1405
- {
1406
- "$type": "Alternatives",
1407
- "elements": [
1408
- {
1409
- "$type": "Group",
1410
- "elements": [
1411
- {
1412
- "$type": "Keyword",
1413
- "value": "extends"
1414
- },
1415
- {
1416
- "$type": "Assignment",
1417
- "feature": "extends",
1418
- "operator": "=",
1419
- "terminal": {
1420
- "$type": "RuleCall",
1421
- "rule": {
1422
- "$ref": "#/rules@25"
1423
- },
1424
- "arguments": []
1425
- }
1426
- }
1427
- ]
1428
- },
1429
- {
1430
- "$type": "Group",
1431
- "elements": [
1432
- {
1433
- "$type": "Keyword",
1434
- "value": "of"
1435
- },
1436
- {
1437
- "$type": "Assignment",
1438
- "feature": "viewOf",
1439
- "operator": "=",
1440
- "terminal": {
1441
- "$type": "RuleCall",
1442
- "rule": {
1443
- "$ref": "#/rules@14"
1444
- },
1445
- "arguments": []
1446
- }
1447
- }
1448
- ]
1449
- }
1450
- ],
1451
- "cardinality": "?"
1452
- },
1453
- {
1454
- "$type": "Assignment",
1455
- "feature": "body",
1456
- "operator": "=",
1457
- "terminal": {
1458
- "$type": "RuleCall",
1459
- "rule": {
1460
- "$ref": "#/rules@26"
1461
- },
1462
- "arguments": []
1463
- }
1464
- }
1465
- ]
1466
- },
1467
- "definesHiddenTokens": false,
1468
- "entry": false,
1469
- "fragment": false,
1470
- "hiddenTokens": [],
1471
- "parameters": [],
1472
- "wildcard": false
1473
- },
1474
- {
1475
- "$type": "ParserRule",
1476
- "name": "ElementViewRef",
1477
- "definition": {
1478
- "$type": "Assignment",
1479
- "feature": "view",
1480
- "operator": "=",
1481
- "terminal": {
1482
- "$type": "CrossReference",
1483
- "type": {
1484
- "$ref": "#/rules@24"
1485
- },
1486
- "terminal": {
1487
- "$type": "RuleCall",
1488
- "rule": {
1489
- "$ref": "#/rules@43"
1490
- },
1491
- "arguments": []
1492
- },
1493
- "deprecatedSyntax": false
1494
- }
1495
- },
1496
- "definesHiddenTokens": false,
1497
- "entry": false,
1498
- "fragment": false,
1499
- "hiddenTokens": [],
1500
- "parameters": [],
1501
- "wildcard": false
1502
- },
1503
- {
1504
- "$type": "ParserRule",
1505
- "name": "ElementViewBody",
1506
- "definition": {
1507
- "$type": "Group",
1508
- "elements": [
1509
- {
1510
- "$type": "RuleCall",
1511
- "rule": {
1512
- "$ref": "#/rules@60"
1513
- },
1514
- "arguments": []
1515
- },
1516
- {
1517
- "$type": "Assignment",
1518
- "feature": "tags",
1519
- "operator": "=",
1520
- "terminal": {
1521
- "$type": "RuleCall",
1522
- "rule": {
1523
- "$ref": "#/rules@15"
1524
- },
1525
- "arguments": []
1526
- },
1527
- "cardinality": "?"
1528
- },
1529
- {
1530
- "$type": "Assignment",
1531
- "feature": "props",
1532
- "operator": "+=",
1533
- "terminal": {
1534
- "$type": "Alternatives",
1535
- "elements": [
1536
- {
1537
- "$type": "RuleCall",
1538
- "rule": {
1539
- "$ref": "#/rules@27"
1540
- },
1541
- "arguments": []
1542
- },
1543
- {
1544
- "$type": "RuleCall",
1545
- "rule": {
1546
- "$ref": "#/rules@35"
1547
- },
1548
- "arguments": []
1549
- }
1550
- ]
1551
- },
1552
- "cardinality": "*"
1553
- },
1554
- {
1555
- "$type": "Assignment",
1556
- "feature": "rules",
1557
- "operator": "+=",
1558
- "terminal": {
1559
- "$type": "Alternatives",
1560
- "elements": [
1561
- {
1562
- "$type": "RuleCall",
1563
- "rule": {
1564
- "$ref": "#/rules@28"
1565
- },
1566
- "arguments": []
1567
- },
1568
- {
1569
- "$type": "RuleCall",
1570
- "rule": {
1571
- "$ref": "#/rules@31"
1572
- },
1573
- "arguments": []
1574
- },
1575
- {
1576
- "$type": "RuleCall",
1577
- "rule": {
1578
- "$ref": "#/rules@30"
1579
- },
1580
- "arguments": []
1581
- }
1582
- ]
1583
- },
1584
- "cardinality": "*"
1585
- },
1586
- {
1587
- "$type": "RuleCall",
1588
- "rule": {
1589
- "$ref": "#/rules@61"
1590
- },
1591
- "arguments": []
1592
- }
1593
- ]
1594
- },
1595
- "definesHiddenTokens": false,
1596
- "entry": false,
1597
- "fragment": false,
1598
- "hiddenTokens": [],
1599
- "parameters": [],
1600
- "wildcard": false
1601
- },
1602
- {
1603
- "$type": "ParserRule",
1604
- "name": "ViewProperty",
1605
- "definition": {
1606
- "$type": "Group",
1607
- "elements": [
1608
- {
1609
- "$type": "Assignment",
1610
- "feature": "key",
1611
- "operator": "=",
1612
- "terminal": {
1613
- "$type": "Alternatives",
1614
- "elements": [
1615
- {
1616
- "$type": "Keyword",
1617
- "value": "title"
1618
- },
1619
- {
1620
- "$type": "Keyword",
1621
- "value": "description"
1622
- }
1623
- ]
1624
- }
1625
- },
1626
- {
1627
- "$type": "RuleCall",
1628
- "rule": {
1629
- "$ref": "#/rules@62"
1630
- },
1631
- "arguments": [],
1632
- "cardinality": "?"
1633
- },
1634
- {
1635
- "$type": "Assignment",
1636
- "feature": "value",
1637
- "operator": "=",
1638
- "terminal": {
1639
- "$type": "RuleCall",
1640
- "rule": {
1641
- "$ref": "#/rules@67"
1642
- },
1643
- "arguments": []
1644
- }
1645
- },
1646
- {
1647
- "$type": "RuleCall",
1648
- "rule": {
1649
- "$ref": "#/rules@63"
1650
- },
1651
- "arguments": [],
1652
- "cardinality": "?"
1653
- }
1654
- ]
1655
- },
1656
- "definesHiddenTokens": false,
1657
- "entry": false,
1658
- "fragment": false,
1659
- "hiddenTokens": [],
1660
- "parameters": [],
1661
- "wildcard": false
1662
- },
1663
- {
1664
- "$type": "ParserRule",
1665
- "name": "ViewRuleExpression",
1666
- "definition": {
1667
- "$type": "Group",
1668
- "elements": [
1669
- {
1670
- "$type": "Alternatives",
1671
- "elements": [
1672
- {
1673
- "$type": "Assignment",
1674
- "feature": "isInclude",
1675
- "operator": "?=",
1676
- "terminal": {
1677
- "$type": "Keyword",
1678
- "value": "include"
1679
- }
1680
- },
1681
- {
1682
- "$type": "Keyword",
1683
- "value": "exclude"
1684
- }
1685
- ]
1686
- },
1687
- {
1688
- "$type": "Assignment",
1689
- "feature": "expressions",
1690
- "operator": "+=",
1691
- "terminal": {
1692
- "$type": "RuleCall",
1693
- "rule": {
1694
- "$ref": "#/rules@32"
1695
- },
1696
- "arguments": []
1697
- }
1698
- },
1699
- {
1700
- "$type": "Group",
1701
- "elements": [
1702
- {
1703
- "$type": "RuleCall",
1704
- "rule": {
1705
- "$ref": "#/rules@64"
1706
- },
1707
- "arguments": []
1708
- },
1709
- {
1710
- "$type": "Assignment",
1711
- "feature": "expressions",
1712
- "operator": "+=",
1713
- "terminal": {
1714
- "$type": "RuleCall",
1715
- "rule": {
1716
- "$ref": "#/rules@32"
1717
- },
1718
- "arguments": []
1719
- }
1720
- }
1721
- ],
1722
- "cardinality": "*"
1723
- }
1724
- ]
1725
- },
1726
- "definesHiddenTokens": false,
1727
- "entry": false,
1728
- "fragment": false,
1729
- "hiddenTokens": [],
1730
- "parameters": [],
1731
- "wildcard": false
1732
- },
1733
- {
1734
- "$type": "ParserRule",
1735
- "name": "ViewRuleLayoutDirection",
1736
- "dataType": "string",
1737
- "definition": {
1738
- "$type": "Alternatives",
1739
- "elements": [
1740
- {
1741
- "$type": "Keyword",
1742
- "value": "TopBottom"
1743
- },
1744
- {
1745
- "$type": "Keyword",
1746
- "value": "LeftRight"
1747
- },
1748
- {
1749
- "$type": "Keyword",
1750
- "value": "BottomTop"
1751
- },
1752
- {
1753
- "$type": "Keyword",
1754
- "value": "RightLeft"
1755
- }
1756
- ]
1757
- },
1758
- "definesHiddenTokens": false,
1759
- "entry": false,
1760
- "fragment": false,
1761
- "hiddenTokens": [],
1762
- "parameters": [],
1763
- "wildcard": false
1764
- },
1765
- {
1766
- "$type": "ParserRule",
1767
- "name": "ViewRuleAutoLayout",
1768
- "definition": {
1769
- "$type": "Group",
1770
- "elements": [
1771
- {
1772
- "$type": "Keyword",
1773
- "value": "autoLayout"
1774
- },
1775
- {
1776
- "$type": "Assignment",
1777
- "feature": "direction",
1778
- "operator": "=",
1779
- "terminal": {
1780
- "$type": "RuleCall",
1781
- "rule": {
1782
- "$ref": "#/rules@29"
1783
- },
1784
- "arguments": []
1785
- }
1786
- }
1787
- ]
1788
- },
1789
- "definesHiddenTokens": false,
1790
- "entry": false,
1791
- "fragment": false,
1792
- "hiddenTokens": [],
1793
- "parameters": [],
1794
- "wildcard": false
1795
- },
1796
- {
1797
- "$type": "ParserRule",
1798
- "name": "ViewRuleStyle",
1799
- "definition": {
1800
- "$type": "Group",
1801
- "elements": [
1802
- {
1803
- "$type": "Keyword",
1804
- "value": "style"
1805
- },
1806
- {
1807
- "$type": "Assignment",
1808
- "feature": "targets",
1809
- "operator": "+=",
1810
- "terminal": {
1811
- "$type": "RuleCall",
1812
- "rule": {
1813
- "$ref": "#/rules@33"
1814
- },
1815
- "arguments": []
1816
- }
1817
- },
1818
- {
1819
- "$type": "Group",
1820
- "elements": [
1821
- {
1822
- "$type": "RuleCall",
1823
- "rule": {
1824
- "$ref": "#/rules@64"
1825
- },
1826
- "arguments": []
1827
- },
1828
- {
1829
- "$type": "Assignment",
1830
- "feature": "targets",
1831
- "operator": "+=",
1832
- "terminal": {
1833
- "$type": "RuleCall",
1834
- "rule": {
1835
- "$ref": "#/rules@33"
1836
- },
1837
- "arguments": []
1838
- }
1839
- }
1840
- ],
1841
- "cardinality": "*"
1842
- },
1843
- {
1844
- "$type": "RuleCall",
1845
- "rule": {
1846
- "$ref": "#/rules@60"
1847
- },
1848
- "arguments": []
1849
- },
1850
- {
1851
- "$type": "RuleCall",
1852
- "rule": {
1853
- "$ref": "#/rules@40"
1854
- },
1855
- "arguments": []
1856
- },
1857
- {
1858
- "$type": "RuleCall",
1859
- "rule": {
1860
- "$ref": "#/rules@61"
1861
- },
1862
- "arguments": []
1863
- }
1864
- ]
1865
- },
1866
- "definesHiddenTokens": false,
1867
- "entry": false,
1868
- "fragment": false,
1869
- "hiddenTokens": [],
1870
- "parameters": [],
1871
- "wildcard": false
1872
- },
1873
- {
1874
- "$type": "ParserRule",
1875
- "name": "Expression",
1876
- "definition": {
1877
- "$type": "Alternatives",
1878
- "elements": [
1879
- {
1880
- "$type": "Group",
1881
- "elements": [
1882
- {
1883
- "$type": "Action",
1884
- "inferredType": {
1885
- "$type": "InferredType",
1886
- "name": "IncomingExpression"
1887
- }
1888
- },
1889
- {
1890
- "$type": "Assignment",
1891
- "feature": "arr",
1892
- "operator": "=",
1893
- "terminal": {
1894
- "$type": "RuleCall",
1895
- "rule": {
1896
- "$ref": "#/rules@45"
1897
- },
1898
- "arguments": []
1899
- }
1900
- },
1901
- {
1902
- "$type": "Assignment",
1903
- "feature": "target",
1904
- "operator": "=",
1905
- "terminal": {
1906
- "$type": "RuleCall",
1907
- "rule": {
1908
- "$ref": "#/rules@33"
1909
- },
1910
- "arguments": []
1911
- }
1912
- },
1913
- {
1914
- "$type": "Group",
1915
- "elements": [
1916
- {
1917
- "$type": "Action",
1918
- "inferredType": {
1919
- "$type": "InferredType",
1920
- "name": "InOutExpression"
1921
- },
1922
- "feature": "inout",
1923
- "operator": "="
1924
- },
1925
- {
1926
- "$type": "Assignment",
1927
- "feature": "arr",
1928
- "operator": "=",
1929
- "terminal": {
1930
- "$type": "RuleCall",
1931
- "rule": {
1932
- "$ref": "#/rules@45"
1933
- },
1934
- "arguments": []
1935
- }
1936
- }
1937
- ],
1938
- "cardinality": "?"
1939
- }
1940
- ]
1941
- },
1942
- {
1943
- "$type": "Group",
1944
- "elements": [
1945
- {
1946
- "$type": "RuleCall",
1947
- "rule": {
1948
- "$ref": "#/rules@33"
1949
- },
1950
- "arguments": []
1951
- },
1952
- {
1953
- "$type": "Alternatives",
1954
- "elements": [
1955
- {
1956
- "$type": "Group",
1957
- "elements": [
1958
- {
1959
- "$type": "Action",
1960
- "inferredType": {
1961
- "$type": "InferredType",
1962
- "name": "RelationExpression"
1963
- },
1964
- "feature": "source",
1965
- "operator": "="
1966
- },
1967
- {
1968
- "$type": "Assignment",
1969
- "feature": "arr",
1970
- "operator": "=",
1971
- "terminal": {
1972
- "$type": "RuleCall",
1973
- "rule": {
1974
- "$ref": "#/rules@45"
1975
- },
1976
- "arguments": []
1977
- }
1978
- },
1979
- {
1980
- "$type": "Assignment",
1981
- "feature": "target",
1982
- "operator": "=",
1983
- "terminal": {
1984
- "$type": "RuleCall",
1985
- "rule": {
1986
- "$ref": "#/rules@33"
1987
- },
1988
- "arguments": []
1989
- }
1990
- }
1991
- ]
1992
- },
1993
- {
1994
- "$type": "Group",
1995
- "elements": [
1996
- {
1997
- "$type": "Action",
1998
- "inferredType": {
1999
- "$type": "InferredType",
2000
- "name": "OutgoingExpression"
2001
- },
2002
- "feature": "source",
2003
- "operator": "="
2004
- },
2005
- {
2006
- "$type": "Assignment",
2007
- "feature": "arr",
2008
- "operator": "=",
2009
- "terminal": {
2010
- "$type": "RuleCall",
2011
- "rule": {
2012
- "$ref": "#/rules@45"
2013
- },
2014
- "arguments": []
2015
- }
2016
- }
2017
- ]
2018
- }
2019
- ],
2020
- "cardinality": "?"
2021
- }
2022
- ]
2023
- }
2024
- ]
2025
- },
2026
- "definesHiddenTokens": false,
2027
- "entry": false,
2028
- "fragment": false,
2029
- "hiddenTokens": [],
2030
- "parameters": [],
2031
- "wildcard": false
2032
- },
2033
- {
2034
- "$type": "ParserRule",
2035
- "name": "ElementExpression",
2036
- "definition": {
2037
- "$type": "Alternatives",
2038
- "elements": [
2039
- {
2040
- "$type": "Group",
2041
- "elements": [
2042
- {
2043
- "$type": "Action",
2044
- "inferredType": {
2045
- "$type": "InferredType",
2046
- "name": "WildcardExpression"
2047
- }
2048
- },
2049
- {
2050
- "$type": "Assignment",
2051
- "feature": "isWildcard",
2052
- "operator": "?=",
2053
- "terminal": {
2054
- "$type": "Keyword",
2055
- "value": "*"
2056
- }
2057
- }
2058
- ]
2059
- },
2060
- {
2061
- "$type": "Group",
2062
- "elements": [
2063
- {
2064
- "$type": "Keyword",
2065
- "value": "element"
2066
- },
2067
- {
2068
- "$type": "RuleCall",
2069
- "rule": {
2070
- "$ref": "#/rules@57"
2071
- },
2072
- "arguments": []
2073
- },
2074
- {
2075
- "$type": "Alternatives",
2076
- "elements": [
2077
- {
2078
- "$type": "Group",
2079
- "elements": [
2080
- {
2081
- "$type": "Action",
2082
- "inferredType": {
2083
- "$type": "InferredType",
2084
- "name": "ElementTagExpression"
2085
- }
2086
- },
2087
- {
2088
- "$type": "Keyword",
2089
- "value": "tag"
2090
- },
2091
- {
2092
- "$type": "RuleCall",
2093
- "rule": {
2094
- "$ref": "#/rules@46"
2095
- },
2096
- "arguments": []
2097
- },
2098
- {
2099
- "$type": "Assignment",
2100
- "feature": "tag",
2101
- "operator": "=",
2102
- "terminal": {
2103
- "$type": "CrossReference",
2104
- "type": {
2105
- "$ref": "#/rules@2"
2106
- },
2107
- "terminal": {
2108
- "$type": "RuleCall",
2109
- "rule": {
2110
- "$ref": "#/rules@65"
2111
- },
2112
- "arguments": []
2113
- },
2114
- "deprecatedSyntax": false
2115
- }
2116
- }
2117
- ]
2118
- },
2119
- {
2120
- "$type": "Group",
2121
- "elements": [
2122
- {
2123
- "$type": "Action",
2124
- "inferredType": {
2125
- "$type": "InferredType",
2126
- "name": "ElementKindExpression"
2127
- }
2128
- },
2129
- {
2130
- "$type": "Keyword",
2131
- "value": "kind"
2132
- },
2133
- {
2134
- "$type": "RuleCall",
2135
- "rule": {
2136
- "$ref": "#/rules@46"
2137
- },
2138
- "arguments": []
2139
- },
2140
- {
2141
- "$type": "Assignment",
2142
- "feature": "kind",
2143
- "operator": "=",
2144
- "terminal": {
2145
- "$type": "CrossReference",
2146
- "type": {
2147
- "$ref": "#/rules@1"
2148
- },
2149
- "terminal": {
2150
- "$type": "RuleCall",
2151
- "rule": {
2152
- "$ref": "#/rules@43"
2153
- },
2154
- "arguments": []
2155
- },
2156
- "deprecatedSyntax": false
2157
- }
2158
- }
2159
- ]
2160
- }
2161
- ]
2162
- }
2163
- ]
2164
- },
2165
- {
2166
- "$type": "RuleCall",
2167
- "rule": {
2168
- "$ref": "#/rules@34"
2169
- },
2170
- "arguments": []
2171
- }
2172
- ]
2173
- },
2174
- "definesHiddenTokens": false,
2175
- "entry": false,
2176
- "fragment": false,
2177
- "hiddenTokens": [],
2178
- "parameters": [],
2179
- "wildcard": false
2180
- },
2181
- {
2182
- "$type": "ParserRule",
2183
- "name": "ElementRefExpression",
2184
- "definition": {
2185
- "$type": "Group",
2186
- "elements": [
2187
- {
2188
- "$type": "Assignment",
2189
- "feature": "id",
2190
- "operator": "=",
2191
- "terminal": {
2192
- "$type": "RuleCall",
2193
- "rule": {
2194
- "$ref": "#/rules@14"
2195
- },
2196
- "arguments": []
2197
- }
2198
- },
2199
- {
2200
- "$type": "Assignment",
2201
- "feature": "isDescedants",
2202
- "operator": "?=",
2203
- "terminal": {
2204
- "$type": "Keyword",
2205
- "value": ".*"
2206
- },
2207
- "cardinality": "?"
2208
- }
2209
- ]
2210
- },
2211
- "definesHiddenTokens": false,
2212
- "entry": false,
2213
- "fragment": false,
2214
- "hiddenTokens": [],
2215
- "parameters": [],
2216
- "wildcard": false
2217
- },
2218
- {
2219
- "$type": "ParserRule",
2220
- "name": "LinkProperty",
2221
- "definition": {
2222
- "$type": "Group",
2223
- "elements": [
2224
- {
2225
- "$type": "Assignment",
2226
- "feature": "key",
2227
- "operator": "=",
2228
- "terminal": {
2229
- "$type": "Keyword",
2230
- "value": "link"
2231
- }
2232
- },
2233
- {
2234
- "$type": "RuleCall",
2235
- "rule": {
2236
- "$ref": "#/rules@62"
2237
- },
2238
- "arguments": [],
2239
- "cardinality": "?"
2240
- },
2241
- {
2242
- "$type": "Assignment",
2243
- "feature": "value",
2244
- "operator": "=",
2245
- "terminal": {
2246
- "$type": "RuleCall",
2247
- "rule": {
2248
- "$ref": "#/rules@44"
2249
- },
2250
- "arguments": []
2251
- }
2252
- },
2253
- {
2254
- "$type": "RuleCall",
2255
- "rule": {
2256
- "$ref": "#/rules@63"
2257
- },
2258
- "arguments": [],
2259
- "cardinality": "?"
2260
- }
2261
- ]
2262
- },
2263
- "definesHiddenTokens": false,
2264
- "entry": false,
2265
- "fragment": false,
2266
- "hiddenTokens": [],
2267
- "parameters": [],
2268
- "wildcard": false
2269
- },
2270
- {
2271
- "$type": "ParserRule",
2272
- "name": "IconProperty",
2273
- "definition": {
2274
- "$type": "Group",
2275
- "elements": [
2276
- {
2277
- "$type": "Assignment",
2278
- "feature": "key",
2279
- "operator": "=",
2280
- "terminal": {
2281
- "$type": "Keyword",
2282
- "value": "icon"
2283
- }
2284
- },
2285
- {
2286
- "$type": "RuleCall",
2287
- "rule": {
2288
- "$ref": "#/rules@62"
2289
- },
2290
- "arguments": [],
2291
- "cardinality": "?"
2292
- },
2293
- {
2294
- "$type": "Assignment",
2295
- "feature": "value",
2296
- "operator": "=",
2297
- "terminal": {
2298
- "$type": "RuleCall",
2299
- "rule": {
2300
- "$ref": "#/rules@44"
2301
- },
2302
- "arguments": []
2303
- }
2304
- },
2305
- {
2306
- "$type": "RuleCall",
2307
- "rule": {
2308
- "$ref": "#/rules@63"
2309
- },
2310
- "arguments": [],
2311
- "cardinality": "?"
2312
- }
2313
- ]
2314
- },
2315
- "definesHiddenTokens": false,
2316
- "entry": false,
2317
- "fragment": false,
2318
- "hiddenTokens": [],
2319
- "parameters": [],
2320
- "wildcard": false
2321
- },
2322
- {
2323
- "$type": "ParserRule",
2324
- "name": "ColorProperty",
2325
- "definition": {
2326
- "$type": "Group",
2327
- "elements": [
2328
- {
2329
- "$type": "Assignment",
2330
- "feature": "key",
2331
- "operator": "=",
2332
- "terminal": {
2333
- "$type": "Keyword",
2334
- "value": "color"
2335
- }
2336
- },
2337
- {
2338
- "$type": "RuleCall",
2339
- "rule": {
2340
- "$ref": "#/rules@62"
2341
- },
2342
- "arguments": [],
2343
- "cardinality": "?"
2344
- },
2345
- {
2346
- "$type": "Assignment",
2347
- "feature": "value",
2348
- "operator": "=",
2349
- "terminal": {
2350
- "$type": "RuleCall",
2351
- "rule": {
2352
- "$ref": "#/rules@41"
2353
- },
2354
- "arguments": []
2355
- }
2356
- },
2357
- {
2358
- "$type": "RuleCall",
2359
- "rule": {
2360
- "$ref": "#/rules@63"
2361
- },
2362
- "arguments": [],
2363
- "cardinality": "?"
2364
- }
2365
- ]
2366
- },
2367
- "definesHiddenTokens": false,
2368
- "entry": false,
2369
- "fragment": false,
2370
- "hiddenTokens": [],
2371
- "parameters": [],
2372
- "wildcard": false
2373
- },
2374
- {
2375
- "$type": "ParserRule",
2376
- "name": "ShapeProperty",
2377
- "definition": {
2378
- "$type": "Group",
2379
- "elements": [
2380
- {
2381
- "$type": "Assignment",
2382
- "feature": "key",
2383
- "operator": "=",
2384
- "terminal": {
2385
- "$type": "Keyword",
2386
- "value": "shape"
2387
- }
2388
- },
2389
- {
2390
- "$type": "RuleCall",
2391
- "rule": {
2392
- "$ref": "#/rules@62"
2393
- },
2394
- "arguments": [],
2395
- "cardinality": "?"
2396
- },
2397
- {
2398
- "$type": "Assignment",
2399
- "feature": "value",
2400
- "operator": "=",
2401
- "terminal": {
2402
- "$type": "RuleCall",
2403
- "rule": {
2404
- "$ref": "#/rules@42"
2405
- },
2406
- "arguments": []
2407
- }
2408
- },
2409
- {
2410
- "$type": "RuleCall",
2411
- "rule": {
2412
- "$ref": "#/rules@63"
2413
- },
2414
- "arguments": [],
2415
- "cardinality": "?"
2416
- }
2417
- ]
2418
- },
2419
- "definesHiddenTokens": false,
2420
- "entry": false,
2421
- "fragment": false,
2422
- "hiddenTokens": [],
2423
- "parameters": [],
2424
- "wildcard": false
2425
- },
2426
- {
2427
- "$type": "ParserRule",
2428
- "name": "StyleProperties",
2429
- "definition": {
2430
- "$type": "Group",
2431
- "elements": [
2432
- {
2433
- "$type": "Assignment",
2434
- "feature": "key",
2435
- "operator": "=",
2436
- "terminal": {
2437
- "$type": "Keyword",
2438
- "value": "style"
2439
- }
2440
- },
2441
- {
2442
- "$type": "RuleCall",
2443
- "rule": {
2444
- "$ref": "#/rules@60"
2445
- },
2446
- "arguments": []
2447
- },
2448
- {
2449
- "$type": "RuleCall",
2450
- "rule": {
2451
- "$ref": "#/rules@40"
2452
- },
2453
- "arguments": []
2454
- },
2455
- {
2456
- "$type": "RuleCall",
2457
- "rule": {
2458
- "$ref": "#/rules@61"
2459
- },
2460
- "arguments": []
2461
- }
2462
- ]
2463
- },
2464
- "definesHiddenTokens": false,
2465
- "entry": false,
2466
- "fragment": false,
2467
- "hiddenTokens": [],
2468
- "parameters": [],
2469
- "wildcard": false
2470
- },
2471
- {
2472
- "$type": "ParserRule",
2473
- "name": "StylePropertiesFragment",
2474
- "fragment": true,
2475
- "definition": {
2476
- "$type": "Assignment",
2477
- "feature": "props",
2478
- "operator": "+=",
2479
- "terminal": {
2480
- "$type": "Alternatives",
2481
- "elements": [
2482
- {
2483
- "$type": "RuleCall",
2484
- "rule": {
2485
- "$ref": "#/rules@37"
2486
- },
2487
- "arguments": []
2488
- },
2489
- {
2490
- "$type": "RuleCall",
2491
- "rule": {
2492
- "$ref": "#/rules@38"
2493
- },
2494
- "arguments": []
2495
- },
2496
- {
2497
- "$type": "RuleCall",
2498
- "rule": {
2499
- "$ref": "#/rules@36"
2500
- },
2501
- "arguments": []
2502
- }
2503
- ]
2504
- },
2505
- "cardinality": "*"
2506
- },
2507
- "definesHiddenTokens": false,
2508
- "entry": false,
2509
- "hiddenTokens": [],
2510
- "parameters": [],
2511
- "wildcard": false
2512
- },
2513
- {
2514
- "$type": "ParserRule",
2515
- "name": "ThemeColor",
2516
- "dataType": "string",
2517
- "definition": {
2518
- "$type": "Alternatives",
2519
- "elements": [
2520
- {
2521
- "$type": "Keyword",
2522
- "value": "primary"
2523
- },
2524
- {
2525
- "$type": "Keyword",
2526
- "value": "secondary"
2527
- },
2528
- {
2529
- "$type": "Keyword",
2530
- "value": "muted"
2531
- },
2532
- {
2533
- "$type": "Keyword",
2534
- "value": "slate"
2535
- },
2536
- {
2537
- "$type": "Keyword",
2538
- "value": "blue"
2539
- },
2540
- {
2541
- "$type": "Keyword",
2542
- "value": "indigo"
2543
- },
2544
- {
2545
- "$type": "Keyword",
2546
- "value": "sky"
2547
- },
2548
- {
2549
- "$type": "Keyword",
2550
- "value": "red"
2551
- },
2552
- {
2553
- "$type": "Keyword",
2554
- "value": "gray"
2555
- },
2556
- {
2557
- "$type": "Keyword",
2558
- "value": "green"
2559
- },
2560
- {
2561
- "$type": "Keyword",
2562
- "value": "amber"
2563
- }
2564
- ]
2565
- },
2566
- "definesHiddenTokens": false,
2567
- "entry": false,
2568
- "fragment": false,
2569
- "hiddenTokens": [],
2570
- "parameters": [],
2571
- "wildcard": false
2572
- },
2573
- {
2574
- "$type": "ParserRule",
2575
- "name": "ElementShape",
2576
- "dataType": "string",
2577
- "definition": {
2578
- "$type": "Alternatives",
2579
- "elements": [
2580
- {
2581
- "$type": "Keyword",
2582
- "value": "rectangle"
2583
- },
2584
- {
2585
- "$type": "Keyword",
2586
- "value": "person"
2587
- },
2588
- {
2589
- "$type": "Keyword",
2590
- "value": "browser"
2591
- },
2592
- {
2593
- "$type": "Keyword",
2594
- "value": "mobile"
2595
- },
2596
- {
2597
- "$type": "Keyword",
2598
- "value": "cylinder"
2599
- },
2600
- {
2601
- "$type": "Keyword",
2602
- "value": "storage"
2603
- },
2604
- {
2605
- "$type": "Keyword",
2606
- "value": "queue"
2607
- }
2608
- ]
2609
- },
2610
- "definesHiddenTokens": false,
2611
- "entry": false,
2612
- "fragment": false,
2613
- "hiddenTokens": [],
2614
- "parameters": [],
2615
- "wildcard": false
2616
- },
2617
- {
2618
- "$type": "ParserRule",
2619
- "name": "Name",
2620
- "dataType": "string",
2621
- "definition": {
2622
- "$type": "Alternatives",
2623
- "elements": [
2624
- {
2625
- "$type": "RuleCall",
2626
- "rule": {
2627
- "$ref": "#/rules@42"
2628
- },
2629
- "arguments": []
2630
- },
2631
- {
2632
- "$type": "RuleCall",
2633
- "rule": {
2634
- "$ref": "#/rules@41"
2635
- },
2636
- "arguments": []
2637
- },
2638
- {
2639
- "$type": "Keyword",
2640
- "value": "element"
2641
- },
2642
- {
2643
- "$type": "Keyword",
2644
- "value": "model"
2645
- },
2646
- {
2647
- "$type": "RuleCall",
2648
- "rule": {
2649
- "$ref": "#/rules@66"
2650
- },
2651
- "arguments": []
2652
- }
2653
- ]
2654
- },
2655
- "definesHiddenTokens": false,
2656
- "entry": false,
2657
- "fragment": false,
2658
- "hiddenTokens": [],
2659
- "parameters": [],
2660
- "wildcard": false
2661
- },
2662
- {
2663
- "$type": "ParserRule",
2664
- "name": "Uri",
2665
- "dataType": "string",
2666
- "definition": {
2667
- "$type": "Alternatives",
2668
- "elements": [
2669
- {
2670
- "$type": "RuleCall",
2671
- "rule": {
2672
- "$ref": "#/rules@54"
2673
- },
2674
- "arguments": []
2675
- },
2676
- {
2677
- "$type": "RuleCall",
2678
- "rule": {
2679
- "$ref": "#/rules@55"
2680
- },
2681
- "arguments": []
2682
- }
2683
- ]
2684
- },
2685
- "definesHiddenTokens": false,
2686
- "entry": false,
2687
- "fragment": false,
2688
- "hiddenTokens": [],
2689
- "parameters": [],
2690
- "wildcard": false
2691
- },
2692
- {
2693
- "$type": "ParserRule",
2694
- "name": "RArrow",
2695
- "dataType": "string",
2696
- "definition": {
2697
- "$type": "RuleCall",
2698
- "rule": {
2699
- "$ref": "#/rules@56"
2700
- },
2701
- "arguments": []
2702
- },
2703
- "definesHiddenTokens": false,
2704
- "entry": false,
2705
- "fragment": false,
2706
- "hiddenTokens": [],
2707
- "parameters": [],
2708
- "wildcard": false
2709
- },
2710
- {
2711
- "$type": "ParserRule",
2712
- "name": "IsEqual",
2713
- "fragment": true,
2714
- "definition": {
2715
- "$type": "Alternatives",
2716
- "elements": [
2717
- {
2718
- "$type": "RuleCall",
2719
- "rule": {
2720
- "$ref": "#/rules@58"
2721
- },
2722
- "arguments": []
2723
- },
2724
- {
2725
- "$type": "Assignment",
2726
- "feature": "isEqual",
2727
- "operator": "?=",
2728
- "terminal": {
2729
- "$type": "RuleCall",
2730
- "rule": {
2731
- "$ref": "#/rules@59"
2732
- },
2733
- "arguments": []
2734
- }
2735
- }
2736
- ]
2737
- },
2738
- "definesHiddenTokens": false,
2739
- "entry": false,
2740
- "hiddenTokens": [],
2741
- "parameters": [],
2742
- "wildcard": false
2743
- },
2744
- {
2745
- "$type": "TerminalRule",
2746
- "fragment": true,
2747
- "name": "HASH",
2748
- "definition": {
2749
- "$type": "CharacterRange",
2750
- "left": {
2751
- "$type": "Keyword",
2752
- "value": "#"
2753
- }
2754
- },
2755
- "hidden": false
2756
- },
2757
- {
2758
- "$type": "TerminalRule",
2759
- "fragment": true,
2760
- "name": "UNDERSCORE",
2761
- "definition": {
2762
- "$type": "CharacterRange",
2763
- "left": {
2764
- "$type": "Keyword",
2765
- "value": "_"
2766
- }
2767
- },
2768
- "hidden": false
2769
- },
2770
- {
2771
- "$type": "TerminalRule",
2772
- "fragment": true,
2773
- "name": "DASH",
2774
- "definition": {
2775
- "$type": "CharacterRange",
2776
- "left": {
2777
- "$type": "Keyword",
2778
- "value": "-"
2779
- }
2780
- },
2781
- "hidden": false
2782
- },
2783
- {
2784
- "$type": "TerminalRule",
2785
- "fragment": true,
2786
- "name": "LETTER",
2787
- "definition": {
2788
- "$type": "RegexToken",
2789
- "regex": "/[^\\\\W\\\\d_]/"
2790
- },
2791
- "hidden": false
2792
- },
2793
- {
2794
- "$type": "TerminalRule",
2795
- "fragment": true,
2796
- "name": "DIGIT",
2797
- "definition": {
2798
- "$type": "RegexToken",
2799
- "regex": "/[0-9]/"
2800
- },
2801
- "hidden": false
2802
- },
2803
- {
2804
- "$type": "TerminalRule",
2805
- "fragment": true,
2806
- "name": "NEWLINE",
2807
- "definition": {
2808
- "$type": "RegexToken",
2809
- "regex": "/[\\\\t\\\\r\\\\n\\\\v\\\\f]/"
2810
- },
2811
- "hidden": false
2812
- },
2813
- {
2814
- "$type": "TerminalRule",
2815
- "fragment": true,
2816
- "name": "SPACE",
2817
- "definition": {
2818
- "$type": "RegexToken",
2819
- "regex": "/[^\\\\S\\\\r\\\\n]/"
2820
- },
2821
- "hidden": false
2822
- },
2823
- {
2824
- "$type": "TerminalRule",
2825
- "name": "URI_WITH_SCHEMA",
2826
- "definition": {
2827
- "$type": "RegexToken",
2828
- "regex": "/\\\\w+:\\\\/\\\\/\\\\S+/"
2829
- },
2830
- "fragment": false,
2831
- "hidden": false
2832
- },
2833
- {
2834
- "$type": "TerminalRule",
2835
- "name": "URI_RELATIVE",
2836
- "definition": {
2837
- "$type": "RegexToken",
2838
- "regex": "/\\\\.{0,2}\\\\/[^\\\\/]\\\\S+/"
2839
- },
2840
- "fragment": false,
2841
- "hidden": false
2842
- },
2843
- {
2844
- "$type": "TerminalRule",
2845
- "name": "RARROW",
2846
- "definition": {
2847
- "$type": "CharacterRange",
2848
- "left": {
2849
- "$type": "Keyword",
2850
- "value": "->"
2851
- }
2852
- },
2853
- "fragment": false,
2854
- "hidden": false
2855
- },
2856
- {
2857
- "$type": "TerminalRule",
2858
- "name": "Dot",
2859
- "definition": {
2860
- "$type": "RegexToken",
2861
- "regex": "/\\\\b\\\\.\\\\b/"
2862
- },
2863
- "fragment": false,
2864
- "hidden": false
2865
- },
2866
- {
2867
- "$type": "TerminalRule",
2868
- "name": "NotEqual",
2869
- "definition": {
2870
- "$type": "CharacterRange",
2871
- "left": {
2872
- "$type": "Keyword",
2873
- "value": "!="
2874
- }
2875
- },
2876
- "fragment": false,
2877
- "hidden": false
2878
- },
2879
- {
2880
- "$type": "TerminalRule",
2881
- "name": "Eq",
2882
- "definition": {
2883
- "$type": "CharacterRange",
2884
- "left": {
2885
- "$type": "Keyword",
2886
- "value": "="
2887
- }
2888
- },
2889
- "fragment": false,
2890
- "hidden": false
2891
- },
2892
- {
2893
- "$type": "TerminalRule",
2894
- "name": "OpenBlock",
2895
- "definition": {
2896
- "$type": "CharacterRange",
2897
- "left": {
2898
- "$type": "Keyword",
2899
- "value": "{"
2900
- }
2901
- },
2902
- "fragment": false,
2903
- "hidden": false
2904
- },
2905
- {
2906
- "$type": "TerminalRule",
2907
- "name": "CloseBlock",
2908
- "definition": {
2909
- "$type": "CharacterRange",
2910
- "left": {
2911
- "$type": "Keyword",
2912
- "value": "}"
2913
- }
2914
- },
2915
- "fragment": false,
2916
- "hidden": false
2917
- },
2918
- {
2919
- "$type": "TerminalRule",
2920
- "name": "Colon",
2921
- "definition": {
2922
- "$type": "CharacterRange",
2923
- "left": {
2924
- "$type": "Keyword",
2925
- "value": ":"
2926
- }
2927
- },
2928
- "fragment": false,
2929
- "hidden": false
2930
- },
2931
- {
2932
- "$type": "TerminalRule",
2933
- "name": "SemiColon",
2934
- "definition": {
2935
- "$type": "CharacterRange",
2936
- "left": {
2937
- "$type": "Keyword",
2938
- "value": ";"
2939
- }
2940
- },
2941
- "fragment": false,
2942
- "hidden": false
2943
- },
2944
- {
2945
- "$type": "TerminalRule",
2946
- "name": "Comma",
2947
- "definition": {
2948
- "$type": "CharacterRange",
2949
- "left": {
2950
- "$type": "Keyword",
2951
- "value": ","
2952
- }
2953
- },
2954
- "fragment": false,
2955
- "hidden": false
2956
- },
2957
- {
2958
- "$type": "TerminalRule",
2959
- "name": "TagID",
2960
- "definition": {
2961
- "$type": "TerminalGroup",
2962
- "elements": [
2963
- {
2964
- "$type": "TerminalRuleCall",
2965
- "rule": {
2966
- "$ref": "#/rules@47"
2967
- }
2968
- },
2969
- {
2970
- "$type": "TerminalRuleCall",
2971
- "rule": {
2972
- "$ref": "#/rules@50"
2973
- }
2974
- },
2975
- {
2976
- "$type": "TerminalAlternatives",
2977
- "elements": [
2978
- {
2979
- "$type": "TerminalAlternatives",
2980
- "elements": [
2981
- {
2982
- "$type": "TerminalAlternatives",
2983
- "elements": [
2984
- {
2985
- "$type": "TerminalRuleCall",
2986
- "rule": {
2987
- "$ref": "#/rules@50"
2988
- }
2989
- },
2990
- {
2991
- "$type": "TerminalRuleCall",
2992
- "rule": {
2993
- "$ref": "#/rules@51"
2994
- }
2995
- }
2996
- ]
2997
- },
2998
- {
2999
- "$type": "TerminalRuleCall",
3000
- "rule": {
3001
- "$ref": "#/rules@48"
3002
- }
3003
- }
3004
- ]
3005
- },
3006
- {
3007
- "$type": "TerminalRuleCall",
3008
- "rule": {
3009
- "$ref": "#/rules@49"
3010
- }
3011
- }
3012
- ],
3013
- "cardinality": "*"
3014
- }
3015
- ]
3016
- },
3017
- "fragment": false,
3018
- "hidden": false
3019
- },
3020
- {
3021
- "$type": "TerminalRule",
3022
- "name": "ID",
3023
- "definition": {
3024
- "$type": "TerminalGroup",
3025
- "elements": [
3026
- {
3027
- "$type": "TerminalAlternatives",
3028
- "elements": [
3029
- {
3030
- "$type": "TerminalRuleCall",
3031
- "rule": {
3032
- "$ref": "#/rules@50"
3033
- }
3034
- },
3035
- {
3036
- "$type": "TerminalRuleCall",
3037
- "rule": {
3038
- "$ref": "#/rules@48"
3039
- }
3040
- }
3041
- ]
3042
- },
3043
- {
3044
- "$type": "TerminalAlternatives",
3045
- "elements": [
3046
- {
3047
- "$type": "TerminalAlternatives",
3048
- "elements": [
3049
- {
3050
- "$type": "TerminalAlternatives",
3051
- "elements": [
3052
- {
3053
- "$type": "TerminalRuleCall",
3054
- "rule": {
3055
- "$ref": "#/rules@50"
3056
- }
3057
- },
3058
- {
3059
- "$type": "TerminalRuleCall",
3060
- "rule": {
3061
- "$ref": "#/rules@51"
3062
- }
3063
- }
3064
- ]
3065
- },
3066
- {
3067
- "$type": "TerminalRuleCall",
3068
- "rule": {
3069
- "$ref": "#/rules@48"
3070
- }
3071
- }
3072
- ]
3073
- },
3074
- {
3075
- "$type": "TerminalRuleCall",
3076
- "rule": {
3077
- "$ref": "#/rules@49"
3078
- }
3079
- }
3080
- ],
3081
- "cardinality": "*"
3082
- }
3083
- ]
3084
- },
3085
- "fragment": false,
3086
- "hidden": false
3087
- },
3088
- {
3089
- "$type": "TerminalRule",
3090
- "name": "STRING",
3091
- "definition": {
3092
- "$type": "RegexToken",
3093
- "regex": "/\\"[^\\"]*\\"|'[^']*'/"
3094
- },
3095
- "fragment": false,
3096
- "hidden": false
3097
- },
3098
- {
3099
- "$type": "TerminalRule",
3100
- "hidden": true,
3101
- "name": "WS",
3102
- "definition": {
3103
- "$type": "TerminalAlternatives",
3104
- "elements": [
3105
- {
3106
- "$type": "TerminalRuleCall",
3107
- "rule": {
3108
- "$ref": "#/rules@52"
3109
- }
3110
- },
3111
- {
3112
- "$type": "TerminalRuleCall",
3113
- "rule": {
3114
- "$ref": "#/rules@53"
3115
- }
3116
- }
3117
- ],
3118
- "cardinality": "+"
3119
- },
3120
- "fragment": false
3121
- },
3122
- {
3123
- "$type": "TerminalRule",
3124
- "hidden": true,
3125
- "name": "BLOCK_COMMENT",
3126
- "definition": {
3127
- "$type": "RegexToken",
3128
- "regex": "/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//"
3129
- },
3130
- "fragment": false
3131
- },
3132
- {
3133
- "$type": "TerminalRule",
3134
- "hidden": true,
3135
- "name": "LINE_COMMENT",
3136
- "definition": {
3137
- "$type": "RegexToken",
3138
- "regex": "/\\\\/\\\\/[^\\\\n\\\\r]*/"
3139
- },
3140
- "fragment": false
3141
- }
3142
- ],
3143
- "types": [
3144
- {
3145
- "$type": "Type",
3146
- "name": "ViewRule",
3147
- "type": {
3148
- "$type": "UnionType",
3149
- "types": [
3150
- {
3151
- "$type": "SimpleType",
3152
- "typeRef": {
3153
- "$ref": "#/rules@28"
3154
- }
3155
- },
3156
- {
3157
- "$type": "SimpleType",
3158
- "typeRef": {
3159
- "$ref": "#/rules@31"
3160
- }
3161
- },
3162
- {
3163
- "$type": "SimpleType",
3164
- "typeRef": {
3165
- "$ref": "#/rules@30"
3166
- }
3167
- }
3168
- ]
3169
- }
3170
- }
3171
- ],
3172
- "definesHiddenTokens": false,
3173
- "hiddenTokens": [],
3174
- "imports": [],
3175
- "interfaces": [],
3176
- "usedGrammars": []
3177
- }`));
3178
- //# sourceMappingURL=grammar.js.map
3
+ export const LikeC4Grammar = () => loadedLikeC4Grammar ?? (loadedLikeC4Grammar = loadGrammarFromJson(`{"$type":"Grammar","isDeclared":true,"name":"LikeC4","rules":[{"$type":"ParserRule","name":"LikeC4Document","entry":true,"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"specification","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"model","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"views","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementKind","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Tag","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationshipKind","definition":{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationRule","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"specification"}},{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"relationships","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationElementKind","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"element"},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"Assignment","feature":"style","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@43"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationTag","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"tag"},{"$type":"Assignment","feature":"tag","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"Assignment","feature":"style","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@43"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"SpecificationRelationshipKind","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"relationship"},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@45"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Model","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"model"}},{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}]},"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Element","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@1"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@69"},"arguments":[]},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@1"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},"deprecatedSyntax":false}}]}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@75"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@75"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@75"},"arguments":[]}},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@75"},"arguments":[]},"cardinality":"?"}],"cardinality":"?"}],"cardinality":"?"}],"cardinality":"?"},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementBody","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[]}]},"cardinality":"*"},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}]},"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementProperty","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@43"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementStringProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"title"},{"$type":"Keyword","value":"technology"},{"$type":"Keyword","value":"description"}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@75"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@73"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ExtendElement","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"extend"},{"$type":"Assignment","feature":"element","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ExtendElementBody","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"Assignment","feature":"elements","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}]},"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"StrictElementRef","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"el","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@9"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@67"},"arguments":[]},{"$type":"Assignment","feature":"next","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementRef","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"el","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@9"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@67"},"arguments":[]},{"$type":"Assignment","feature":"next","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Tags","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"value","operator":"+=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@76"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@74"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"+=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@76"},"arguments":[]},"deprecatedSyntax":false}}],"cardinality":"*"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Relation","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationFragment","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"arr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-["},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@3"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":"]->"}]}]},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@75"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ImplicitRelation","inferredType":{"$type":"InferredType","name":"Relation"},"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"this"},{"$type":"Keyword","value":"it"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ExplicitRelation","inferredType":{"$type":"InferredType","name":"Relation"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"source","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationBody","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationStringProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"title"}},{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@75"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@73"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ModelViews","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"views"}},{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"Assignment","feature":"views","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@25"},"arguments":[]},"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"View","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@26"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementView","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"view"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"extends"},{"$type":"Assignment","feature":"extends","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@27"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"of"},{"$type":"Assignment","feature":"viewOf","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}}]}],"cardinality":"?"},{"$type":"Assignment","feature":"body","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementViewRef","definition":{"$type":"Assignment","feature":"view","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@26"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},"deprecatedSyntax":false}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementViewBody","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"Assignment","feature":"tags","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@37"},"arguments":[]}]},"cardinality":"*"},{"$type":"Assignment","feature":"rules","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@30"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@33"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@32"},"arguments":[]}]},"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"title"},{"$type":"Keyword","value":"description"}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@75"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@73"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRuleExpression","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"isInclude","operator":"?=","terminal":{"$type":"Keyword","value":"include"}},{"$type":"Keyword","value":"exclude"}]},{"$type":"Assignment","feature":"expressions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@34"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@74"},"arguments":[]},{"$type":"Assignment","feature":"expressions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@34"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@74"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRuleLayoutDirection","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"TopBottom"},{"$type":"Keyword","value":"LeftRight"},{"$type":"Keyword","value":"BottomTop"},{"$type":"Keyword","value":"RightLeft"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRuleAutoLayout","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"autoLayout"},{"$type":"Assignment","feature":"direction","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@31"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ViewRuleStyle","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"style"},{"$type":"Assignment","feature":"targets","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@74"},"arguments":[]},{"$type":"Assignment","feature":"targets","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@44"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Expression","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"IncomingExpression"}},{"$type":"Assignment","feature":"arr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"InOutExpression"},"feature":"inout","operator":"="},{"$type":"Assignment","feature":"arr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"RelationExpression"},"feature":"source","operator":"="},{"$type":"Assignment","feature":"arr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}},{"$type":"Assignment","feature":"target","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@35"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"OutgoingExpression"},"feature":"source","operator":"="},{"$type":"Assignment","feature":"arr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@51"},"arguments":[]}}]}],"cardinality":"?"}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementExpression","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"WildcardExpression"}},{"$type":"Assignment","feature":"isWildcard","operator":"?=","terminal":{"$type":"Keyword","value":"*"}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"element"},{"$type":"RuleCall","rule":{"$ref":"#/rules@67"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementTagExpression"}},{"$type":"Keyword","value":"tag"},{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[]},{"$type":"Assignment","feature":"tag","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@76"},"arguments":[]},"deprecatedSyntax":false}}]},{"$type":"Group","elements":[{"$type":"Action","inferredType":{"$type":"InferredType","name":"ElementKindExpression"}},{"$type":"Keyword","value":"kind"},{"$type":"RuleCall","rule":{"$ref":"#/rules@53"},"arguments":[]},{"$type":"Assignment","feature":"kind","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@1"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@52"},"arguments":[]},"deprecatedSyntax":false}}]}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@36"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementRefExpression","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"isDescedants","operator":"?=","terminal":{"$type":"Keyword","value":".*"},"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LinkProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"link"}},{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@73"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"IconProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"icon"}},{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@50"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@73"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ColorProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"color"}},{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@73"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ShapeProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"shape"}},{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@49"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@73"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LineProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"line"}},{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@46"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@73"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ArrowProperty","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"head"},{"$type":"Keyword","value":"tail"}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@72"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@47"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@73"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"StyleProperties","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"key","operator":"=","terminal":{"$type":"Keyword","value":"style"}},{"$type":"RuleCall","rule":{"$ref":"#/rules@70"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@44"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@71"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"StylePropertiesFragment","fragment":true,"definition":{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@40"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@38"},"arguments":[]}]},"cardinality":"*"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RelationshipStylePropertiesFragment","fragment":true,"definition":{"$type":"Assignment","feature":"props","operator":"+=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@39"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@41"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@42"},"arguments":[]}]},"cardinality":"*"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LineOptions","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"solid"},{"$type":"Keyword","value":"dashed"},{"$type":"Keyword","value":"dotted"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ArrowType","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"none"},{"$type":"Keyword","value":"normal"},{"$type":"Keyword","value":"onormal"},{"$type":"Keyword","value":"diamond"},{"$type":"Keyword","value":"odiamond"},{"$type":"Keyword","value":"crow"},{"$type":"Keyword","value":"open"},{"$type":"Keyword","value":"vee"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ThemeColor","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"primary"},{"$type":"Keyword","value":"secondary"},{"$type":"Keyword","value":"muted"},{"$type":"Keyword","value":"slate"},{"$type":"Keyword","value":"blue"},{"$type":"Keyword","value":"indigo"},{"$type":"Keyword","value":"sky"},{"$type":"Keyword","value":"red"},{"$type":"Keyword","value":"gray"},{"$type":"Keyword","value":"green"},{"$type":"Keyword","value":"amber"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ElementShape","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"rectangle"},{"$type":"Keyword","value":"person"},{"$type":"Keyword","value":"browser"},{"$type":"Keyword","value":"mobile"},{"$type":"Keyword","value":"cylinder"},{"$type":"Keyword","value":"storage"},{"$type":"Keyword","value":"queue"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Uri","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@64"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@65"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RArrow","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@66"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Name","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@49"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@48"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@46"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@47"},"arguments":[]},{"$type":"Keyword","value":"element"},{"$type":"Keyword","value":"model"},{"$type":"RuleCall","rule":{"$ref":"#/rules@77"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"IsEqual","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@68"},"arguments":[]},{"$type":"Assignment","feature":"isEqual","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@69"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","hidden":true,"name":"BLOCK_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\/\\\\/[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@62"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@63"}}],"cardinality":"+"},"fragment":false},{"$type":"TerminalRule","fragment":true,"name":"HASH","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"#"}},"hidden":false},{"$type":"TerminalRule","fragment":true,"name":"UNDERSCORE","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"_"}},"hidden":false},{"$type":"TerminalRule","fragment":true,"name":"DASH","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"-"}},"hidden":false},{"$type":"TerminalRule","fragment":true,"name":"LETTER","definition":{"$type":"RegexToken","regex":"/[^\\\\W\\\\d_]/"},"hidden":false},{"$type":"TerminalRule","fragment":true,"name":"DIGIT","definition":{"$type":"RegexToken","regex":"/[0-9]/"},"hidden":false},{"$type":"TerminalRule","fragment":true,"name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/[\\\\t\\\\r\\\\n\\\\v\\\\f]/"},"hidden":false},{"$type":"TerminalRule","fragment":true,"name":"SPACE","definition":{"$type":"RegexToken","regex":"/[^\\\\S\\\\r\\\\n]/"},"hidden":false},{"$type":"TerminalRule","name":"URI_WITH_SCHEMA","definition":{"$type":"RegexToken","regex":"/\\\\w+:\\\\/\\\\/\\\\S+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"URI_RELATIVE","definition":{"$type":"RegexToken","regex":"/\\\\.{0,2}\\\\/[^\\\\/]\\\\S+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"RARROW","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"->"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Dot","definition":{"$type":"RegexToken","regex":"/\\\\b\\\\.\\\\b/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NotEqual","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"!="}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Eq","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"="}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"OpenBlock","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"{"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CloseBlock","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":"}"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Colon","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SemiColon","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":";"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"Comma","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TagID","definition":{"$type":"TerminalGroup","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@57"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@60"}},{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@60"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@61"}}]},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@58"}}]},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@59"}}],"cardinality":"*"}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","definition":{"$type":"TerminalGroup","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@60"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@58"}}]},{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@60"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@61"}}]},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@58"}}]},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@59"}}],"cardinality":"*"}]},"fragment":false,"hidden":false}],"types":[{"$type":"Type","name":"ViewRule","type":{"$type":"UnionType","types":[{"$type":"SimpleType","typeRef":{"$ref":"#/rules@30"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@33"}},{"$type":"SimpleType","typeRef":{"$ref":"#/rules@32"}}]}}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"interfaces":[],"usedGrammars":[]}`));