siren 0.2.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,1039 @@
1
+ module Siren
2
+ module Json
3
+ include Treetop::Runtime
4
+
5
+ def root
6
+ @root || :value
7
+ end
8
+
9
+ module Value0
10
+ def space
11
+ elements[0]
12
+ end
13
+
14
+ def data
15
+ elements[1]
16
+ end
17
+
18
+ def space
19
+ elements[2]
20
+ end
21
+ end
22
+
23
+ module Value1
24
+ def value
25
+ data.value
26
+ end
27
+ end
28
+
29
+ def _nt_value
30
+ start_index = index
31
+ if node_cache[:value].has_key?(index)
32
+ cached = node_cache[:value][index]
33
+ @index = cached.interval.end if cached
34
+ return cached
35
+ end
36
+
37
+ i0, s0 = index, []
38
+ r1 = _nt_space
39
+ s0 << r1
40
+ if r1
41
+ i2 = index
42
+ r3 = _nt_object
43
+ if r3
44
+ r2 = r3
45
+ else
46
+ r4 = _nt_array
47
+ if r4
48
+ r2 = r4
49
+ else
50
+ r5 = _nt_string
51
+ if r5
52
+ r2 = r5
53
+ else
54
+ r6 = _nt_number
55
+ if r6
56
+ r2 = r6
57
+ else
58
+ r7 = _nt_true
59
+ if r7
60
+ r2 = r7
61
+ else
62
+ r8 = _nt_false
63
+ if r8
64
+ r2 = r8
65
+ else
66
+ r9 = _nt_null
67
+ if r9
68
+ r2 = r9
69
+ else
70
+ self.index = i2
71
+ r2 = nil
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
79
+ s0 << r2
80
+ if r2
81
+ r10 = _nt_space
82
+ s0 << r10
83
+ end
84
+ end
85
+ if s0.last
86
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
87
+ r0.extend(Value0)
88
+ r0.extend(Value1)
89
+ else
90
+ self.index = i0
91
+ r0 = nil
92
+ end
93
+
94
+ node_cache[:value][start_index] = r0
95
+
96
+ return r0
97
+ end
98
+
99
+ module Object0
100
+ def key_value_pair
101
+ elements[1]
102
+ end
103
+ end
104
+
105
+ module Object1
106
+ def first
107
+ elements[0]
108
+ end
109
+
110
+ def others
111
+ elements[1]
112
+ end
113
+ end
114
+
115
+ module Object2
116
+ def space
117
+ elements[1]
118
+ end
119
+
120
+ def list
121
+ elements[2]
122
+ end
123
+
124
+ end
125
+
126
+ module Object3
127
+ def value
128
+ pairs = [list.first] + list.others.elements.map { |e| e.key_value_pair }
129
+ pairs.inject({}) do |hash, pair|
130
+ hash[pair.string.value] = pair.value.value
131
+ hash
132
+ end
133
+ rescue
134
+ {}
135
+ end
136
+ end
137
+
138
+ def _nt_object
139
+ start_index = index
140
+ if node_cache[:object].has_key?(index)
141
+ cached = node_cache[:object][index]
142
+ @index = cached.interval.end if cached
143
+ return cached
144
+ end
145
+
146
+ i0, s0 = index, []
147
+ if input.index("{", index) == index
148
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
149
+ @index += 1
150
+ else
151
+ terminal_parse_failure("{")
152
+ r1 = nil
153
+ end
154
+ s0 << r1
155
+ if r1
156
+ r2 = _nt_space
157
+ s0 << r2
158
+ if r2
159
+ i4, s4 = index, []
160
+ r5 = _nt_key_value_pair
161
+ s4 << r5
162
+ if r5
163
+ s6, i6 = [], index
164
+ loop do
165
+ i7, s7 = index, []
166
+ if input.index(",", index) == index
167
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
168
+ @index += 1
169
+ else
170
+ terminal_parse_failure(",")
171
+ r8 = nil
172
+ end
173
+ s7 << r8
174
+ if r8
175
+ r9 = _nt_key_value_pair
176
+ s7 << r9
177
+ end
178
+ if s7.last
179
+ r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
180
+ r7.extend(Object0)
181
+ else
182
+ self.index = i7
183
+ r7 = nil
184
+ end
185
+ if r7
186
+ s6 << r7
187
+ else
188
+ break
189
+ end
190
+ end
191
+ r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
192
+ s4 << r6
193
+ end
194
+ if s4.last
195
+ r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
196
+ r4.extend(Object1)
197
+ else
198
+ self.index = i4
199
+ r4 = nil
200
+ end
201
+ if r4
202
+ r3 = r4
203
+ else
204
+ r3 = instantiate_node(SyntaxNode,input, index...index)
205
+ end
206
+ s0 << r3
207
+ if r3
208
+ if input.index("}", index) == index
209
+ r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
210
+ @index += 1
211
+ else
212
+ terminal_parse_failure("}")
213
+ r10 = nil
214
+ end
215
+ s0 << r10
216
+ end
217
+ end
218
+ end
219
+ if s0.last
220
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
221
+ r0.extend(Object2)
222
+ r0.extend(Object3)
223
+ else
224
+ self.index = i0
225
+ r0 = nil
226
+ end
227
+
228
+ node_cache[:object][start_index] = r0
229
+
230
+ return r0
231
+ end
232
+
233
+ module KeyValuePair0
234
+ def space
235
+ elements[0]
236
+ end
237
+
238
+ def string
239
+ elements[1]
240
+ end
241
+
242
+ def space
243
+ elements[2]
244
+ end
245
+
246
+ def value
247
+ elements[4]
248
+ end
249
+ end
250
+
251
+ def _nt_key_value_pair
252
+ start_index = index
253
+ if node_cache[:key_value_pair].has_key?(index)
254
+ cached = node_cache[:key_value_pair][index]
255
+ @index = cached.interval.end if cached
256
+ return cached
257
+ end
258
+
259
+ i0, s0 = index, []
260
+ r1 = _nt_space
261
+ s0 << r1
262
+ if r1
263
+ r2 = _nt_string
264
+ s0 << r2
265
+ if r2
266
+ r3 = _nt_space
267
+ s0 << r3
268
+ if r3
269
+ if input.index(":", index) == index
270
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
271
+ @index += 1
272
+ else
273
+ terminal_parse_failure(":")
274
+ r4 = nil
275
+ end
276
+ s0 << r4
277
+ if r4
278
+ r5 = _nt_value
279
+ s0 << r5
280
+ end
281
+ end
282
+ end
283
+ end
284
+ if s0.last
285
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
286
+ r0.extend(KeyValuePair0)
287
+ else
288
+ self.index = i0
289
+ r0 = nil
290
+ end
291
+
292
+ node_cache[:key_value_pair][start_index] = r0
293
+
294
+ return r0
295
+ end
296
+
297
+ module Array0
298
+ def value
299
+ elements[1]
300
+ end
301
+ end
302
+
303
+ module Array1
304
+ def first
305
+ elements[0]
306
+ end
307
+
308
+ def others
309
+ elements[1]
310
+ end
311
+ end
312
+
313
+ module Array2
314
+ def space
315
+ elements[1]
316
+ end
317
+
318
+ def list
319
+ elements[2]
320
+ end
321
+
322
+ end
323
+
324
+ module Array3
325
+ def value
326
+ [list.first.value] + list.others.elements.map { |v| v.value.value }
327
+ rescue
328
+ []
329
+ end
330
+ end
331
+
332
+ def _nt_array
333
+ start_index = index
334
+ if node_cache[:array].has_key?(index)
335
+ cached = node_cache[:array][index]
336
+ @index = cached.interval.end if cached
337
+ return cached
338
+ end
339
+
340
+ i0, s0 = index, []
341
+ if input.index("[", index) == index
342
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
343
+ @index += 1
344
+ else
345
+ terminal_parse_failure("[")
346
+ r1 = nil
347
+ end
348
+ s0 << r1
349
+ if r1
350
+ r2 = _nt_space
351
+ s0 << r2
352
+ if r2
353
+ i4, s4 = index, []
354
+ r5 = _nt_value
355
+ s4 << r5
356
+ if r5
357
+ s6, i6 = [], index
358
+ loop do
359
+ i7, s7 = index, []
360
+ if input.index(",", index) == index
361
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
362
+ @index += 1
363
+ else
364
+ terminal_parse_failure(",")
365
+ r8 = nil
366
+ end
367
+ s7 << r8
368
+ if r8
369
+ r9 = _nt_value
370
+ s7 << r9
371
+ end
372
+ if s7.last
373
+ r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
374
+ r7.extend(Array0)
375
+ else
376
+ self.index = i7
377
+ r7 = nil
378
+ end
379
+ if r7
380
+ s6 << r7
381
+ else
382
+ break
383
+ end
384
+ end
385
+ r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
386
+ s4 << r6
387
+ end
388
+ if s4.last
389
+ r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
390
+ r4.extend(Array1)
391
+ else
392
+ self.index = i4
393
+ r4 = nil
394
+ end
395
+ if r4
396
+ r3 = r4
397
+ else
398
+ r3 = instantiate_node(SyntaxNode,input, index...index)
399
+ end
400
+ s0 << r3
401
+ if r3
402
+ if input.index("]", index) == index
403
+ r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
404
+ @index += 1
405
+ else
406
+ terminal_parse_failure("]")
407
+ r10 = nil
408
+ end
409
+ s0 << r10
410
+ end
411
+ end
412
+ end
413
+ if s0.last
414
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
415
+ r0.extend(Array2)
416
+ r0.extend(Array3)
417
+ else
418
+ self.index = i0
419
+ r0 = nil
420
+ end
421
+
422
+ node_cache[:array][start_index] = r0
423
+
424
+ return r0
425
+ end
426
+
427
+ module String0
428
+ def hex
429
+ elements[1]
430
+ end
431
+
432
+ def hex
433
+ elements[2]
434
+ end
435
+
436
+ def hex
437
+ elements[3]
438
+ end
439
+
440
+ def hex
441
+ elements[4]
442
+ end
443
+ end
444
+
445
+ module String1
446
+ end
447
+
448
+ module String2
449
+ end
450
+
451
+ module String3
452
+ def value
453
+ eval(text_value)
454
+ end
455
+ end
456
+
457
+ def _nt_string
458
+ start_index = index
459
+ if node_cache[:string].has_key?(index)
460
+ cached = node_cache[:string][index]
461
+ @index = cached.interval.end if cached
462
+ return cached
463
+ end
464
+
465
+ i0, s0 = index, []
466
+ if input.index('"', index) == index
467
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
468
+ @index += 1
469
+ else
470
+ terminal_parse_failure('"')
471
+ r1 = nil
472
+ end
473
+ s0 << r1
474
+ if r1
475
+ s2, i2 = [], index
476
+ loop do
477
+ i3 = index
478
+ i4, s4 = index, []
479
+ if input.index('\\', index) == index
480
+ r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
481
+ @index += 1
482
+ else
483
+ terminal_parse_failure('\\')
484
+ r5 = nil
485
+ end
486
+ s4 << r5
487
+ if r5
488
+ i6 = index
489
+ if input.index('"', index) == index
490
+ r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
491
+ @index += 1
492
+ else
493
+ terminal_parse_failure('"')
494
+ r7 = nil
495
+ end
496
+ if r7
497
+ r6 = r7
498
+ else
499
+ if input.index('\\', index) == index
500
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
501
+ @index += 1
502
+ else
503
+ terminal_parse_failure('\\')
504
+ r8 = nil
505
+ end
506
+ if r8
507
+ r6 = r8
508
+ else
509
+ if input.index('/', index) == index
510
+ r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
511
+ @index += 1
512
+ else
513
+ terminal_parse_failure('/')
514
+ r9 = nil
515
+ end
516
+ if r9
517
+ r6 = r9
518
+ else
519
+ if input.index('b', index) == index
520
+ r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
521
+ @index += 1
522
+ else
523
+ terminal_parse_failure('b')
524
+ r10 = nil
525
+ end
526
+ if r10
527
+ r6 = r10
528
+ else
529
+ if input.index('f', index) == index
530
+ r11 = instantiate_node(SyntaxNode,input, index...(index + 1))
531
+ @index += 1
532
+ else
533
+ terminal_parse_failure('f')
534
+ r11 = nil
535
+ end
536
+ if r11
537
+ r6 = r11
538
+ else
539
+ if input.index('n', index) == index
540
+ r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
541
+ @index += 1
542
+ else
543
+ terminal_parse_failure('n')
544
+ r12 = nil
545
+ end
546
+ if r12
547
+ r6 = r12
548
+ else
549
+ if input.index('r', index) == index
550
+ r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
551
+ @index += 1
552
+ else
553
+ terminal_parse_failure('r')
554
+ r13 = nil
555
+ end
556
+ if r13
557
+ r6 = r13
558
+ else
559
+ if input.index('t', index) == index
560
+ r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
561
+ @index += 1
562
+ else
563
+ terminal_parse_failure('t')
564
+ r14 = nil
565
+ end
566
+ if r14
567
+ r6 = r14
568
+ else
569
+ i15, s15 = index, []
570
+ if input.index('u', index) == index
571
+ r16 = instantiate_node(SyntaxNode,input, index...(index + 1))
572
+ @index += 1
573
+ else
574
+ terminal_parse_failure('u')
575
+ r16 = nil
576
+ end
577
+ s15 << r16
578
+ if r16
579
+ r17 = _nt_hex
580
+ s15 << r17
581
+ if r17
582
+ r18 = _nt_hex
583
+ s15 << r18
584
+ if r18
585
+ r19 = _nt_hex
586
+ s15 << r19
587
+ if r19
588
+ r20 = _nt_hex
589
+ s15 << r20
590
+ end
591
+ end
592
+ end
593
+ end
594
+ if s15.last
595
+ r15 = instantiate_node(SyntaxNode,input, i15...index, s15)
596
+ r15.extend(String0)
597
+ else
598
+ self.index = i15
599
+ r15 = nil
600
+ end
601
+ if r15
602
+ r6 = r15
603
+ else
604
+ self.index = i6
605
+ r6 = nil
606
+ end
607
+ end
608
+ end
609
+ end
610
+ end
611
+ end
612
+ end
613
+ end
614
+ end
615
+ s4 << r6
616
+ end
617
+ if s4.last
618
+ r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
619
+ r4.extend(String1)
620
+ else
621
+ self.index = i4
622
+ r4 = nil
623
+ end
624
+ if r4
625
+ r3 = r4
626
+ else
627
+ if input.index(Regexp.new('[^\\"\\\\]'), index) == index
628
+ r21 = instantiate_node(SyntaxNode,input, index...(index + 1))
629
+ @index += 1
630
+ else
631
+ r21 = nil
632
+ end
633
+ if r21
634
+ r3 = r21
635
+ else
636
+ self.index = i3
637
+ r3 = nil
638
+ end
639
+ end
640
+ if r3
641
+ s2 << r3
642
+ else
643
+ break
644
+ end
645
+ end
646
+ r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
647
+ s0 << r2
648
+ if r2
649
+ if input.index('"', index) == index
650
+ r22 = instantiate_node(SyntaxNode,input, index...(index + 1))
651
+ @index += 1
652
+ else
653
+ terminal_parse_failure('"')
654
+ r22 = nil
655
+ end
656
+ s0 << r22
657
+ end
658
+ end
659
+ if s0.last
660
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
661
+ r0.extend(String2)
662
+ r0.extend(String3)
663
+ else
664
+ self.index = i0
665
+ r0 = nil
666
+ end
667
+
668
+ node_cache[:string][start_index] = r0
669
+
670
+ return r0
671
+ end
672
+
673
+ module Number0
674
+ end
675
+
676
+ module Number1
677
+ end
678
+
679
+ module Number2
680
+ end
681
+
682
+ module Number3
683
+ end
684
+
685
+ module Number4
686
+ def value
687
+ eval(text_value)
688
+ end
689
+ end
690
+
691
+ def _nt_number
692
+ start_index = index
693
+ if node_cache[:number].has_key?(index)
694
+ cached = node_cache[:number][index]
695
+ @index = cached.interval.end if cached
696
+ return cached
697
+ end
698
+
699
+ i0, s0 = index, []
700
+ if input.index("-", index) == index
701
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
702
+ @index += 1
703
+ else
704
+ terminal_parse_failure("-")
705
+ r2 = nil
706
+ end
707
+ if r2
708
+ r1 = r2
709
+ else
710
+ r1 = instantiate_node(SyntaxNode,input, index...index)
711
+ end
712
+ s0 << r1
713
+ if r1
714
+ i3 = index
715
+ if input.index("0", index) == index
716
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
717
+ @index += 1
718
+ else
719
+ terminal_parse_failure("0")
720
+ r4 = nil
721
+ end
722
+ if r4
723
+ r3 = r4
724
+ else
725
+ i5, s5 = index, []
726
+ if input.index(Regexp.new('[1-9]'), index) == index
727
+ r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
728
+ @index += 1
729
+ else
730
+ r6 = nil
731
+ end
732
+ s5 << r6
733
+ if r6
734
+ s7, i7 = [], index
735
+ loop do
736
+ r8 = _nt_digit
737
+ if r8
738
+ s7 << r8
739
+ else
740
+ break
741
+ end
742
+ end
743
+ r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
744
+ s5 << r7
745
+ end
746
+ if s5.last
747
+ r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
748
+ r5.extend(Number0)
749
+ else
750
+ self.index = i5
751
+ r5 = nil
752
+ end
753
+ if r5
754
+ r3 = r5
755
+ else
756
+ self.index = i3
757
+ r3 = nil
758
+ end
759
+ end
760
+ s0 << r3
761
+ if r3
762
+ i10, s10 = index, []
763
+ if input.index(".", index) == index
764
+ r11 = instantiate_node(SyntaxNode,input, index...(index + 1))
765
+ @index += 1
766
+ else
767
+ terminal_parse_failure(".")
768
+ r11 = nil
769
+ end
770
+ s10 << r11
771
+ if r11
772
+ s12, i12 = [], index
773
+ loop do
774
+ r13 = _nt_digit
775
+ if r13
776
+ s12 << r13
777
+ else
778
+ break
779
+ end
780
+ end
781
+ if s12.empty?
782
+ self.index = i12
783
+ r12 = nil
784
+ else
785
+ r12 = instantiate_node(SyntaxNode,input, i12...index, s12)
786
+ end
787
+ s10 << r12
788
+ end
789
+ if s10.last
790
+ r10 = instantiate_node(SyntaxNode,input, i10...index, s10)
791
+ r10.extend(Number1)
792
+ else
793
+ self.index = i10
794
+ r10 = nil
795
+ end
796
+ if r10
797
+ r9 = r10
798
+ else
799
+ r9 = instantiate_node(SyntaxNode,input, index...index)
800
+ end
801
+ s0 << r9
802
+ if r9
803
+ i15, s15 = index, []
804
+ if input.index(Regexp.new('[eE]'), index) == index
805
+ r16 = instantiate_node(SyntaxNode,input, index...(index + 1))
806
+ @index += 1
807
+ else
808
+ r16 = nil
809
+ end
810
+ s15 << r16
811
+ if r16
812
+ if input.index(Regexp.new('[+-]'), index) == index
813
+ r18 = instantiate_node(SyntaxNode,input, index...(index + 1))
814
+ @index += 1
815
+ else
816
+ r18 = nil
817
+ end
818
+ if r18
819
+ r17 = r18
820
+ else
821
+ r17 = instantiate_node(SyntaxNode,input, index...index)
822
+ end
823
+ s15 << r17
824
+ if r17
825
+ s19, i19 = [], index
826
+ loop do
827
+ r20 = _nt_digit
828
+ if r20
829
+ s19 << r20
830
+ else
831
+ break
832
+ end
833
+ end
834
+ if s19.empty?
835
+ self.index = i19
836
+ r19 = nil
837
+ else
838
+ r19 = instantiate_node(SyntaxNode,input, i19...index, s19)
839
+ end
840
+ s15 << r19
841
+ end
842
+ end
843
+ if s15.last
844
+ r15 = instantiate_node(SyntaxNode,input, i15...index, s15)
845
+ r15.extend(Number2)
846
+ else
847
+ self.index = i15
848
+ r15 = nil
849
+ end
850
+ if r15
851
+ r14 = r15
852
+ else
853
+ r14 = instantiate_node(SyntaxNode,input, index...index)
854
+ end
855
+ s0 << r14
856
+ end
857
+ end
858
+ end
859
+ if s0.last
860
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
861
+ r0.extend(Number3)
862
+ r0.extend(Number4)
863
+ else
864
+ self.index = i0
865
+ r0 = nil
866
+ end
867
+
868
+ node_cache[:number][start_index] = r0
869
+
870
+ return r0
871
+ end
872
+
873
+ def _nt_digit
874
+ start_index = index
875
+ if node_cache[:digit].has_key?(index)
876
+ cached = node_cache[:digit][index]
877
+ @index = cached.interval.end if cached
878
+ return cached
879
+ end
880
+
881
+ if input.index(Regexp.new('[0-9]'), index) == index
882
+ r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
883
+ @index += 1
884
+ else
885
+ r0 = nil
886
+ end
887
+
888
+ node_cache[:digit][start_index] = r0
889
+
890
+ return r0
891
+ end
892
+
893
+ def _nt_hex
894
+ start_index = index
895
+ if node_cache[:hex].has_key?(index)
896
+ cached = node_cache[:hex][index]
897
+ @index = cached.interval.end if cached
898
+ return cached
899
+ end
900
+
901
+ i0 = index
902
+ if input.index(Regexp.new('[a-f]'), index) == index
903
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
904
+ @index += 1
905
+ else
906
+ r1 = nil
907
+ end
908
+ if r1
909
+ r0 = r1
910
+ else
911
+ r2 = _nt_digit
912
+ if r2
913
+ r0 = r2
914
+ else
915
+ self.index = i0
916
+ r0 = nil
917
+ end
918
+ end
919
+
920
+ node_cache[:hex][start_index] = r0
921
+
922
+ return r0
923
+ end
924
+
925
+ module True0
926
+ def value; true; end
927
+ end
928
+
929
+ def _nt_true
930
+ start_index = index
931
+ if node_cache[:true].has_key?(index)
932
+ cached = node_cache[:true][index]
933
+ @index = cached.interval.end if cached
934
+ return cached
935
+ end
936
+
937
+ if input.index("true", index) == index
938
+ r0 = instantiate_node(SyntaxNode,input, index...(index + 4))
939
+ r0.extend(True0)
940
+ @index += 4
941
+ else
942
+ terminal_parse_failure("true")
943
+ r0 = nil
944
+ end
945
+
946
+ node_cache[:true][start_index] = r0
947
+
948
+ return r0
949
+ end
950
+
951
+ module False0
952
+ def value; false; end
953
+ end
954
+
955
+ def _nt_false
956
+ start_index = index
957
+ if node_cache[:false].has_key?(index)
958
+ cached = node_cache[:false][index]
959
+ @index = cached.interval.end if cached
960
+ return cached
961
+ end
962
+
963
+ if input.index("false", index) == index
964
+ r0 = instantiate_node(SyntaxNode,input, index...(index + 5))
965
+ r0.extend(False0)
966
+ @index += 5
967
+ else
968
+ terminal_parse_failure("false")
969
+ r0 = nil
970
+ end
971
+
972
+ node_cache[:false][start_index] = r0
973
+
974
+ return r0
975
+ end
976
+
977
+ module Null0
978
+ def value; nil; end
979
+ end
980
+
981
+ def _nt_null
982
+ start_index = index
983
+ if node_cache[:null].has_key?(index)
984
+ cached = node_cache[:null][index]
985
+ @index = cached.interval.end if cached
986
+ return cached
987
+ end
988
+
989
+ if input.index("null", index) == index
990
+ r0 = instantiate_node(SyntaxNode,input, index...(index + 4))
991
+ r0.extend(Null0)
992
+ @index += 4
993
+ else
994
+ terminal_parse_failure("null")
995
+ r0 = nil
996
+ end
997
+
998
+ node_cache[:null][start_index] = r0
999
+
1000
+ return r0
1001
+ end
1002
+
1003
+ def _nt_space
1004
+ start_index = index
1005
+ if node_cache[:space].has_key?(index)
1006
+ cached = node_cache[:space][index]
1007
+ @index = cached.interval.end if cached
1008
+ return cached
1009
+ end
1010
+
1011
+ s0, i0 = [], index
1012
+ loop do
1013
+ if input.index(Regexp.new('[\\s\\n\\t]'), index) == index
1014
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
1015
+ @index += 1
1016
+ else
1017
+ r1 = nil
1018
+ end
1019
+ if r1
1020
+ s0 << r1
1021
+ else
1022
+ break
1023
+ end
1024
+ end
1025
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1026
+
1027
+ node_cache[:space][start_index] = r0
1028
+
1029
+ return r0
1030
+ end
1031
+
1032
+ end
1033
+
1034
+ class JsonParser < Treetop::Runtime::CompiledParser
1035
+ include Json
1036
+ end
1037
+
1038
+ end
1039
+