tree-sitter-nsis 0.1.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.
@@ -0,0 +1,1173 @@
1
+ {
2
+ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
3
+ "name": "nsis",
4
+ "word": "identifier",
5
+ "rules": {
6
+ "source_file": {
7
+ "type": "REPEAT",
8
+ "content": {
9
+ "type": "SYMBOL",
10
+ "name": "_toplevel"
11
+ }
12
+ },
13
+ "_toplevel": {
14
+ "type": "CHOICE",
15
+ "members": [
16
+ {
17
+ "type": "SYMBOL",
18
+ "name": "function_definition"
19
+ },
20
+ {
21
+ "type": "SYMBOL",
22
+ "name": "section_definition"
23
+ },
24
+ {
25
+ "type": "SYMBOL",
26
+ "name": "section_group"
27
+ },
28
+ {
29
+ "type": "SYMBOL",
30
+ "name": "page_ex_block"
31
+ },
32
+ {
33
+ "type": "SYMBOL",
34
+ "name": "macro_definition"
35
+ },
36
+ {
37
+ "type": "SYMBOL",
38
+ "name": "preproc_conditional"
39
+ },
40
+ {
41
+ "type": "SYMBOL",
42
+ "name": "statement"
43
+ },
44
+ {
45
+ "type": "SYMBOL",
46
+ "name": "label"
47
+ },
48
+ {
49
+ "type": "SYMBOL",
50
+ "name": "_newline"
51
+ }
52
+ ]
53
+ },
54
+ "_newline": {
55
+ "type": "PATTERN",
56
+ "value": "\\n"
57
+ },
58
+ "function_definition": {
59
+ "type": "SEQ",
60
+ "members": [
61
+ {
62
+ "type": "ALIAS",
63
+ "content": {
64
+ "type": "PATTERN",
65
+ "value": "function",
66
+ "flags": "i"
67
+ },
68
+ "named": false,
69
+ "value": "Function"
70
+ },
71
+ {
72
+ "type": "FIELD",
73
+ "name": "name",
74
+ "content": {
75
+ "type": "SYMBOL",
76
+ "name": "_value"
77
+ }
78
+ },
79
+ {
80
+ "type": "SYMBOL",
81
+ "name": "_newline"
82
+ },
83
+ {
84
+ "type": "REPEAT",
85
+ "content": {
86
+ "type": "SYMBOL",
87
+ "name": "_body_item"
88
+ }
89
+ },
90
+ {
91
+ "type": "ALIAS",
92
+ "content": {
93
+ "type": "PATTERN",
94
+ "value": "functionend",
95
+ "flags": "i"
96
+ },
97
+ "named": false,
98
+ "value": "FunctionEnd"
99
+ }
100
+ ]
101
+ },
102
+ "section_definition": {
103
+ "type": "SEQ",
104
+ "members": [
105
+ {
106
+ "type": "ALIAS",
107
+ "content": {
108
+ "type": "PATTERN",
109
+ "value": "section",
110
+ "flags": "i"
111
+ },
112
+ "named": false,
113
+ "value": "Section"
114
+ },
115
+ {
116
+ "type": "REPEAT",
117
+ "content": {
118
+ "type": "FIELD",
119
+ "name": "parameter",
120
+ "content": {
121
+ "type": "SYMBOL",
122
+ "name": "_value"
123
+ }
124
+ }
125
+ },
126
+ {
127
+ "type": "SYMBOL",
128
+ "name": "_newline"
129
+ },
130
+ {
131
+ "type": "REPEAT",
132
+ "content": {
133
+ "type": "SYMBOL",
134
+ "name": "_body_item"
135
+ }
136
+ },
137
+ {
138
+ "type": "ALIAS",
139
+ "content": {
140
+ "type": "PATTERN",
141
+ "value": "sectionend",
142
+ "flags": "i"
143
+ },
144
+ "named": false,
145
+ "value": "SectionEnd"
146
+ }
147
+ ]
148
+ },
149
+ "section_group": {
150
+ "type": "SEQ",
151
+ "members": [
152
+ {
153
+ "type": "ALIAS",
154
+ "content": {
155
+ "type": "PATTERN",
156
+ "value": "sectiongroup",
157
+ "flags": "i"
158
+ },
159
+ "named": false,
160
+ "value": "SectionGroup"
161
+ },
162
+ {
163
+ "type": "REPEAT",
164
+ "content": {
165
+ "type": "FIELD",
166
+ "name": "parameter",
167
+ "content": {
168
+ "type": "SYMBOL",
169
+ "name": "_value"
170
+ }
171
+ }
172
+ },
173
+ {
174
+ "type": "SYMBOL",
175
+ "name": "_newline"
176
+ },
177
+ {
178
+ "type": "REPEAT",
179
+ "content": {
180
+ "type": "CHOICE",
181
+ "members": [
182
+ {
183
+ "type": "SYMBOL",
184
+ "name": "section_definition"
185
+ },
186
+ {
187
+ "type": "SYMBOL",
188
+ "name": "section_group"
189
+ },
190
+ {
191
+ "type": "SYMBOL",
192
+ "name": "preproc_conditional"
193
+ },
194
+ {
195
+ "type": "SYMBOL",
196
+ "name": "statement"
197
+ },
198
+ {
199
+ "type": "SYMBOL",
200
+ "name": "label"
201
+ },
202
+ {
203
+ "type": "SYMBOL",
204
+ "name": "_newline"
205
+ }
206
+ ]
207
+ }
208
+ },
209
+ {
210
+ "type": "ALIAS",
211
+ "content": {
212
+ "type": "PATTERN",
213
+ "value": "sectiongroupend",
214
+ "flags": "i"
215
+ },
216
+ "named": false,
217
+ "value": "SectionGroupEnd"
218
+ }
219
+ ]
220
+ },
221
+ "page_ex_block": {
222
+ "type": "SEQ",
223
+ "members": [
224
+ {
225
+ "type": "ALIAS",
226
+ "content": {
227
+ "type": "PATTERN",
228
+ "value": "pageex",
229
+ "flags": "i"
230
+ },
231
+ "named": false,
232
+ "value": "PageEx"
233
+ },
234
+ {
235
+ "type": "CHOICE",
236
+ "members": [
237
+ {
238
+ "type": "FIELD",
239
+ "name": "type",
240
+ "content": {
241
+ "type": "SYMBOL",
242
+ "name": "_value"
243
+ }
244
+ },
245
+ {
246
+ "type": "BLANK"
247
+ }
248
+ ]
249
+ },
250
+ {
251
+ "type": "SYMBOL",
252
+ "name": "_newline"
253
+ },
254
+ {
255
+ "type": "REPEAT",
256
+ "content": {
257
+ "type": "SYMBOL",
258
+ "name": "_body_item"
259
+ }
260
+ },
261
+ {
262
+ "type": "ALIAS",
263
+ "content": {
264
+ "type": "PATTERN",
265
+ "value": "pageexend",
266
+ "flags": "i"
267
+ },
268
+ "named": false,
269
+ "value": "PageExEnd"
270
+ }
271
+ ]
272
+ },
273
+ "macro_definition": {
274
+ "type": "SEQ",
275
+ "members": [
276
+ {
277
+ "type": "ALIAS",
278
+ "content": {
279
+ "type": "PATTERN",
280
+ "value": "!macro",
281
+ "flags": "i"
282
+ },
283
+ "named": false,
284
+ "value": "!macro"
285
+ },
286
+ {
287
+ "type": "FIELD",
288
+ "name": "name",
289
+ "content": {
290
+ "type": "SYMBOL",
291
+ "name": "identifier"
292
+ }
293
+ },
294
+ {
295
+ "type": "REPEAT",
296
+ "content": {
297
+ "type": "FIELD",
298
+ "name": "parameter",
299
+ "content": {
300
+ "type": "SYMBOL",
301
+ "name": "identifier"
302
+ }
303
+ }
304
+ },
305
+ {
306
+ "type": "SYMBOL",
307
+ "name": "_newline"
308
+ },
309
+ {
310
+ "type": "REPEAT",
311
+ "content": {
312
+ "type": "SYMBOL",
313
+ "name": "_macro_body_item"
314
+ }
315
+ },
316
+ {
317
+ "type": "ALIAS",
318
+ "content": {
319
+ "type": "PATTERN",
320
+ "value": "!macroend",
321
+ "flags": "i"
322
+ },
323
+ "named": false,
324
+ "value": "!macroend"
325
+ }
326
+ ]
327
+ },
328
+ "_body_item": {
329
+ "type": "CHOICE",
330
+ "members": [
331
+ {
332
+ "type": "SYMBOL",
333
+ "name": "preproc_conditional"
334
+ },
335
+ {
336
+ "type": "SYMBOL",
337
+ "name": "statement"
338
+ },
339
+ {
340
+ "type": "SYMBOL",
341
+ "name": "label"
342
+ },
343
+ {
344
+ "type": "SYMBOL",
345
+ "name": "_newline"
346
+ }
347
+ ]
348
+ },
349
+ "_macro_body_item": {
350
+ "type": "CHOICE",
351
+ "members": [
352
+ {
353
+ "type": "SYMBOL",
354
+ "name": "function_definition"
355
+ },
356
+ {
357
+ "type": "SYMBOL",
358
+ "name": "section_definition"
359
+ },
360
+ {
361
+ "type": "SYMBOL",
362
+ "name": "section_group"
363
+ },
364
+ {
365
+ "type": "SYMBOL",
366
+ "name": "page_ex_block"
367
+ },
368
+ {
369
+ "type": "SYMBOL",
370
+ "name": "macro_definition"
371
+ },
372
+ {
373
+ "type": "SYMBOL",
374
+ "name": "preproc_conditional"
375
+ },
376
+ {
377
+ "type": "SYMBOL",
378
+ "name": "statement"
379
+ },
380
+ {
381
+ "type": "SYMBOL",
382
+ "name": "label"
383
+ },
384
+ {
385
+ "type": "SYMBOL",
386
+ "name": "_newline"
387
+ }
388
+ ]
389
+ },
390
+ "preproc_conditional": {
391
+ "type": "SEQ",
392
+ "members": [
393
+ {
394
+ "type": "FIELD",
395
+ "name": "keyword",
396
+ "content": {
397
+ "type": "ALIAS",
398
+ "content": {
399
+ "type": "SYMBOL",
400
+ "name": "_preproc_if_keyword"
401
+ },
402
+ "named": true,
403
+ "value": "preproc_keyword"
404
+ }
405
+ },
406
+ {
407
+ "type": "REPEAT",
408
+ "content": {
409
+ "type": "SYMBOL",
410
+ "name": "_value"
411
+ }
412
+ },
413
+ {
414
+ "type": "SYMBOL",
415
+ "name": "_newline"
416
+ },
417
+ {
418
+ "type": "REPEAT",
419
+ "content": {
420
+ "type": "SYMBOL",
421
+ "name": "_body_item"
422
+ }
423
+ },
424
+ {
425
+ "type": "REPEAT",
426
+ "content": {
427
+ "type": "SYMBOL",
428
+ "name": "preproc_else"
429
+ }
430
+ },
431
+ {
432
+ "type": "ALIAS",
433
+ "content": {
434
+ "type": "PATTERN",
435
+ "value": "!endif",
436
+ "flags": "i"
437
+ },
438
+ "named": false,
439
+ "value": "!endif"
440
+ }
441
+ ]
442
+ },
443
+ "preproc_else": {
444
+ "type": "SEQ",
445
+ "members": [
446
+ {
447
+ "type": "ALIAS",
448
+ "content": {
449
+ "type": "PATTERN",
450
+ "value": "!else",
451
+ "flags": "i"
452
+ },
453
+ "named": false,
454
+ "value": "!else"
455
+ },
456
+ {
457
+ "type": "CHOICE",
458
+ "members": [
459
+ {
460
+ "type": "SEQ",
461
+ "members": [
462
+ {
463
+ "type": "FIELD",
464
+ "name": "modifier",
465
+ "content": {
466
+ "type": "SYMBOL",
467
+ "name": "identifier"
468
+ }
469
+ },
470
+ {
471
+ "type": "REPEAT",
472
+ "content": {
473
+ "type": "SYMBOL",
474
+ "name": "_value"
475
+ }
476
+ }
477
+ ]
478
+ },
479
+ {
480
+ "type": "BLANK"
481
+ }
482
+ ]
483
+ },
484
+ {
485
+ "type": "SYMBOL",
486
+ "name": "_newline"
487
+ },
488
+ {
489
+ "type": "REPEAT",
490
+ "content": {
491
+ "type": "SYMBOL",
492
+ "name": "_body_item"
493
+ }
494
+ }
495
+ ]
496
+ },
497
+ "_preproc_if_keyword": {
498
+ "type": "CHOICE",
499
+ "members": [
500
+ {
501
+ "type": "PATTERN",
502
+ "value": "!ifdef",
503
+ "flags": "i"
504
+ },
505
+ {
506
+ "type": "PATTERN",
507
+ "value": "!ifndef",
508
+ "flags": "i"
509
+ },
510
+ {
511
+ "type": "PATTERN",
512
+ "value": "!ifmacrodef",
513
+ "flags": "i"
514
+ },
515
+ {
516
+ "type": "PATTERN",
517
+ "value": "!ifmacrondef",
518
+ "flags": "i"
519
+ },
520
+ {
521
+ "type": "PATTERN",
522
+ "value": "!if",
523
+ "flags": "i"
524
+ }
525
+ ]
526
+ },
527
+ "statement": {
528
+ "type": "SEQ",
529
+ "members": [
530
+ {
531
+ "type": "CHOICE",
532
+ "members": [
533
+ {
534
+ "type": "SYMBOL",
535
+ "name": "preproc_directive"
536
+ },
537
+ {
538
+ "type": "SYMBOL",
539
+ "name": "plugin_call"
540
+ },
541
+ {
542
+ "type": "SYMBOL",
543
+ "name": "variable_declaration"
544
+ },
545
+ {
546
+ "type": "SYMBOL",
547
+ "name": "command"
548
+ }
549
+ ]
550
+ },
551
+ {
552
+ "type": "SYMBOL",
553
+ "name": "_newline"
554
+ }
555
+ ]
556
+ },
557
+ "preproc_directive": {
558
+ "type": "SEQ",
559
+ "members": [
560
+ {
561
+ "type": "FIELD",
562
+ "name": "directive",
563
+ "content": {
564
+ "type": "SYMBOL",
565
+ "name": "preproc_keyword"
566
+ }
567
+ },
568
+ {
569
+ "type": "REPEAT",
570
+ "content": {
571
+ "type": "FIELD",
572
+ "name": "argument",
573
+ "content": {
574
+ "type": "SYMBOL",
575
+ "name": "_value"
576
+ }
577
+ }
578
+ }
579
+ ]
580
+ },
581
+ "preproc_keyword": {
582
+ "type": "CHOICE",
583
+ "members": [
584
+ {
585
+ "type": "PATTERN",
586
+ "value": "!addincludedir",
587
+ "flags": "i"
588
+ },
589
+ {
590
+ "type": "PATTERN",
591
+ "value": "!addplugindir",
592
+ "flags": "i"
593
+ },
594
+ {
595
+ "type": "PATTERN",
596
+ "value": "!appendfile",
597
+ "flags": "i"
598
+ },
599
+ {
600
+ "type": "PATTERN",
601
+ "value": "!assert",
602
+ "flags": "i"
603
+ },
604
+ {
605
+ "type": "PATTERN",
606
+ "value": "!cd",
607
+ "flags": "i"
608
+ },
609
+ {
610
+ "type": "PATTERN",
611
+ "value": "!define",
612
+ "flags": "i"
613
+ },
614
+ {
615
+ "type": "PATTERN",
616
+ "value": "!delfile",
617
+ "flags": "i"
618
+ },
619
+ {
620
+ "type": "PATTERN",
621
+ "value": "!echo",
622
+ "flags": "i"
623
+ },
624
+ {
625
+ "type": "PATTERN",
626
+ "value": "!error",
627
+ "flags": "i"
628
+ },
629
+ {
630
+ "type": "PATTERN",
631
+ "value": "!execute",
632
+ "flags": "i"
633
+ },
634
+ {
635
+ "type": "PATTERN",
636
+ "value": "!finalize",
637
+ "flags": "i"
638
+ },
639
+ {
640
+ "type": "PATTERN",
641
+ "value": "!getdllversion",
642
+ "flags": "i"
643
+ },
644
+ {
645
+ "type": "PATTERN",
646
+ "value": "!gettlbversion",
647
+ "flags": "i"
648
+ },
649
+ {
650
+ "type": "PATTERN",
651
+ "value": "!include",
652
+ "flags": "i"
653
+ },
654
+ {
655
+ "type": "PATTERN",
656
+ "value": "!insertmacro",
657
+ "flags": "i"
658
+ },
659
+ {
660
+ "type": "PATTERN",
661
+ "value": "!makensis",
662
+ "flags": "i"
663
+ },
664
+ {
665
+ "type": "PATTERN",
666
+ "value": "!packhdr",
667
+ "flags": "i"
668
+ },
669
+ {
670
+ "type": "PATTERN",
671
+ "value": "!pragma",
672
+ "flags": "i"
673
+ },
674
+ {
675
+ "type": "PATTERN",
676
+ "value": "!searchparse",
677
+ "flags": "i"
678
+ },
679
+ {
680
+ "type": "PATTERN",
681
+ "value": "!searchreplace",
682
+ "flags": "i"
683
+ },
684
+ {
685
+ "type": "PATTERN",
686
+ "value": "!system",
687
+ "flags": "i"
688
+ },
689
+ {
690
+ "type": "PATTERN",
691
+ "value": "!tempfile",
692
+ "flags": "i"
693
+ },
694
+ {
695
+ "type": "PATTERN",
696
+ "value": "!undef",
697
+ "flags": "i"
698
+ },
699
+ {
700
+ "type": "PATTERN",
701
+ "value": "!uninstfinalize",
702
+ "flags": "i"
703
+ },
704
+ {
705
+ "type": "PATTERN",
706
+ "value": "!verbose",
707
+ "flags": "i"
708
+ },
709
+ {
710
+ "type": "PATTERN",
711
+ "value": "!warning",
712
+ "flags": "i"
713
+ }
714
+ ]
715
+ },
716
+ "command": {
717
+ "type": "PREC_RIGHT",
718
+ "value": 0,
719
+ "content": {
720
+ "type": "SEQ",
721
+ "members": [
722
+ {
723
+ "type": "FIELD",
724
+ "name": "name",
725
+ "content": {
726
+ "type": "SYMBOL",
727
+ "name": "identifier"
728
+ }
729
+ },
730
+ {
731
+ "type": "REPEAT",
732
+ "content": {
733
+ "type": "FIELD",
734
+ "name": "argument",
735
+ "content": {
736
+ "type": "SYMBOL",
737
+ "name": "_value"
738
+ }
739
+ }
740
+ }
741
+ ]
742
+ }
743
+ },
744
+ "plugin_call": {
745
+ "type": "SEQ",
746
+ "members": [
747
+ {
748
+ "type": "FIELD",
749
+ "name": "plugin",
750
+ "content": {
751
+ "type": "SYMBOL",
752
+ "name": "identifier"
753
+ }
754
+ },
755
+ {
756
+ "type": "IMMEDIATE_TOKEN",
757
+ "content": {
758
+ "type": "STRING",
759
+ "value": "::"
760
+ }
761
+ },
762
+ {
763
+ "type": "FIELD",
764
+ "name": "function",
765
+ "content": {
766
+ "type": "SYMBOL",
767
+ "name": "identifier"
768
+ }
769
+ },
770
+ {
771
+ "type": "REPEAT",
772
+ "content": {
773
+ "type": "FIELD",
774
+ "name": "argument",
775
+ "content": {
776
+ "type": "SYMBOL",
777
+ "name": "_value"
778
+ }
779
+ }
780
+ }
781
+ ]
782
+ },
783
+ "variable_declaration": {
784
+ "type": "SEQ",
785
+ "members": [
786
+ {
787
+ "type": "ALIAS",
788
+ "content": {
789
+ "type": "PATTERN",
790
+ "value": "var",
791
+ "flags": "i"
792
+ },
793
+ "named": false,
794
+ "value": "Var"
795
+ },
796
+ {
797
+ "type": "CHOICE",
798
+ "members": [
799
+ {
800
+ "type": "SYMBOL",
801
+ "name": "flag"
802
+ },
803
+ {
804
+ "type": "BLANK"
805
+ }
806
+ ]
807
+ },
808
+ {
809
+ "type": "FIELD",
810
+ "name": "name",
811
+ "content": {
812
+ "type": "SYMBOL",
813
+ "name": "identifier"
814
+ }
815
+ }
816
+ ]
817
+ },
818
+ "label": {
819
+ "type": "SEQ",
820
+ "members": [
821
+ {
822
+ "type": "FIELD",
823
+ "name": "name",
824
+ "content": {
825
+ "type": "SYMBOL",
826
+ "name": "identifier"
827
+ }
828
+ },
829
+ {
830
+ "type": "IMMEDIATE_TOKEN",
831
+ "content": {
832
+ "type": "STRING",
833
+ "value": ":"
834
+ }
835
+ }
836
+ ]
837
+ },
838
+ "_value": {
839
+ "type": "CHOICE",
840
+ "members": [
841
+ {
842
+ "type": "SYMBOL",
843
+ "name": "string"
844
+ },
845
+ {
846
+ "type": "SYMBOL",
847
+ "name": "raw_string"
848
+ },
849
+ {
850
+ "type": "SYMBOL",
851
+ "name": "backtick_string"
852
+ },
853
+ {
854
+ "type": "SYMBOL",
855
+ "name": "variable"
856
+ },
857
+ {
858
+ "type": "SYMBOL",
859
+ "name": "define_reference"
860
+ },
861
+ {
862
+ "type": "SYMBOL",
863
+ "name": "lang_string_reference"
864
+ },
865
+ {
866
+ "type": "SYMBOL",
867
+ "name": "number"
868
+ },
869
+ {
870
+ "type": "SYMBOL",
871
+ "name": "flag"
872
+ },
873
+ {
874
+ "type": "SYMBOL",
875
+ "name": "label_reference"
876
+ },
877
+ {
878
+ "type": "SYMBOL",
879
+ "name": "comparison_operator"
880
+ },
881
+ {
882
+ "type": "SYMBOL",
883
+ "name": "pipe_operator"
884
+ },
885
+ {
886
+ "type": "SYMBOL",
887
+ "name": "identifier"
888
+ }
889
+ ]
890
+ },
891
+ "pipe_operator": {
892
+ "type": "STRING",
893
+ "value": "|"
894
+ },
895
+ "label_reference": {
896
+ "type": "PATTERN",
897
+ "value": ":[a-zA-Z_.][a-zA-Z0-9_.]*"
898
+ },
899
+ "string": {
900
+ "type": "SEQ",
901
+ "members": [
902
+ {
903
+ "type": "STRING",
904
+ "value": "\""
905
+ },
906
+ {
907
+ "type": "REPEAT",
908
+ "content": {
909
+ "type": "CHOICE",
910
+ "members": [
911
+ {
912
+ "type": "SYMBOL",
913
+ "name": "string_content"
914
+ },
915
+ {
916
+ "type": "SYMBOL",
917
+ "name": "_interpolation"
918
+ }
919
+ ]
920
+ }
921
+ },
922
+ {
923
+ "type": "STRING",
924
+ "value": "\""
925
+ }
926
+ ]
927
+ },
928
+ "raw_string": {
929
+ "type": "SEQ",
930
+ "members": [
931
+ {
932
+ "type": "STRING",
933
+ "value": "'"
934
+ },
935
+ {
936
+ "type": "REPEAT",
937
+ "content": {
938
+ "type": "CHOICE",
939
+ "members": [
940
+ {
941
+ "type": "SYMBOL",
942
+ "name": "raw_string_content"
943
+ },
944
+ {
945
+ "type": "SYMBOL",
946
+ "name": "_interpolation"
947
+ }
948
+ ]
949
+ }
950
+ },
951
+ {
952
+ "type": "STRING",
953
+ "value": "'"
954
+ }
955
+ ]
956
+ },
957
+ "backtick_string": {
958
+ "type": "SEQ",
959
+ "members": [
960
+ {
961
+ "type": "STRING",
962
+ "value": "`"
963
+ },
964
+ {
965
+ "type": "REPEAT",
966
+ "content": {
967
+ "type": "CHOICE",
968
+ "members": [
969
+ {
970
+ "type": "SYMBOL",
971
+ "name": "backtick_string_content"
972
+ },
973
+ {
974
+ "type": "SYMBOL",
975
+ "name": "_interpolation"
976
+ }
977
+ ]
978
+ }
979
+ },
980
+ {
981
+ "type": "STRING",
982
+ "value": "`"
983
+ }
984
+ ]
985
+ },
986
+ "_interpolation": {
987
+ "type": "CHOICE",
988
+ "members": [
989
+ {
990
+ "type": "SYMBOL",
991
+ "name": "variable"
992
+ },
993
+ {
994
+ "type": "SYMBOL",
995
+ "name": "define_reference"
996
+ },
997
+ {
998
+ "type": "SYMBOL",
999
+ "name": "lang_string_reference"
1000
+ },
1001
+ {
1002
+ "type": "SYMBOL",
1003
+ "name": "escape_sequence"
1004
+ }
1005
+ ]
1006
+ },
1007
+ "string_content": {
1008
+ "type": "PREC",
1009
+ "value": -1,
1010
+ "content": {
1011
+ "type": "PATTERN",
1012
+ "value": "[^\"\\n$]+"
1013
+ }
1014
+ },
1015
+ "raw_string_content": {
1016
+ "type": "PREC",
1017
+ "value": -1,
1018
+ "content": {
1019
+ "type": "PATTERN",
1020
+ "value": "[^'\\n$]+"
1021
+ }
1022
+ },
1023
+ "backtick_string_content": {
1024
+ "type": "PREC",
1025
+ "value": -1,
1026
+ "content": {
1027
+ "type": "PATTERN",
1028
+ "value": "[^`\\n$]+"
1029
+ }
1030
+ },
1031
+ "escape_sequence": {
1032
+ "type": "TOKEN",
1033
+ "content": {
1034
+ "type": "CHOICE",
1035
+ "members": [
1036
+ {
1037
+ "type": "PATTERN",
1038
+ "value": "\\$\\\\."
1039
+ },
1040
+ {
1041
+ "type": "STRING",
1042
+ "value": "$$"
1043
+ }
1044
+ ]
1045
+ }
1046
+ },
1047
+ "variable": {
1048
+ "type": "PATTERN",
1049
+ "value": "\\$([a-zA-Z_]\\w*|[0-9])"
1050
+ },
1051
+ "define_reference": {
1052
+ "type": "PATTERN",
1053
+ "value": "\\$\\{[\\!\\w\\.:\\^-]+\\}"
1054
+ },
1055
+ "lang_string_reference": {
1056
+ "type": "PATTERN",
1057
+ "value": "\\$\\([\\!\\w\\.:\\^-]+\\)"
1058
+ },
1059
+ "number": {
1060
+ "type": "PATTERN",
1061
+ "value": "[+-]?[0-9]+(\\.[0-9]+)?|0[xX][0-9a-fA-F]+"
1062
+ },
1063
+ "flag": {
1064
+ "type": "PATTERN",
1065
+ "value": "\\/[a-zA-Z_]\\w*(=[^\\s]*)?"
1066
+ },
1067
+ "comparison_operator": {
1068
+ "type": "CHOICE",
1069
+ "members": [
1070
+ {
1071
+ "type": "STRING",
1072
+ "value": "="
1073
+ },
1074
+ {
1075
+ "type": "STRING",
1076
+ "value": "!="
1077
+ },
1078
+ {
1079
+ "type": "STRING",
1080
+ "value": "<>"
1081
+ },
1082
+ {
1083
+ "type": "STRING",
1084
+ "value": "<"
1085
+ },
1086
+ {
1087
+ "type": "STRING",
1088
+ "value": ">"
1089
+ }
1090
+ ]
1091
+ },
1092
+ "identifier": {
1093
+ "type": "PATTERN",
1094
+ "value": "[a-zA-Z_.][a-zA-Z0-9_.]*"
1095
+ },
1096
+ "comment": {
1097
+ "type": "TOKEN",
1098
+ "content": {
1099
+ "type": "SEQ",
1100
+ "members": [
1101
+ {
1102
+ "type": "PATTERN",
1103
+ "value": "[;#]"
1104
+ },
1105
+ {
1106
+ "type": "PATTERN",
1107
+ "value": "[^\\n]*"
1108
+ }
1109
+ ]
1110
+ }
1111
+ },
1112
+ "block_comment": {
1113
+ "type": "TOKEN",
1114
+ "content": {
1115
+ "type": "SEQ",
1116
+ "members": [
1117
+ {
1118
+ "type": "STRING",
1119
+ "value": "/*"
1120
+ },
1121
+ {
1122
+ "type": "PATTERN",
1123
+ "value": "[^*]*\\*+([^/*][^*]*\\*+)*"
1124
+ },
1125
+ {
1126
+ "type": "STRING",
1127
+ "value": "/"
1128
+ }
1129
+ ]
1130
+ }
1131
+ },
1132
+ "line_continuation": {
1133
+ "type": "TOKEN",
1134
+ "content": {
1135
+ "type": "SEQ",
1136
+ "members": [
1137
+ {
1138
+ "type": "STRING",
1139
+ "value": "\\"
1140
+ },
1141
+ {
1142
+ "type": "PATTERN",
1143
+ "value": "\\r?\\n"
1144
+ }
1145
+ ]
1146
+ }
1147
+ }
1148
+ },
1149
+ "extras": [
1150
+ {
1151
+ "type": "PATTERN",
1152
+ "value": "[ \\t\\r]"
1153
+ },
1154
+ {
1155
+ "type": "SYMBOL",
1156
+ "name": "line_continuation"
1157
+ },
1158
+ {
1159
+ "type": "SYMBOL",
1160
+ "name": "comment"
1161
+ },
1162
+ {
1163
+ "type": "SYMBOL",
1164
+ "name": "block_comment"
1165
+ }
1166
+ ],
1167
+ "conflicts": [],
1168
+ "precedences": [],
1169
+ "externals": [],
1170
+ "inline": [],
1171
+ "supertypes": [],
1172
+ "reserved": {}
1173
+ }