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