tree-sitter-kdl 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/.eslintrc.js +20 -0
  2. package/.gitattributes +3 -0
  3. package/.github/workflows/build.yml +51 -0
  4. package/.github/workflows/ci.yml +34 -0
  5. package/.github/workflows/fuzz.yml +21 -0
  6. package/Cargo.toml +22 -0
  7. package/README.md +5 -0
  8. package/binding.gyp +20 -0
  9. package/bindings/node/binding.cc +28 -0
  10. package/bindings/node/index.js +19 -0
  11. package/bindings/rust/build.rs +38 -0
  12. package/bindings/rust/lib.rs +52 -0
  13. package/examples/01-basic.kdl +1 -0
  14. package/examples/02-multiple-values.kdl +1 -0
  15. package/examples/03-properties.kdl +1 -0
  16. package/examples/04-child-nodes.kdl +6 -0
  17. package/examples/05-node-terminators.kdl +1 -0
  18. package/examples/06-string-formats.kdl +2 -0
  19. package/examples/07-multiline-string.kdl +3 -0
  20. package/examples/08-raw-string.kdl +1 -0
  21. package/examples/09-number.kdl +1 -0
  22. package/examples/10-number-forms.kdl +3 -0
  23. package/examples/11-number-with-underscores.kdl +1 -0
  24. package/examples/12-comments.kdl +11 -0
  25. package/examples/13-slashdash-comments.kdl +11 -0
  26. package/examples/14-type-annotations.kdl +4 -0
  27. package/examples/15-rich-example.kdl +21 -0
  28. package/grammar.js +304 -0
  29. package/package.json +38 -0
  30. package/queries/folds.scm +3 -0
  31. package/queries/highlights.scm +55 -0
  32. package/script/known_failures.txt +0 -0
  33. package/script/parse-examples +40 -0
  34. package/src/grammar.json +1396 -0
  35. package/src/node-types.json +626 -0
  36. package/src/parser.c +17477 -0
  37. package/src/scanner.c +30 -0
  38. package/src/tree_sitter/parser.h +224 -0
  39. package/test/corpus/node.txt +2784 -0
@@ -0,0 +1,2784 @@
1
+ =====================
2
+ Test Empty String Arg
3
+ =====================
4
+
5
+ node ""
6
+
7
+ ---
8
+
9
+ (document
10
+ (node
11
+ (identifier)
12
+ (node_field
13
+ (value
14
+ (string)))))
15
+
16
+ ================
17
+ Test Single Prop
18
+ ================
19
+
20
+ node prop="val"
21
+
22
+ ---
23
+
24
+ (document
25
+ (node
26
+ (identifier)
27
+ (node_field
28
+ (prop
29
+ (identifier)
30
+ (value
31
+ (string
32
+ (string_fragment)))))))
33
+
34
+ ==============
35
+ Test Node Type
36
+ ==============
37
+
38
+ (type)node
39
+
40
+ ---
41
+
42
+ (document
43
+ (node
44
+ (type
45
+ (identifier))
46
+ (identifier)))
47
+
48
+ ==================
49
+ Test Block Comment
50
+ ==================
51
+
52
+ node "arg"
53
+
54
+ ---
55
+
56
+ (document
57
+ (node
58
+ (identifier)
59
+ (node_field
60
+ (value
61
+ (string
62
+ (string_fragment))))))
63
+
64
+ =====================
65
+ Test Raw String Quote
66
+ =====================
67
+
68
+ node "a\"b"
69
+
70
+ ---
71
+
72
+ (document
73
+ (node
74
+ (identifier)
75
+ (node_field
76
+ (value
77
+ (string
78
+ (string_fragment
79
+ (escape)))))))
80
+
81
+ ==================
82
+ Test Arg Null Type
83
+ ==================
84
+
85
+ node (type)null
86
+
87
+ ---
88
+
89
+ (document
90
+ (node
91
+ (identifier)
92
+ (node_field
93
+ (value
94
+ (type
95
+ (identifier))
96
+ (keyword)))))
97
+
98
+ =========================
99
+ Test Semicolon Terminated
100
+ =========================
101
+
102
+ node1
103
+
104
+ ---
105
+
106
+ (document
107
+ (node
108
+ (identifier)))
109
+
110
+ =====================================
111
+ Test Slashdash Arg Before Newline Esc
112
+ =====================================
113
+
114
+ node
115
+
116
+ ---
117
+
118
+ (document
119
+ (node
120
+ (identifier)))
121
+
122
+ =================
123
+ Test Repeated Arg
124
+ =================
125
+
126
+ node "arg" "arg"
127
+
128
+ ---
129
+
130
+ (document
131
+ (node
132
+ (identifier)
133
+ (node_field
134
+ (value
135
+ (string
136
+ (string_fragment))))
137
+ (node_field
138
+ (value
139
+ (string
140
+ (string_fragment))))))
141
+
142
+ ===================
143
+ Test Arg False Type
144
+ ===================
145
+
146
+ node (type)false
147
+
148
+ ---
149
+
150
+ (document
151
+ (node
152
+ (identifier)
153
+ (node_field
154
+ (value
155
+ (type
156
+ (identifier))
157
+ (keyword
158
+ (boolean))))))
159
+
160
+ ==================
161
+ Test Arg True Type
162
+ ==================
163
+
164
+ node (type)true
165
+
166
+ ---
167
+
168
+ (document
169
+ (node
170
+ (identifier)
171
+ (node_field
172
+ (value
173
+ (type
174
+ (identifier))
175
+ (keyword
176
+ (boolean))))))
177
+
178
+ ===================
179
+ Test Commented Node
180
+ ===================
181
+
182
+ node_2
183
+
184
+ ---
185
+
186
+ (document
187
+ (node
188
+ (identifier)))
189
+
190
+ ============
191
+ Test Escline
192
+ ============
193
+
194
+ node "arg"
195
+
196
+ ---
197
+
198
+ (document
199
+ (node
200
+ (identifier)
201
+ (node_field
202
+ (value
203
+ (string
204
+ (string_fragment))))))
205
+
206
+ =========================
207
+ Test Raw String Backslash
208
+ =========================
209
+
210
+ node "\\n"
211
+
212
+ ---
213
+
214
+ (document
215
+ (node
216
+ (identifier)
217
+ (node_field
218
+ (value
219
+ (string
220
+ (string_fragment
221
+ (escape)))))))
222
+
223
+ ========================
224
+ Test Preserve Node Order
225
+ ========================
226
+
227
+ node2
228
+ node5
229
+ node1
230
+
231
+ ---
232
+
233
+ (document
234
+ (node
235
+ (identifier))
236
+ (node
237
+ (identifier))
238
+ (node
239
+ (identifier)))
240
+
241
+ ========================
242
+ Test Slashdash Only Node
243
+ ========================
244
+
245
+
246
+
247
+ ---
248
+
249
+ (document)
250
+
251
+ =========================
252
+ Test Empty Quoted Node Id
253
+ =========================
254
+
255
+ "" "arg"
256
+
257
+ ---
258
+
259
+ (document
260
+ (node
261
+ (identifier
262
+ (string))
263
+ (node_field
264
+ (value
265
+ (string
266
+ (string_fragment))))))
267
+
268
+ =================
269
+ Test Boolean Prop
270
+ =================
271
+
272
+ node prop1=true prop2=false
273
+
274
+ ---
275
+
276
+ (document
277
+ (node
278
+ (identifier)
279
+ (node_field
280
+ (prop
281
+ (identifier)
282
+ (value
283
+ (keyword
284
+ (boolean)))))
285
+ (node_field
286
+ (prop
287
+ (identifier)
288
+ (value
289
+ (keyword
290
+ (boolean)))))))
291
+
292
+ ===========================
293
+ Test Slashdash In Slashdash
294
+ ===========================
295
+
296
+ node2
297
+
298
+ ---
299
+
300
+ (document
301
+ (node
302
+ (identifier)))
303
+
304
+ ==============================
305
+ Test Newlines In Block Comment
306
+ ==============================
307
+
308
+ node "arg"
309
+
310
+ ---
311
+
312
+ (document
313
+ (node
314
+ (identifier)
315
+ (node_field
316
+ (value
317
+ (string
318
+ (string_fragment))))))
319
+
320
+ ===================================
321
+ Test Slashdash Only Node With Space
322
+ ===================================
323
+
324
+
325
+
326
+ ---
327
+
328
+ (document)
329
+
330
+ ===================
331
+ Test Prop Zero Type
332
+ ===================
333
+
334
+ node key=(type)0
335
+
336
+ ---
337
+
338
+ (document
339
+ (node
340
+ (identifier)
341
+ (node_field
342
+ (prop
343
+ (identifier)
344
+ (value
345
+ (type
346
+ (identifier))
347
+ (number))))))
348
+
349
+ =============================
350
+ Test Preserve Duplicate Nodes
351
+ =============================
352
+
353
+ node
354
+ node
355
+
356
+ ---
357
+
358
+ (document
359
+ (node
360
+ (identifier))
361
+ (node
362
+ (identifier)))
363
+
364
+ =====================
365
+ Test Prop String Type
366
+ =====================
367
+
368
+ node key=(type)"str"
369
+
370
+ ---
371
+
372
+ (document
373
+ (node
374
+ (identifier)
375
+ (node_field
376
+ (prop
377
+ (identifier)
378
+ (value
379
+ (type
380
+ (identifier))
381
+ (string
382
+ (string_fragment)))))))
383
+
384
+ =============================
385
+ Test Unusual Chars In Bare Id
386
+ =============================
387
+
388
+ foo123~!@#$%^&*.:'|?+ "weeee"
389
+
390
+ ---
391
+
392
+ (document
393
+ (node
394
+ (identifier)
395
+ (node_field
396
+ (value
397
+ (string
398
+ (string_fragment))))))
399
+
400
+ =================
401
+ Test Just Newline
402
+ =================
403
+
404
+
405
+
406
+ ---
407
+
408
+ (document)
409
+
410
+ =====================
411
+ Test Quoted Node Name
412
+ =====================
413
+
414
+ "0node"
415
+
416
+ ---
417
+
418
+ (document
419
+ (node
420
+ (identifier
421
+ (string
422
+ (string_fragment)))))
423
+
424
+ =================
425
+ Test Numeric Prop
426
+ =================
427
+
428
+ node prop=10.0
429
+
430
+ ---
431
+
432
+ (document
433
+ (node
434
+ (identifier)
435
+ (node_field
436
+ (prop
437
+ (identifier)
438
+ (value
439
+ (number
440
+ (decimal)))))))
441
+
442
+ =======================================
443
+ Test Unusual Bare Id Chars In Quoted Id
444
+ =======================================
445
+
446
+ foo123~!@#$%^&*.:'|?+ "weeee"
447
+
448
+ ---
449
+
450
+ (document
451
+ (node
452
+ (identifier)
453
+ (node_field
454
+ (value
455
+ (string
456
+ (string_fragment))))))
457
+
458
+ ======================
459
+ Test Only Line Comment
460
+ ======================
461
+
462
+
463
+
464
+ ---
465
+
466
+ (document)
467
+
468
+ ==============
469
+ Test Null Prop
470
+ ==============
471
+
472
+ node prop=null
473
+
474
+ ---
475
+
476
+ (document
477
+ (node
478
+ (identifier)
479
+ (node_field
480
+ (prop
481
+ (identifier)
482
+ (value
483
+ (keyword))))))
484
+
485
+ =========================
486
+ Test Escline Line Comment
487
+ =========================
488
+
489
+ node "arg" "arg2\n"
490
+
491
+ ---
492
+
493
+ (document
494
+ (node
495
+ (identifier)
496
+ (node_field
497
+ (value
498
+ (string
499
+ (string_fragment))))
500
+ (node_field
501
+ (value
502
+ (string
503
+ (string_fragment
504
+ (escape)))))))
505
+
506
+ ===========================
507
+ Test Only Line Comment Crlf
508
+ ===========================
509
+
510
+
511
+
512
+ ---
513
+
514
+ (document)
515
+
516
+ ==============
517
+ Test Tab Space
518
+ ==============
519
+
520
+ node
521
+
522
+ ---
523
+
524
+ (document
525
+ (node
526
+ (identifier)))
527
+
528
+ ================
529
+ Test Numeric Arg
530
+ ================
531
+
532
+ node 15.7
533
+
534
+ ---
535
+
536
+ (document
537
+ (node
538
+ (identifier)
539
+ (node_field
540
+ (value
541
+ (number
542
+ (decimal))))))
543
+
544
+ ==========================
545
+ Test Esc Newline In String
546
+ ==========================
547
+
548
+ node "hello\nworld"
549
+
550
+ ---
551
+
552
+ (document
553
+ (node
554
+ (identifier)
555
+ (node_field
556
+ (value
557
+ (string
558
+ (string_fragment
559
+ (escape)))))))
560
+
561
+ ====================
562
+ Test All Node Fields
563
+ ====================
564
+
565
+ node {
566
+ inner_node
567
+ }
568
+
569
+ ---
570
+
571
+ (document
572
+ (node
573
+ (identifier)
574
+ (node_children
575
+ (node
576
+ (identifier)))))
577
+
578
+ ============================
579
+ Test Slashdash Node In Child
580
+ ============================
581
+
582
+ node1
583
+
584
+ ---
585
+
586
+ (document
587
+ (node
588
+ (identifier)))
589
+
590
+ ==========
591
+ Test Empty
592
+ ==========
593
+
594
+
595
+
596
+ ---
597
+
598
+ (document)
599
+
600
+ =====================
601
+ Test Hex Leading Zero
602
+ =====================
603
+
604
+ node 1
605
+
606
+ ---
607
+
608
+ (document
609
+ (node
610
+ (identifier)
611
+ (node_field
612
+ (value
613
+ (number)))))
614
+
615
+ ======================
616
+ Test Positive Exponent
617
+ ======================
618
+
619
+ node 1.0E+10
620
+
621
+ ---
622
+
623
+ (document
624
+ (node
625
+ (identifier)
626
+ (node_field
627
+ (value
628
+ (number
629
+ (decimal)
630
+ (exponent))))))
631
+
632
+ ============================
633
+ Test Null Prefix In Prop Key
634
+ ============================
635
+
636
+ node null_id=1
637
+
638
+ ---
639
+
640
+ (document
641
+ (node
642
+ (identifier)
643
+ (node_field
644
+ (prop
645
+ (identifier)
646
+ (value
647
+ (number))))))
648
+
649
+ ============================
650
+ Test Int Multiple Underscore
651
+ ============================
652
+
653
+ node 1234
654
+
655
+ ---
656
+
657
+ (document
658
+ (node
659
+ (identifier)
660
+ (node_field
661
+ (value
662
+ (number)))))
663
+
664
+ ==============================
665
+ Test Block Comment Before Node
666
+ ==============================
667
+
668
+ node
669
+
670
+ ---
671
+
672
+ (document
673
+ (node
674
+ (identifier)))
675
+
676
+ =================
677
+ Test Escline Node
678
+ =================
679
+
680
+ node1
681
+ node2
682
+
683
+ ---
684
+
685
+ (document
686
+ (node
687
+ (identifier))
688
+ (node
689
+ (identifier)))
690
+
691
+ =====================
692
+ Test Quoted Prop Name
693
+ =====================
694
+
695
+ node "0prop"="val"
696
+
697
+ ---
698
+
699
+ (document
700
+ (node
701
+ (identifier)
702
+ (node_field
703
+ (prop
704
+ (identifier
705
+ (string
706
+ (string_fragment)))
707
+ (value
708
+ (string
709
+ (string_fragment)))))))
710
+
711
+ ==========================
712
+ Test Raw String Just Quote
713
+ ==========================
714
+
715
+ node "\""
716
+
717
+ ---
718
+
719
+ (document
720
+ (node
721
+ (identifier)
722
+ (node_field
723
+ (value
724
+ (string
725
+ (string_fragment
726
+ (escape)))))))
727
+
728
+ ==============
729
+ Test Prop Type
730
+ ==============
731
+
732
+ node key=(type)true
733
+
734
+ ---
735
+
736
+ (document
737
+ (node
738
+ (identifier)
739
+ (node_field
740
+ (prop
741
+ (identifier)
742
+ (value
743
+ (type
744
+ (identifier))
745
+ (keyword
746
+ (boolean)))))))
747
+
748
+ ====================
749
+ Test Blank Node Type
750
+ ====================
751
+
752
+ ("")node
753
+
754
+ ---
755
+
756
+ (document
757
+ (node
758
+ (type
759
+ (identifier
760
+ (string)))
761
+ (identifier)))
762
+
763
+ ==========
764
+ Test Octal
765
+ ==========
766
+
767
+ node 16434824
768
+
769
+ ---
770
+
771
+ (document
772
+ (node
773
+ (identifier)
774
+ (node_field
775
+ (value
776
+ (number)))))
777
+
778
+ ===================
779
+ Test Slashdash Prop
780
+ ===================
781
+
782
+ node "arg"
783
+
784
+ ---
785
+
786
+ (document
787
+ (node
788
+ (identifier)
789
+ (node_field
790
+ (value
791
+ (string
792
+ (string_fragment))))))
793
+
794
+ ====================
795
+ Test Leading Newline
796
+ ====================
797
+
798
+ node
799
+
800
+ ---
801
+
802
+ (document
803
+ (node
804
+ (identifier)))
805
+
806
+ ===========================
807
+ Test Slashdash Raw Prop Key
808
+ ===========================
809
+
810
+ node
811
+
812
+ ---
813
+
814
+ (document
815
+ (node
816
+ (identifier)))
817
+
818
+ ==================
819
+ Test Repeated Prop
820
+ ==================
821
+
822
+ node prop=11
823
+
824
+ ---
825
+
826
+ (document
827
+ (node
828
+ (identifier)
829
+ (node_field
830
+ (prop
831
+ (identifier)
832
+ (value
833
+ (number))))))
834
+
835
+ ==================
836
+ Test Raw Prop Type
837
+ ==================
838
+
839
+ node key=(type)true
840
+
841
+ ---
842
+
843
+ (document
844
+ (node
845
+ (identifier)
846
+ (node_field
847
+ (prop
848
+ (identifier)
849
+ (value
850
+ (type
851
+ (identifier))
852
+ (keyword
853
+ (boolean)))))))
854
+
855
+ =====================
856
+ Test Leading Zero Int
857
+ =====================
858
+
859
+ node 11
860
+
861
+ ---
862
+
863
+ (document
864
+ (node
865
+ (identifier)
866
+ (node_field
867
+ (value
868
+ (number)))))
869
+
870
+ ===================
871
+ Test Commented Line
872
+ ===================
873
+
874
+ node_2
875
+
876
+ ---
877
+
878
+ (document
879
+ (node
880
+ (identifier)))
881
+
882
+ ============================
883
+ Test Slashdash Repeated Prop
884
+ ============================
885
+
886
+ node arg="correct"
887
+
888
+ ---
889
+
890
+ (document
891
+ (node
892
+ (identifier)
893
+ (node_field
894
+ (prop
895
+ (identifier)
896
+ (value
897
+ (string
898
+ (string_fragment)))))))
899
+
900
+ ========================
901
+ Test Underscore In Octal
902
+ ========================
903
+
904
+ node 342391
905
+
906
+ ---
907
+
908
+ (document
909
+ (node
910
+ (identifier)
911
+ (node_field
912
+ (value
913
+ (number)))))
914
+
915
+ =============
916
+ Test Zero Int
917
+ =============
918
+
919
+ node 0
920
+
921
+ ---
922
+
923
+ (document
924
+ (node
925
+ (identifier)
926
+ (node_field
927
+ (value
928
+ (number)))))
929
+
930
+ ================
931
+ Test Empty Child
932
+ ================
933
+
934
+ node
935
+
936
+ ---
937
+
938
+ (document
939
+ (node
940
+ (identifier)))
941
+
942
+ ===========================
943
+ Test Null Prefix In Bare Id
944
+ ===========================
945
+
946
+ null_id
947
+
948
+ ---
949
+
950
+ (document
951
+ (node
952
+ (identifier)))
953
+
954
+ ===============================
955
+ Test Binary Trailing Underscore
956
+ ===============================
957
+
958
+ node 2
959
+
960
+ ---
961
+
962
+ (document
963
+ (node
964
+ (identifier)
965
+ (node_field
966
+ (value
967
+ (number)))))
968
+
969
+ ====================
970
+ Test Commented Child
971
+ ====================
972
+
973
+ node "arg"
974
+
975
+ ---
976
+
977
+ (document
978
+ (node
979
+ (identifier)
980
+ (node_field
981
+ (value
982
+ (string
983
+ (string_fragment))))))
984
+
985
+ =============================
986
+ Test Block Comment After Node
987
+ =============================
988
+
989
+ node "arg"
990
+
991
+ ---
992
+
993
+ (document
994
+ (node
995
+ (identifier)
996
+ (node_field
997
+ (value
998
+ (string
999
+ (string_fragment))))))
1000
+
1001
+ ====================
1002
+ Test Raw String Prop
1003
+ ====================
1004
+
1005
+ node_1 prop="arg\\n"
1006
+ node_2 prop="\"arg\"\\n"
1007
+ node_3 prop="#\"arg\"#\\n"
1008
+
1009
+ ---
1010
+
1011
+ (document
1012
+ (node
1013
+ (identifier)
1014
+ (node_field
1015
+ (prop
1016
+ (identifier)
1017
+ (value
1018
+ (string
1019
+ (string_fragment
1020
+ (escape)))))))
1021
+ (node
1022
+ (identifier)
1023
+ (node_field
1024
+ (prop
1025
+ (identifier)
1026
+ (value
1027
+ (string
1028
+ (string_fragment
1029
+ (escape)
1030
+ (escape)
1031
+ (escape)))))))
1032
+ (node
1033
+ (identifier)
1034
+ (node_field
1035
+ (prop
1036
+ (identifier)
1037
+ (value
1038
+ (string
1039
+ (string_fragment
1040
+ (escape)
1041
+ (escape)
1042
+ (escape))))))))
1043
+
1044
+ ============
1045
+ Test Only Cr
1046
+ ============
1047
+
1048
+
1049
+
1050
+ ---
1051
+
1052
+ (document)
1053
+
1054
+ =====================
1055
+ Test Quoted Node Type
1056
+ =====================
1057
+
1058
+ ("type/")node
1059
+
1060
+ ---
1061
+
1062
+ (document
1063
+ (node
1064
+ (type
1065
+ (identifier
1066
+ (string
1067
+ (string_fragment))))
1068
+ (identifier)))
1069
+
1070
+ ===============
1071
+ Test Node False
1072
+ ===============
1073
+
1074
+ node false
1075
+
1076
+ ---
1077
+
1078
+ (document
1079
+ (node
1080
+ (identifier)
1081
+ (node_field
1082
+ (value
1083
+ (keyword
1084
+ (boolean))))))
1085
+
1086
+ =======================
1087
+ Test Sci Notation Large
1088
+ =======================
1089
+
1090
+ node prop=1.23E+1000
1091
+
1092
+ ---
1093
+
1094
+ (document
1095
+ (node
1096
+ (identifier)
1097
+ (node_field
1098
+ (prop
1099
+ (identifier)
1100
+ (value
1101
+ (number
1102
+ (decimal)
1103
+ (exponent)))))))
1104
+
1105
+ ==================
1106
+ Test Arg Zero Type
1107
+ ==================
1108
+
1109
+ node (type)0
1110
+
1111
+ ---
1112
+
1113
+ (document
1114
+ (node
1115
+ (identifier)
1116
+ (node_field
1117
+ (value
1118
+ (type
1119
+ (identifier))
1120
+ (number)))))
1121
+
1122
+ ===========================
1123
+ Test Empty Child Whitespace
1124
+ ===========================
1125
+
1126
+ node
1127
+
1128
+ ---
1129
+
1130
+ (document
1131
+ (node
1132
+ (identifier)))
1133
+
1134
+ ==============================
1135
+ Test Semicolon Separated Nodes
1136
+ ==============================
1137
+
1138
+ node1
1139
+ node2
1140
+
1141
+ ---
1142
+
1143
+ (document
1144
+ (node
1145
+ (identifier))
1146
+ (node
1147
+ (identifier)))
1148
+
1149
+ =======================
1150
+ Test Semicolon In Child
1151
+ =======================
1152
+
1153
+ node1 {
1154
+ node2
1155
+ }
1156
+
1157
+ ---
1158
+
1159
+ (document
1160
+ (node
1161
+ (identifier)
1162
+ (node_children
1163
+ (node
1164
+ (identifier)))))
1165
+
1166
+ =========================
1167
+ Test Prop Raw String Type
1168
+ =========================
1169
+
1170
+ node key=(type)"str"
1171
+
1172
+ ---
1173
+
1174
+ (document
1175
+ (node
1176
+ (identifier)
1177
+ (node_field
1178
+ (prop
1179
+ (identifier)
1180
+ (value
1181
+ (type
1182
+ (identifier))
1183
+ (string
1184
+ (string_fragment)))))))
1185
+
1186
+ ==========================
1187
+ Test Block Comment Newline
1188
+ ==========================
1189
+
1190
+
1191
+
1192
+ ---
1193
+
1194
+ (document)
1195
+
1196
+ ====================
1197
+ Test Blank Prop Type
1198
+ ====================
1199
+
1200
+ node key=("")true
1201
+
1202
+ ---
1203
+
1204
+ (document
1205
+ (node
1206
+ (identifier)
1207
+ (node_field
1208
+ (prop
1209
+ (identifier)
1210
+ (value
1211
+ (type
1212
+ (identifier
1213
+ (string)))
1214
+ (keyword
1215
+ (boolean)))))))
1216
+
1217
+ ========================
1218
+ Test Slashdash Full Node
1219
+ ========================
1220
+
1221
+
1222
+
1223
+ ---
1224
+
1225
+ (document)
1226
+
1227
+ =============================
1228
+ Test False Prefix In Prop Key
1229
+ =============================
1230
+
1231
+ node false_id=1
1232
+
1233
+ ---
1234
+
1235
+ (document
1236
+ (node
1237
+ (identifier)
1238
+ (node_field
1239
+ (prop
1240
+ (identifier)
1241
+ (value
1242
+ (number))))))
1243
+
1244
+ ======================
1245
+ Test Negative Exponent
1246
+ ======================
1247
+
1248
+ node 1.0E-10
1249
+
1250
+ ---
1251
+
1252
+ (document
1253
+ (node
1254
+ (identifier)
1255
+ (node_field
1256
+ (value
1257
+ (number
1258
+ (decimal)
1259
+ (exponent))))))
1260
+
1261
+ ===============
1262
+ Test Single Arg
1263
+ ===============
1264
+
1265
+ node "arg"
1266
+
1267
+ ---
1268
+
1269
+ (document
1270
+ (node
1271
+ (identifier)
1272
+ (node_field
1273
+ (value
1274
+ (string
1275
+ (string_fragment))))))
1276
+
1277
+ =============================
1278
+ Test Raw String Multiple Hash
1279
+ =============================
1280
+
1281
+ node "\"#\"##"
1282
+
1283
+ ---
1284
+
1285
+ (document
1286
+ (node
1287
+ (identifier)
1288
+ (node_field
1289
+ (value
1290
+ (string
1291
+ (string_fragment
1292
+ (escape)
1293
+ (escape)))))))
1294
+
1295
+ ================
1296
+ Test Boolean Arg
1297
+ ================
1298
+
1299
+ node false true
1300
+
1301
+ ---
1302
+
1303
+ (document
1304
+ (node
1305
+ (identifier)
1306
+ (node_field
1307
+ (value
1308
+ (keyword
1309
+ (boolean))))
1310
+ (node_field
1311
+ (value
1312
+ (keyword
1313
+ (boolean))))))
1314
+
1315
+ ========================
1316
+ Test Arg Raw String Type
1317
+ ========================
1318
+
1319
+ node (type)"str"
1320
+
1321
+ ---
1322
+
1323
+ (document
1324
+ (node
1325
+ (identifier)
1326
+ (node_field
1327
+ (value
1328
+ (type
1329
+ (identifier))
1330
+ (string
1331
+ (string_fragment))))))
1332
+
1333
+ ===================================
1334
+ Test Nested Multiline Block Comment
1335
+ ===================================
1336
+
1337
+ node "arg"
1338
+
1339
+ ---
1340
+
1341
+ (document
1342
+ (node
1343
+ (identifier)
1344
+ (node_field
1345
+ (value
1346
+ (string
1347
+ (string_fragment))))))
1348
+
1349
+ =================
1350
+ Test Positive Int
1351
+ =================
1352
+
1353
+ node 10
1354
+
1355
+ ---
1356
+
1357
+ (document
1358
+ (node
1359
+ (identifier)
1360
+ (node_field
1361
+ (value
1362
+ (number)))))
1363
+
1364
+ ====================
1365
+ Test Prop Float Type
1366
+ ====================
1367
+
1368
+ node key=(type)2.5E+10
1369
+
1370
+ ---
1371
+
1372
+ (document
1373
+ (node
1374
+ (identifier)
1375
+ (node_field
1376
+ (prop
1377
+ (identifier)
1378
+ (value
1379
+ (type
1380
+ (identifier))
1381
+ (number
1382
+ (decimal)
1383
+ (exponent)))))))
1384
+
1385
+ =============
1386
+ Test Arg Type
1387
+ =============
1388
+
1389
+ node (type)"arg"
1390
+
1391
+ ---
1392
+
1393
+ (document
1394
+ (node
1395
+ (identifier)
1396
+ (node_field
1397
+ (value
1398
+ (type
1399
+ (identifier))
1400
+ (string
1401
+ (string_fragment))))))
1402
+
1403
+ ============================
1404
+ Test Trailing Underscore Hex
1405
+ ============================
1406
+
1407
+ node 1194684
1408
+
1409
+ ---
1410
+
1411
+ (document
1412
+ (node
1413
+ (identifier)
1414
+ (node_field
1415
+ (value
1416
+ (number)))))
1417
+
1418
+ =========================
1419
+ Test Nested Block Comment
1420
+ =========================
1421
+
1422
+ node "arg"
1423
+
1424
+ ---
1425
+
1426
+ (document
1427
+ (node
1428
+ (identifier)
1429
+ (node_field
1430
+ (value
1431
+ (string
1432
+ (string_fragment))))))
1433
+
1434
+ ====================
1435
+ Test Quoted Arg Type
1436
+ ====================
1437
+
1438
+ node ("type/")10
1439
+
1440
+ ---
1441
+
1442
+ (document
1443
+ (node
1444
+ (identifier)
1445
+ (node_field
1446
+ (value
1447
+ (type
1448
+ (identifier
1449
+ (string
1450
+ (string_fragment))))
1451
+ (number)))))
1452
+
1453
+ ====================
1454
+ Test Nested Comments
1455
+ ====================
1456
+
1457
+ node "arg"
1458
+
1459
+ ---
1460
+
1461
+ (document
1462
+ (node
1463
+ (identifier)
1464
+ (node_field
1465
+ (value
1466
+ (string
1467
+ (string_fragment))))))
1468
+
1469
+ ==============================
1470
+ Test Raw String Just Backslash
1471
+ ==============================
1472
+
1473
+ "\\"
1474
+
1475
+ ---
1476
+
1477
+ (document
1478
+ (node
1479
+ (identifier
1480
+ (string
1481
+ (string_fragment
1482
+ (escape))))))
1483
+
1484
+ ===================
1485
+ Test Commented Prop
1486
+ ===================
1487
+
1488
+ node "arg"
1489
+
1490
+ ---
1491
+
1492
+ (document
1493
+ (node
1494
+ (identifier)
1495
+ (node_field
1496
+ (value
1497
+ (string
1498
+ (string_fragment))))))
1499
+
1500
+ =======================
1501
+ Test Crlf Between Nodes
1502
+ =======================
1503
+
1504
+ node1
1505
+ node2
1506
+
1507
+ ---
1508
+
1509
+ (document
1510
+ (node
1511
+ (identifier))
1512
+ (node
1513
+ (identifier)))
1514
+
1515
+ =============
1516
+ Test Null Arg
1517
+ =============
1518
+
1519
+ node null
1520
+
1521
+ ---
1522
+
1523
+ (document
1524
+ (node
1525
+ (identifier)
1526
+ (node_field
1527
+ (value
1528
+ (keyword)))))
1529
+
1530
+ =====================
1531
+ Test Leading Zero Oct
1532
+ =====================
1533
+
1534
+ node 1
1535
+
1536
+ ---
1537
+
1538
+ (document
1539
+ (node
1540
+ (identifier)
1541
+ (node_field
1542
+ (value
1543
+ (number)))))
1544
+
1545
+ =======================
1546
+ Test Raw String Newline
1547
+ =======================
1548
+
1549
+ node "\nhello\nworld\n"
1550
+
1551
+ ---
1552
+
1553
+ (document
1554
+ (node
1555
+ (identifier)
1556
+ (node_field
1557
+ (value
1558
+ (string
1559
+ (string_fragment
1560
+ (escape)
1561
+ (escape)
1562
+ (escape)))))))
1563
+
1564
+ ==========================
1565
+ Test Empty Child Same Line
1566
+ ==========================
1567
+
1568
+ node
1569
+
1570
+ ---
1571
+
1572
+ (document
1573
+ (node
1574
+ (identifier)))
1575
+
1576
+ =================
1577
+ Test Just Node Id
1578
+ =================
1579
+
1580
+ node
1581
+
1582
+ ---
1583
+
1584
+ (document
1585
+ (node
1586
+ (identifier)))
1587
+
1588
+ ==============
1589
+ Test Same Args
1590
+ ==============
1591
+
1592
+ node "whee" "whee"
1593
+
1594
+ ---
1595
+
1596
+ (document
1597
+ (node
1598
+ (identifier)
1599
+ (node_field
1600
+ (value
1601
+ (string
1602
+ (string_fragment))))
1603
+ (node_field
1604
+ (value
1605
+ (string
1606
+ (string_fragment))))))
1607
+
1608
+ ==========================
1609
+ Test Empty Quoted Prop Key
1610
+ ==========================
1611
+
1612
+ node ""="empty"
1613
+
1614
+ ---
1615
+
1616
+ (document
1617
+ (node
1618
+ (identifier)
1619
+ (node_field
1620
+ (prop
1621
+ (identifier
1622
+ (string))
1623
+ (value
1624
+ (string
1625
+ (string_fragment)))))))
1626
+
1627
+ ==========================
1628
+ Test Esc Unicode In String
1629
+ ==========================
1630
+
1631
+ node "hello\nworld"
1632
+
1633
+ ---
1634
+
1635
+ (document
1636
+ (node
1637
+ (identifier)
1638
+ (node_field
1639
+ (value
1640
+ (string
1641
+ (string_fragment
1642
+ (escape)))))))
1643
+
1644
+ ===========
1645
+ Test Binary
1646
+ ===========
1647
+
1648
+ node 2
1649
+
1650
+ ---
1651
+
1652
+ (document
1653
+ (node
1654
+ (identifier)
1655
+ (node_field
1656
+ (value
1657
+ (number)))))
1658
+
1659
+ ================
1660
+ Test All Escapes
1661
+ ================
1662
+
1663
+ node "\"\\/\b\f\n\r\t"
1664
+
1665
+ ---
1666
+
1667
+ (document
1668
+ (node
1669
+ (identifier)
1670
+ (node_field
1671
+ (value
1672
+ (string
1673
+ (string_fragment
1674
+ (escape)
1675
+ (escape)
1676
+ (escape)
1677
+ (escape)
1678
+ (escape)
1679
+ (escape)
1680
+ (escape)))))))
1681
+
1682
+ ====================
1683
+ Test Arg String Type
1684
+ ====================
1685
+
1686
+ node (type)"str"
1687
+
1688
+ ---
1689
+
1690
+ (document
1691
+ (node
1692
+ (identifier)
1693
+ (node_field
1694
+ (value
1695
+ (type
1696
+ (identifier))
1697
+ (string
1698
+ (string_fragment))))))
1699
+
1700
+ ===================
1701
+ Test Quoted Numeric
1702
+ ===================
1703
+
1704
+ node prop="10.0"
1705
+
1706
+ ---
1707
+
1708
+ (document
1709
+ (node
1710
+ (identifier)
1711
+ (node_field
1712
+ (prop
1713
+ (identifier)
1714
+ (value
1715
+ (string
1716
+ (string_fragment)))))))
1717
+
1718
+ ===========================
1719
+ Test Underscore In Exponent
1720
+ ===========================
1721
+
1722
+ node 1.0E-100
1723
+
1724
+ ---
1725
+
1726
+ (document
1727
+ (node
1728
+ (identifier)
1729
+ (node_field
1730
+ (value
1731
+ (number
1732
+ (decimal)
1733
+ (exponent))))))
1734
+
1735
+ ==============================
1736
+ Test Trailing Underscore Octal
1737
+ ==============================
1738
+
1739
+ node 83
1740
+
1741
+ ---
1742
+
1743
+ (document
1744
+ (node
1745
+ (identifier)
1746
+ (node_field
1747
+ (value
1748
+ (number)))))
1749
+
1750
+ ====================
1751
+ Test Prop False Type
1752
+ ====================
1753
+
1754
+ node key=(type)false
1755
+
1756
+ ---
1757
+
1758
+ (document
1759
+ (node
1760
+ (identifier)
1761
+ (node_field
1762
+ (prop
1763
+ (identifier)
1764
+ (value
1765
+ (type
1766
+ (identifier))
1767
+ (keyword
1768
+ (boolean)))))))
1769
+
1770
+ ========================
1771
+ Test Leading Zero Binary
1772
+ ========================
1773
+
1774
+ node 1
1775
+
1776
+ ---
1777
+
1778
+ (document
1779
+ (node
1780
+ (identifier)
1781
+ (node_field
1782
+ (value
1783
+ (number)))))
1784
+
1785
+ ===================
1786
+ Test Raw String Arg
1787
+ ===================
1788
+
1789
+ node_1 "arg\\n"
1790
+ node_2 "\"arg\\n\"and stuff"
1791
+ node_3 "#\"arg\\n\"#and stuff"
1792
+
1793
+ ---
1794
+
1795
+ (document
1796
+ (node
1797
+ (identifier)
1798
+ (node_field
1799
+ (value
1800
+ (string
1801
+ (string_fragment
1802
+ (escape))))))
1803
+ (node
1804
+ (identifier)
1805
+ (node_field
1806
+ (value
1807
+ (string
1808
+ (string_fragment
1809
+ (escape)
1810
+ (escape)
1811
+ (escape))))))
1812
+ (node
1813
+ (identifier)
1814
+ (node_field
1815
+ (value
1816
+ (string
1817
+ (string_fragment
1818
+ (escape)
1819
+ (escape)
1820
+ (escape)))))))
1821
+
1822
+ ================================
1823
+ Test Empty Child Different Lines
1824
+ ================================
1825
+
1826
+ node
1827
+
1828
+ ---
1829
+
1830
+ (document
1831
+ (node
1832
+ (identifier)))
1833
+
1834
+ ======================
1835
+ Test Binary Underscore
1836
+ ======================
1837
+
1838
+ node 2
1839
+
1840
+ ---
1841
+
1842
+ (document
1843
+ (node
1844
+ (identifier)
1845
+ (node_field
1846
+ (value
1847
+ (number)))))
1848
+
1849
+ ===================
1850
+ Test Blank Arg Type
1851
+ ===================
1852
+
1853
+ node ("")10
1854
+
1855
+ ---
1856
+
1857
+ (document
1858
+ (node
1859
+ (identifier)
1860
+ (node_field
1861
+ (value
1862
+ (type
1863
+ (identifier
1864
+ (string)))
1865
+ (number)))))
1866
+
1867
+ ========================
1868
+ Test Parse All Arg Types
1869
+ ========================
1870
+
1871
+ node 1 1.0 1.0E+10 1.0E-10 1 7 2 "arg" "arg\\\\" true false null
1872
+
1873
+ ---
1874
+
1875
+ (document
1876
+ (node
1877
+ (identifier)
1878
+ (node_field
1879
+ (value
1880
+ (number)))
1881
+ (node_field
1882
+ (value
1883
+ (number
1884
+ (decimal))))
1885
+ (node_field
1886
+ (value
1887
+ (number
1888
+ (decimal)
1889
+ (exponent))))
1890
+ (node_field
1891
+ (value
1892
+ (number
1893
+ (decimal)
1894
+ (exponent))))
1895
+ (node_field
1896
+ (value
1897
+ (number)))
1898
+ (node_field
1899
+ (value
1900
+ (number)))
1901
+ (node_field
1902
+ (value
1903
+ (number)))
1904
+ (node_field
1905
+ (value
1906
+ (string
1907
+ (string_fragment))))
1908
+ (node_field
1909
+ (value
1910
+ (string
1911
+ (string_fragment
1912
+ (escape)
1913
+ (escape)))))
1914
+ (node_field
1915
+ (value
1916
+ (keyword
1917
+ (boolean))))
1918
+ (node_field
1919
+ (value
1920
+ (keyword
1921
+ (boolean))))
1922
+ (node_field
1923
+ (value
1924
+ (keyword)))))
1925
+
1926
+ ============================
1927
+ Test True Prefix In Prop Key
1928
+ ============================
1929
+
1930
+ node true_id=1
1931
+
1932
+ ---
1933
+
1934
+ (document
1935
+ (node
1936
+ (identifier)
1937
+ (node_field
1938
+ (prop
1939
+ (identifier)
1940
+ (value
1941
+ (number))))))
1942
+
1943
+ ==========================
1944
+ Test Semicolon After Child
1945
+ ==========================
1946
+
1947
+ node {
1948
+ childnode
1949
+ }
1950
+
1951
+ ---
1952
+
1953
+ (document
1954
+ (node
1955
+ (identifier)
1956
+ (node_children
1957
+ (node
1958
+ (identifier)))))
1959
+
1960
+ ==========================
1961
+ Test Slashdash Empty Child
1962
+ ==========================
1963
+
1964
+ node
1965
+
1966
+ ---
1967
+
1968
+ (document
1969
+ (node
1970
+ (identifier)))
1971
+
1972
+ ========================
1973
+ Test Underscore In Float
1974
+ ========================
1975
+
1976
+ node 11.0
1977
+
1978
+ ---
1979
+
1980
+ (document
1981
+ (node
1982
+ (identifier)
1983
+ (node_field
1984
+ (value
1985
+ (number
1986
+ (decimal))))))
1987
+
1988
+ ======================
1989
+ Test Underscore In Int
1990
+ ======================
1991
+
1992
+ node 10
1993
+
1994
+ ---
1995
+
1996
+ (document
1997
+ (node
1998
+ (identifier)
1999
+ (node_field
2000
+ (value
2001
+ (number)))))
2002
+
2003
+ =====================
2004
+ Test Quoted Prop Type
2005
+ =====================
2006
+
2007
+ node key=("type/")true
2008
+
2009
+ ---
2010
+
2011
+ (document
2012
+ (node
2013
+ (identifier)
2014
+ (node_field
2015
+ (prop
2016
+ (identifier)
2017
+ (value
2018
+ (type
2019
+ (identifier
2020
+ (string
2021
+ (string_fragment))))
2022
+ (keyword
2023
+ (boolean)))))))
2024
+
2025
+ ==================
2026
+ Test Commented Arg
2027
+ ==================
2028
+
2029
+ node "arg2"
2030
+
2031
+ ---
2032
+
2033
+ (document
2034
+ (node
2035
+ (identifier)
2036
+ (node_field
2037
+ (value
2038
+ (string
2039
+ (string_fragment))))))
2040
+
2041
+ ====================
2042
+ Test Nested Children
2043
+ ====================
2044
+
2045
+ node1 {
2046
+ node2 {
2047
+ node
2048
+ }
2049
+ }
2050
+
2051
+ ---
2052
+
2053
+ (document
2054
+ (node
2055
+ (identifier)
2056
+ (node_children
2057
+ (node
2058
+ (identifier)
2059
+ (node_children
2060
+ (node
2061
+ (identifier)))))))
2062
+
2063
+ ==============
2064
+ Test Node True
2065
+ ==============
2066
+
2067
+ node true
2068
+
2069
+ ---
2070
+
2071
+ (document
2072
+ (node
2073
+ (identifier)
2074
+ (node_field
2075
+ (value
2076
+ (keyword
2077
+ (boolean))))))
2078
+
2079
+ ==============================
2080
+ Test Slashdash Negative Number
2081
+ ==============================
2082
+
2083
+ node 2.0
2084
+
2085
+ ---
2086
+
2087
+ (document
2088
+ (node
2089
+ (identifier)
2090
+ (node_field
2091
+ (value
2092
+ (number
2093
+ (decimal))))))
2094
+
2095
+ ===============
2096
+ Test Just Space
2097
+ ===============
2098
+
2099
+
2100
+
2101
+ ---
2102
+
2103
+ (document)
2104
+
2105
+ ==============================
2106
+ Test Asterisk In Block Comment
2107
+ ==============================
2108
+
2109
+ node
2110
+
2111
+ ---
2112
+
2113
+ (document
2114
+ (node
2115
+ (identifier)))
2116
+
2117
+ ============
2118
+ Test Hex Int
2119
+ ============
2120
+
2121
+ node 207698809136909011942886895
2122
+
2123
+ ---
2124
+
2125
+ (document
2126
+ (node
2127
+ (identifier)
2128
+ (node_field
2129
+ (value
2130
+ (number)))))
2131
+
2132
+ ==========================
2133
+ Test Newline Between Nodes
2134
+ ==========================
2135
+
2136
+ node1
2137
+ node2
2138
+
2139
+ ---
2140
+
2141
+ (document
2142
+ (node
2143
+ (identifier))
2144
+ (node
2145
+ (identifier)))
2146
+
2147
+ ==========
2148
+ Test Emoji
2149
+ ==========
2150
+
2151
+ node "😀"
2152
+
2153
+ ---
2154
+
2155
+ (document
2156
+ (node
2157
+ (identifier)
2158
+ (node_field
2159
+ (value
2160
+ (string
2161
+ (string_fragment))))))
2162
+
2163
+ ====================================
2164
+ Test Slashdash Arg After Newline Esc
2165
+ ====================================
2166
+
2167
+ node "arg2"
2168
+
2169
+ ---
2170
+
2171
+ (document
2172
+ (node
2173
+ (identifier)
2174
+ (node_field
2175
+ (value
2176
+ (string
2177
+ (string_fragment))))))
2178
+
2179
+ ==============================
2180
+ Test Only Line Comment Newline
2181
+ ==============================
2182
+
2183
+
2184
+
2185
+ ---
2186
+
2187
+ (document)
2188
+
2189
+ ===============
2190
+ Test String Arg
2191
+ ===============
2192
+
2193
+ node "arg"
2194
+
2195
+ ---
2196
+
2197
+ (document
2198
+ (node
2199
+ (identifier)
2200
+ (node_field
2201
+ (value
2202
+ (string
2203
+ (string_fragment))))))
2204
+
2205
+ ===========================
2206
+ Test Arg And Prop Same Name
2207
+ ===========================
2208
+
2209
+ node "arg" arg="val"
2210
+
2211
+ ---
2212
+
2213
+ (document
2214
+ (node
2215
+ (identifier)
2216
+ (node_field
2217
+ (value
2218
+ (string
2219
+ (string_fragment))))
2220
+ (node_field
2221
+ (prop
2222
+ (identifier)
2223
+ (value
2224
+ (string
2225
+ (string_fragment)))))))
2226
+
2227
+ =====================
2228
+ Test Multiline String
2229
+ =====================
2230
+
2231
+ node " hey\neveryone\nhow goes?\n"
2232
+
2233
+ ---
2234
+
2235
+ (document
2236
+ (node
2237
+ (identifier)
2238
+ (node_field
2239
+ (value
2240
+ (string
2241
+ (string_fragment
2242
+ (escape)
2243
+ (escape)
2244
+ (escape)))))))
2245
+
2246
+ =================
2247
+ Test Negative Int
2248
+ =================
2249
+
2250
+ node -10 prop=-15
2251
+
2252
+ ---
2253
+
2254
+ (document
2255
+ (node
2256
+ (identifier)
2257
+ (node_field
2258
+ (value
2259
+ (number)))
2260
+ (node_field
2261
+ (prop
2262
+ (identifier)
2263
+ (value
2264
+ (number))))))
2265
+
2266
+ ======================
2267
+ Test Multiline Comment
2268
+ ======================
2269
+
2270
+ node "arg"
2271
+
2272
+ ---
2273
+
2274
+ (document
2275
+ (node
2276
+ (identifier)
2277
+ (node_field
2278
+ (value
2279
+ (string
2280
+ (string_fragment))))))
2281
+
2282
+ ==================
2283
+ Test Prop Hex Type
2284
+ ==================
2285
+
2286
+ node key=(type)16
2287
+
2288
+ ---
2289
+
2290
+ (document
2291
+ (node
2292
+ (identifier)
2293
+ (node_field
2294
+ (prop
2295
+ (identifier)
2296
+ (value
2297
+ (type
2298
+ (identifier))
2299
+ (number))))))
2300
+
2301
+ ===============
2302
+ Test Zero Float
2303
+ ===============
2304
+
2305
+ node 0.0
2306
+
2307
+ ---
2308
+
2309
+ (document
2310
+ (node
2311
+ (identifier)
2312
+ (node_field
2313
+ (value
2314
+ (number
2315
+ (decimal))))))
2316
+
2317
+ ========
2318
+ Test Hex
2319
+ ========
2320
+
2321
+ node 12379813812177893520
2322
+
2323
+ ---
2324
+
2325
+ (document
2326
+ (node
2327
+ (identifier)
2328
+ (node_field
2329
+ (value
2330
+ (number)))))
2331
+
2332
+ ===========
2333
+ Test R Node
2334
+ ===========
2335
+
2336
+ r "arg"
2337
+
2338
+ ---
2339
+
2340
+ (document
2341
+ (node
2342
+ (identifier)
2343
+ (node_field
2344
+ (value
2345
+ (string
2346
+ (string_fragment))))))
2347
+
2348
+ =============
2349
+ Test Zero Arg
2350
+ =============
2351
+
2352
+ node 0
2353
+
2354
+ ---
2355
+
2356
+ (document
2357
+ (node
2358
+ (identifier)
2359
+ (node_field
2360
+ (value
2361
+ (number)))))
2362
+
2363
+ ========================
2364
+ Test Semicolon Separated
2365
+ ========================
2366
+
2367
+ node1
2368
+ node2
2369
+
2370
+ ---
2371
+
2372
+ (document
2373
+ (node
2374
+ (identifier))
2375
+ (node
2376
+ (identifier)))
2377
+
2378
+ ===============
2379
+ Test Bare Emoji
2380
+ ===============
2381
+
2382
+ 😁 "happy!"
2383
+
2384
+ ---
2385
+
2386
+ (document
2387
+ (node
2388
+ (identifier)
2389
+ (node_field
2390
+ (value
2391
+ (string
2392
+ (string_fragment))))))
2393
+
2394
+ ===========================
2395
+ Test Underscore In Fraction
2396
+ ===========================
2397
+
2398
+ node 1.02
2399
+
2400
+ ---
2401
+
2402
+ (document
2403
+ (node
2404
+ (identifier)
2405
+ (node_field
2406
+ (value
2407
+ (number
2408
+ (decimal))))))
2409
+
2410
+ ====================
2411
+ Test Multiline Nodes
2412
+ ====================
2413
+
2414
+ node "arg1" "arg2"
2415
+
2416
+ ---
2417
+
2418
+ (document
2419
+ (node
2420
+ (identifier)
2421
+ (node_field
2422
+ (value
2423
+ (string
2424
+ (string_fragment))))
2425
+ (node_field
2426
+ (value
2427
+ (string
2428
+ (string_fragment))))))
2429
+
2430
+ ==============================
2431
+ Test Slashdash Node With Child
2432
+ ==============================
2433
+
2434
+
2435
+
2436
+ ---
2437
+
2438
+ (document)
2439
+
2440
+ =================
2441
+ Test Arg Hex Type
2442
+ =================
2443
+
2444
+ node (type)16
2445
+
2446
+ ---
2447
+
2448
+ (document
2449
+ (node
2450
+ (identifier)
2451
+ (node_field
2452
+ (value
2453
+ (type
2454
+ (identifier))
2455
+ (number)))))
2456
+
2457
+ ==================
2458
+ Test Trailing Crlf
2459
+ ==================
2460
+
2461
+ node
2462
+
2463
+ ---
2464
+
2465
+ (document
2466
+ (node
2467
+ (identifier)))
2468
+
2469
+ ===================
2470
+ Test Prop Null Type
2471
+ ===================
2472
+
2473
+ node key=(type)null
2474
+
2475
+ ---
2476
+
2477
+ (document
2478
+ (node
2479
+ (identifier)
2480
+ (node_field
2481
+ (prop
2482
+ (identifier)
2483
+ (value
2484
+ (type
2485
+ (identifier))
2486
+ (keyword))))))
2487
+
2488
+ ================
2489
+ Test String Prop
2490
+ ================
2491
+
2492
+ node prop="val"
2493
+
2494
+ ---
2495
+
2496
+ (document
2497
+ (node
2498
+ (identifier)
2499
+ (node_field
2500
+ (prop
2501
+ (identifier)
2502
+ (value
2503
+ (string
2504
+ (string_fragment)))))))
2505
+
2506
+ =======================
2507
+ Test Sci Notation Small
2508
+ =======================
2509
+
2510
+ node prop=1.23E-1000
2511
+
2512
+ ---
2513
+
2514
+ (document
2515
+ (node
2516
+ (identifier)
2517
+ (node_field
2518
+ (prop
2519
+ (identifier)
2520
+ (value
2521
+ (number
2522
+ (decimal)
2523
+ (exponent)))))))
2524
+
2525
+ ========================
2526
+ Test No Decimal Exponent
2527
+ ========================
2528
+
2529
+ node 1E+10
2530
+
2531
+ ---
2532
+
2533
+ (document
2534
+ (node
2535
+ (identifier)
2536
+ (node_field
2537
+ (value
2538
+ (number
2539
+ (exponent))))))
2540
+
2541
+ =================
2542
+ Test Raw Arg Type
2543
+ =================
2544
+
2545
+ node (type)true
2546
+
2547
+ ---
2548
+
2549
+ (document
2550
+ (node
2551
+ (identifier)
2552
+ (node_field
2553
+ (value
2554
+ (type
2555
+ (identifier))
2556
+ (keyword
2557
+ (boolean))))))
2558
+
2559
+ ==============
2560
+ Test Two Nodes
2561
+ ==============
2562
+
2563
+ node1
2564
+ node2
2565
+
2566
+ ---
2567
+
2568
+ (document
2569
+ (node
2570
+ (identifier))
2571
+ (node
2572
+ (identifier)))
2573
+
2574
+ ===========================
2575
+ Test True Prefix In Bare Id
2576
+ ===========================
2577
+
2578
+ true_id
2579
+
2580
+ ---
2581
+
2582
+ (document
2583
+ (node
2584
+ (identifier)))
2585
+
2586
+ ============================
2587
+ Test False Prefix In Bare Id
2588
+ ============================
2589
+
2590
+ false_id
2591
+
2592
+ ---
2593
+
2594
+ (document
2595
+ (node
2596
+ (identifier)))
2597
+
2598
+ ===========================
2599
+ Test Raw String Hash No Esc
2600
+ ===========================
2601
+
2602
+ node "#"
2603
+
2604
+ ---
2605
+
2606
+ (document
2607
+ (node
2608
+ (identifier)
2609
+ (node_field
2610
+ (value
2611
+ (string
2612
+ (string_fragment))))))
2613
+
2614
+ ==================
2615
+ Test Raw Node Type
2616
+ ==================
2617
+
2618
+ (type)node
2619
+
2620
+ ---
2621
+
2622
+ (document
2623
+ (node
2624
+ (type
2625
+ (identifier))
2626
+ (identifier)))
2627
+
2628
+ ==================
2629
+ Test Raw Node Name
2630
+ ==================
2631
+
2632
+ "\\node"
2633
+
2634
+ ---
2635
+
2636
+ (document
2637
+ (node
2638
+ (identifier
2639
+ (string
2640
+ (string_fragment
2641
+ (escape))))))
2642
+
2643
+ ========================
2644
+ Test Hex Int Underscores
2645
+ ========================
2646
+
2647
+ node 737894400291
2648
+
2649
+ ---
2650
+
2651
+ (document
2652
+ (node
2653
+ (identifier)
2654
+ (node_field
2655
+ (value
2656
+ (number)))))
2657
+
2658
+ =======================
2659
+ Test Just Block Comment
2660
+ =======================
2661
+
2662
+
2663
+
2664
+ ---
2665
+
2666
+ (document)
2667
+
2668
+ ===================
2669
+ Test Arg Float Type
2670
+ ===================
2671
+
2672
+ node (type)2.5
2673
+
2674
+ ---
2675
+
2676
+ (document
2677
+ (node
2678
+ (identifier)
2679
+ (node_field
2680
+ (value
2681
+ (type
2682
+ (identifier))
2683
+ (number
2684
+ (decimal))))))
2685
+
2686
+ =======================================
2687
+ Test Block Comment Before Node No Space
2688
+ =======================================
2689
+
2690
+ node
2691
+
2692
+ ---
2693
+
2694
+ (document
2695
+ (node
2696
+ (identifier)))
2697
+
2698
+ ====================
2699
+ Test Same Name Nodes
2700
+ ====================
2701
+
2702
+ node
2703
+ node
2704
+
2705
+ ---
2706
+
2707
+ (document
2708
+ (node
2709
+ (identifier))
2710
+ (node
2711
+ (identifier)))
2712
+
2713
+ ===================
2714
+ Test Negative Float
2715
+ ===================
2716
+
2717
+ node -1.0 key=-10.0
2718
+
2719
+ ---
2720
+
2721
+ (document
2722
+ (node
2723
+ (identifier)
2724
+ (node_field
2725
+ (value
2726
+ (number
2727
+ (decimal))))
2728
+ (node_field
2729
+ (prop
2730
+ (identifier)
2731
+ (value
2732
+ (number
2733
+ (decimal)))))))
2734
+
2735
+ ====================
2736
+ Test Slashdash Child
2737
+ ====================
2738
+
2739
+ node
2740
+
2741
+ ---
2742
+
2743
+ (document
2744
+ (node
2745
+ (identifier)))
2746
+
2747
+ ===================
2748
+ Test Prop True Type
2749
+ ===================
2750
+
2751
+ node key=(type)true
2752
+
2753
+ ---
2754
+
2755
+ (document
2756
+ (node
2757
+ (identifier)
2758
+ (node_field
2759
+ (prop
2760
+ (identifier)
2761
+ (value
2762
+ (type
2763
+ (identifier))
2764
+ (keyword
2765
+ (boolean)))))))
2766
+
2767
+ ===============
2768
+ Test Just Child
2769
+ ===============
2770
+
2771
+ node {
2772
+ inner_node
2773
+ }
2774
+
2775
+ ---
2776
+
2777
+ (document
2778
+ (node
2779
+ (identifier)
2780
+ (node_children
2781
+ (node
2782
+ (identifier)))))
2783
+
2784
+