treetop 1.4.2 → 1.4.3
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.
data/Rakefile
CHANGED
@@ -44,7 +44,10 @@ module Treetop
|
|
44
44
|
start_index = index
|
45
45
|
if node_cache[:treetop_file].has_key?(index)
|
46
46
|
cached = node_cache[:treetop_file][index]
|
47
|
-
|
47
|
+
if cached
|
48
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
49
|
+
@index = cached.interval.end
|
50
|
+
end
|
48
51
|
return cached
|
49
52
|
end
|
50
53
|
|
@@ -137,7 +140,10 @@ module Treetop
|
|
137
140
|
start_index = index
|
138
141
|
if node_cache[:require_statement].has_key?(index)
|
139
142
|
cached = node_cache[:require_statement][index]
|
140
|
-
|
143
|
+
if cached
|
144
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
145
|
+
@index = cached.interval.end
|
146
|
+
end
|
141
147
|
return cached
|
142
148
|
end
|
143
149
|
|
@@ -162,9 +168,8 @@ module Treetop
|
|
162
168
|
s4, i4 = [], index
|
163
169
|
loop do
|
164
170
|
if has_terminal?('\G[ \\t]', true, index)
|
165
|
-
next_character = index + input[index..-1].match(/\A(.)/um).end(1)
|
166
171
|
r5 = true
|
167
|
-
@index
|
172
|
+
@index += 1
|
168
173
|
else
|
169
174
|
r5 = nil
|
170
175
|
end
|
@@ -185,9 +190,8 @@ module Treetop
|
|
185
190
|
s6, i6 = [], index
|
186
191
|
loop do
|
187
192
|
if has_terminal?('\G[^\\n\\r]', true, index)
|
188
|
-
next_character = index + input[index..-1].match(/\A(.)/um).end(1)
|
189
193
|
r7 = true
|
190
|
-
@index
|
194
|
+
@index += 1
|
191
195
|
else
|
192
196
|
r7 = nil
|
193
197
|
end
|
@@ -206,9 +210,8 @@ module Treetop
|
|
206
210
|
s0 << r6
|
207
211
|
if r6
|
208
212
|
if has_terminal?('\G[\\n\\r]', true, index)
|
209
|
-
next_character = index + input[index..-1].match(/\A(.)/um).end(1)
|
210
213
|
r8 = true
|
211
|
-
@index
|
214
|
+
@index += 1
|
212
215
|
else
|
213
216
|
r8 = nil
|
214
217
|
end
|
@@ -271,7 +274,10 @@ module Treetop
|
|
271
274
|
start_index = index
|
272
275
|
if node_cache[:module_declaration].has_key?(index)
|
273
276
|
cached = node_cache[:module_declaration][index]
|
274
|
-
|
277
|
+
if cached
|
278
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
279
|
+
@index = cached.interval.end
|
280
|
+
end
|
275
281
|
return cached
|
276
282
|
end
|
277
283
|
|
@@ -290,9 +296,8 @@ module Treetop
|
|
290
296
|
s1 << r3
|
291
297
|
if r3
|
292
298
|
if has_terminal?('\G[A-Z]', true, index)
|
293
|
-
next_character = index + input[index..-1].match(/\A(.)/um).end(1)
|
294
299
|
r4 = true
|
295
|
-
@index
|
300
|
+
@index += 1
|
296
301
|
else
|
297
302
|
r4 = nil
|
298
303
|
end
|
@@ -406,7 +411,10 @@ module Treetop
|
|
406
411
|
start_index = index
|
407
412
|
if node_cache[:grammar].has_key?(index)
|
408
413
|
cached = node_cache[:grammar][index]
|
409
|
-
|
414
|
+
if cached
|
415
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
416
|
+
@index = cached.interval.end
|
417
|
+
end
|
410
418
|
return cached
|
411
419
|
end
|
412
420
|
|
@@ -502,15 +510,17 @@ module Treetop
|
|
502
510
|
start_index = index
|
503
511
|
if node_cache[:grammar_name].has_key?(index)
|
504
512
|
cached = node_cache[:grammar_name][index]
|
505
|
-
|
513
|
+
if cached
|
514
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
515
|
+
@index = cached.interval.end
|
516
|
+
end
|
506
517
|
return cached
|
507
518
|
end
|
508
519
|
|
509
520
|
i0, s0 = index, []
|
510
521
|
if has_terminal?('\G[A-Z]', true, index)
|
511
|
-
next_character = index + input[index..-1].match(/\A(.)/um).end(1)
|
512
522
|
r1 = true
|
513
|
-
@index
|
523
|
+
@index += 1
|
514
524
|
else
|
515
525
|
r1 = nil
|
516
526
|
end
|
@@ -580,7 +590,10 @@ module Treetop
|
|
580
590
|
start_index = index
|
581
591
|
if node_cache[:declaration_sequence].has_key?(index)
|
582
592
|
cached = node_cache[:declaration_sequence][index]
|
583
|
-
|
593
|
+
if cached
|
594
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
595
|
+
@index = cached.interval.end
|
596
|
+
end
|
584
597
|
return cached
|
585
598
|
end
|
586
599
|
|
@@ -650,7 +663,10 @@ module Treetop
|
|
650
663
|
start_index = index
|
651
664
|
if node_cache[:declaration].has_key?(index)
|
652
665
|
cached = node_cache[:declaration][index]
|
653
|
-
|
666
|
+
if cached
|
667
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
668
|
+
@index = cached.interval.end
|
669
|
+
end
|
654
670
|
return cached
|
655
671
|
end
|
656
672
|
|
@@ -690,7 +706,10 @@ module Treetop
|
|
690
706
|
start_index = index
|
691
707
|
if node_cache[:include_declaration].has_key?(index)
|
692
708
|
cached = node_cache[:include_declaration][index]
|
693
|
-
|
709
|
+
if cached
|
710
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
711
|
+
@index = cached.interval.end
|
712
|
+
end
|
694
713
|
return cached
|
695
714
|
end
|
696
715
|
|
@@ -708,9 +727,8 @@ module Treetop
|
|
708
727
|
s0 << r2
|
709
728
|
if r2
|
710
729
|
if has_terminal?('\G[A-Z]', true, index)
|
711
|
-
next_character = index + input[index..-1].match(/\A(.)/um).end(1)
|
712
730
|
r3 = true
|
713
|
-
@index
|
731
|
+
@index += 1
|
714
732
|
else
|
715
733
|
r3 = nil
|
716
734
|
end
|
@@ -795,7 +813,10 @@ module Treetop
|
|
795
813
|
start_index = index
|
796
814
|
if node_cache[:parsing_rule].has_key?(index)
|
797
815
|
cached = node_cache[:parsing_rule][index]
|
798
|
-
|
816
|
+
if cached
|
817
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
818
|
+
@index = cached.interval.end
|
819
|
+
end
|
799
820
|
return cached
|
800
821
|
end
|
801
822
|
|
@@ -883,7 +904,10 @@ module Treetop
|
|
883
904
|
start_index = index
|
884
905
|
if node_cache[:parsing_expression].has_key?(index)
|
885
906
|
cached = node_cache[:parsing_expression][index]
|
886
|
-
|
907
|
+
if cached
|
908
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
909
|
+
@index = cached.interval.end
|
910
|
+
end
|
887
911
|
return cached
|
888
912
|
end
|
889
913
|
|
@@ -945,7 +969,10 @@ module Treetop
|
|
945
969
|
start_index = index
|
946
970
|
if node_cache[:choice].has_key?(index)
|
947
971
|
cached = node_cache[:choice][index]
|
948
|
-
|
972
|
+
if cached
|
973
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
974
|
+
@index = cached.interval.end
|
975
|
+
end
|
949
976
|
return cached
|
950
977
|
end
|
951
978
|
|
@@ -1069,7 +1096,10 @@ module Treetop
|
|
1069
1096
|
start_index = index
|
1070
1097
|
if node_cache[:sequence].has_key?(index)
|
1071
1098
|
cached = node_cache[:sequence][index]
|
1072
|
-
|
1099
|
+
if cached
|
1100
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1101
|
+
@index = cached.interval.end
|
1102
|
+
end
|
1073
1103
|
return cached
|
1074
1104
|
end
|
1075
1105
|
|
@@ -1129,7 +1159,10 @@ module Treetop
|
|
1129
1159
|
start_index = index
|
1130
1160
|
if node_cache[:alternative].has_key?(index)
|
1131
1161
|
cached = node_cache[:alternative][index]
|
1132
|
-
|
1162
|
+
if cached
|
1163
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1164
|
+
@index = cached.interval.end
|
1165
|
+
end
|
1133
1166
|
return cached
|
1134
1167
|
end
|
1135
1168
|
|
@@ -1270,7 +1303,10 @@ module Treetop
|
|
1270
1303
|
start_index = index
|
1271
1304
|
if node_cache[:primary].has_key?(index)
|
1272
1305
|
cached = node_cache[:primary][index]
|
1273
|
-
|
1306
|
+
if cached
|
1307
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1308
|
+
@index = cached.interval.end
|
1309
|
+
end
|
1274
1310
|
return cached
|
1275
1311
|
end
|
1276
1312
|
|
@@ -1406,7 +1442,10 @@ module Treetop
|
|
1406
1442
|
start_index = index
|
1407
1443
|
if node_cache[:labeled_sequence_primary].has_key?(index)
|
1408
1444
|
cached = node_cache[:labeled_sequence_primary][index]
|
1409
|
-
|
1445
|
+
if cached
|
1446
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1447
|
+
@index = cached.interval.end
|
1448
|
+
end
|
1410
1449
|
return cached
|
1411
1450
|
end
|
1412
1451
|
|
@@ -1457,7 +1496,10 @@ module Treetop
|
|
1457
1496
|
start_index = index
|
1458
1497
|
if node_cache[:label].has_key?(index)
|
1459
1498
|
cached = node_cache[:label][index]
|
1460
|
-
|
1499
|
+
if cached
|
1500
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1501
|
+
@index = cached.interval.end
|
1502
|
+
end
|
1461
1503
|
return cached
|
1462
1504
|
end
|
1463
1505
|
|
@@ -1611,7 +1653,10 @@ module Treetop
|
|
1611
1653
|
start_index = index
|
1612
1654
|
if node_cache[:sequence_primary].has_key?(index)
|
1613
1655
|
cached = node_cache[:sequence_primary][index]
|
1614
|
-
|
1656
|
+
if cached
|
1657
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1658
|
+
@index = cached.interval.end
|
1659
|
+
end
|
1615
1660
|
return cached
|
1616
1661
|
end
|
1617
1662
|
|
@@ -1699,7 +1744,10 @@ module Treetop
|
|
1699
1744
|
start_index = index
|
1700
1745
|
if node_cache[:suffix].has_key?(index)
|
1701
1746
|
cached = node_cache[:suffix][index]
|
1702
|
-
|
1747
|
+
if cached
|
1748
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1749
|
+
@index = cached.interval.end
|
1750
|
+
end
|
1703
1751
|
return cached
|
1704
1752
|
end
|
1705
1753
|
|
@@ -1726,7 +1774,10 @@ module Treetop
|
|
1726
1774
|
start_index = index
|
1727
1775
|
if node_cache[:optional_suffix].has_key?(index)
|
1728
1776
|
cached = node_cache[:optional_suffix][index]
|
1729
|
-
|
1777
|
+
if cached
|
1778
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1779
|
+
@index = cached.interval.end
|
1780
|
+
end
|
1730
1781
|
return cached
|
1731
1782
|
end
|
1732
1783
|
|
@@ -1775,7 +1826,10 @@ module Treetop
|
|
1775
1826
|
start_index = index
|
1776
1827
|
if node_cache[:node_class_declarations].has_key?(index)
|
1777
1828
|
cached = node_cache[:node_class_declarations][index]
|
1778
|
-
|
1829
|
+
if cached
|
1830
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1831
|
+
@index = cached.interval.end
|
1832
|
+
end
|
1779
1833
|
return cached
|
1780
1834
|
end
|
1781
1835
|
|
@@ -1804,7 +1858,10 @@ module Treetop
|
|
1804
1858
|
start_index = index
|
1805
1859
|
if node_cache[:repetition_suffix].has_key?(index)
|
1806
1860
|
cached = node_cache[:repetition_suffix][index]
|
1807
|
-
|
1861
|
+
if cached
|
1862
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1863
|
+
@index = cached.interval.end
|
1864
|
+
end
|
1808
1865
|
return cached
|
1809
1866
|
end
|
1810
1867
|
|
@@ -1843,7 +1900,10 @@ module Treetop
|
|
1843
1900
|
start_index = index
|
1844
1901
|
if node_cache[:prefix].has_key?(index)
|
1845
1902
|
cached = node_cache[:prefix][index]
|
1846
|
-
|
1903
|
+
if cached
|
1904
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1905
|
+
@index = cached.interval.end
|
1906
|
+
end
|
1847
1907
|
return cached
|
1848
1908
|
end
|
1849
1909
|
|
@@ -1893,7 +1953,10 @@ module Treetop
|
|
1893
1953
|
start_index = index
|
1894
1954
|
if node_cache[:atomic].has_key?(index)
|
1895
1955
|
cached = node_cache[:atomic][index]
|
1896
|
-
|
1956
|
+
if cached
|
1957
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1958
|
+
@index = cached.interval.end
|
1959
|
+
end
|
1897
1960
|
return cached
|
1898
1961
|
end
|
1899
1962
|
|
@@ -1938,7 +2001,10 @@ module Treetop
|
|
1938
2001
|
start_index = index
|
1939
2002
|
if node_cache[:parenthesized_expression].has_key?(index)
|
1940
2003
|
cached = node_cache[:parenthesized_expression][index]
|
1941
|
-
|
2004
|
+
if cached
|
2005
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2006
|
+
@index = cached.interval.end
|
2007
|
+
end
|
1942
2008
|
return cached
|
1943
2009
|
end
|
1944
2010
|
|
@@ -2011,7 +2077,10 @@ module Treetop
|
|
2011
2077
|
start_index = index
|
2012
2078
|
if node_cache[:nonterminal].has_key?(index)
|
2013
2079
|
cached = node_cache[:nonterminal][index]
|
2014
|
-
|
2080
|
+
if cached
|
2081
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2082
|
+
@index = cached.interval.end
|
2083
|
+
end
|
2015
2084
|
return cached
|
2016
2085
|
end
|
2017
2086
|
|
@@ -2068,7 +2137,10 @@ module Treetop
|
|
2068
2137
|
start_index = index
|
2069
2138
|
if node_cache[:terminal].has_key?(index)
|
2070
2139
|
cached = node_cache[:terminal][index]
|
2071
|
-
|
2140
|
+
if cached
|
2141
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2142
|
+
@index = cached.interval.end
|
2143
|
+
end
|
2072
2144
|
return cached
|
2073
2145
|
end
|
2074
2146
|
|
@@ -2106,7 +2178,10 @@ module Treetop
|
|
2106
2178
|
start_index = index
|
2107
2179
|
if node_cache[:quoted_string].has_key?(index)
|
2108
2180
|
cached = node_cache[:quoted_string][index]
|
2109
|
-
|
2181
|
+
if cached
|
2182
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2183
|
+
@index = cached.interval.end
|
2184
|
+
end
|
2110
2185
|
return cached
|
2111
2186
|
end
|
2112
2187
|
|
@@ -2145,7 +2220,10 @@ module Treetop
|
|
2145
2220
|
start_index = index
|
2146
2221
|
if node_cache[:double_quoted_string].has_key?(index)
|
2147
2222
|
cached = node_cache[:double_quoted_string][index]
|
2148
|
-
|
2223
|
+
if cached
|
2224
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2225
|
+
@index = cached.interval.end
|
2226
|
+
end
|
2149
2227
|
return cached
|
2150
2228
|
end
|
2151
2229
|
|
@@ -2200,9 +2278,8 @@ module Treetop
|
|
2200
2278
|
r6 = r8
|
2201
2279
|
else
|
2202
2280
|
if index < input_length
|
2203
|
-
|
2204
|
-
|
2205
|
-
@index = next_character
|
2281
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2282
|
+
@index += 1
|
2206
2283
|
else
|
2207
2284
|
terminal_parse_failure("any character")
|
2208
2285
|
r9 = nil
|
@@ -2270,7 +2347,10 @@ module Treetop
|
|
2270
2347
|
start_index = index
|
2271
2348
|
if node_cache[:single_quoted_string].has_key?(index)
|
2272
2349
|
cached = node_cache[:single_quoted_string][index]
|
2273
|
-
|
2350
|
+
if cached
|
2351
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2352
|
+
@index = cached.interval.end
|
2353
|
+
end
|
2274
2354
|
return cached
|
2275
2355
|
end
|
2276
2356
|
|
@@ -2325,9 +2405,8 @@ module Treetop
|
|
2325
2405
|
r6 = r8
|
2326
2406
|
else
|
2327
2407
|
if index < input_length
|
2328
|
-
|
2329
|
-
|
2330
|
-
@index = next_character
|
2408
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2409
|
+
@index += 1
|
2331
2410
|
else
|
2332
2411
|
terminal_parse_failure("any character")
|
2333
2412
|
r9 = nil
|
@@ -2407,7 +2486,10 @@ module Treetop
|
|
2407
2486
|
start_index = index
|
2408
2487
|
if node_cache[:character_class].has_key?(index)
|
2409
2488
|
cached = node_cache[:character_class][index]
|
2410
|
-
|
2489
|
+
if cached
|
2490
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2491
|
+
@index = cached.interval.end
|
2492
|
+
end
|
2411
2493
|
return cached
|
2412
2494
|
end
|
2413
2495
|
|
@@ -2452,9 +2534,8 @@ module Treetop
|
|
2452
2534
|
s7 << r8
|
2453
2535
|
if r8
|
2454
2536
|
if index < input_length
|
2455
|
-
|
2456
|
-
|
2457
|
-
@index = next_character
|
2537
|
+
r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2538
|
+
@index += 1
|
2458
2539
|
else
|
2459
2540
|
terminal_parse_failure("any character")
|
2460
2541
|
r9 = nil
|
@@ -2489,9 +2570,8 @@ module Treetop
|
|
2489
2570
|
s10 << r11
|
2490
2571
|
if r11
|
2491
2572
|
if index < input_length
|
2492
|
-
|
2493
|
-
|
2494
|
-
@index = next_character
|
2573
|
+
r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2574
|
+
@index += 1
|
2495
2575
|
else
|
2496
2576
|
terminal_parse_failure("any character")
|
2497
2577
|
r13 = nil
|
@@ -2563,7 +2643,10 @@ module Treetop
|
|
2563
2643
|
start_index = index
|
2564
2644
|
if node_cache[:anything_symbol].has_key?(index)
|
2565
2645
|
cached = node_cache[:anything_symbol][index]
|
2566
|
-
|
2646
|
+
if cached
|
2647
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2648
|
+
@index = cached.interval.end
|
2649
|
+
end
|
2567
2650
|
return cached
|
2568
2651
|
end
|
2569
2652
|
|
@@ -2606,7 +2689,10 @@ module Treetop
|
|
2606
2689
|
start_index = index
|
2607
2690
|
if node_cache[:node_class_expression].has_key?(index)
|
2608
2691
|
cached = node_cache[:node_class_expression][index]
|
2609
|
-
|
2692
|
+
if cached
|
2693
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2694
|
+
@index = cached.interval.end
|
2695
|
+
end
|
2610
2696
|
return cached
|
2611
2697
|
end
|
2612
2698
|
|
@@ -2644,9 +2730,8 @@ module Treetop
|
|
2644
2730
|
s5 << r6
|
2645
2731
|
if r6
|
2646
2732
|
if index < input_length
|
2647
|
-
|
2648
|
-
|
2649
|
-
@index = next_character
|
2733
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2734
|
+
@index += 1
|
2650
2735
|
else
|
2651
2736
|
terminal_parse_failure("any character")
|
2652
2737
|
r8 = nil
|
@@ -2755,7 +2840,10 @@ module Treetop
|
|
2755
2840
|
start_index = index
|
2756
2841
|
if node_cache[:trailing_inline_module].has_key?(index)
|
2757
2842
|
cached = node_cache[:trailing_inline_module][index]
|
2758
|
-
|
2843
|
+
if cached
|
2844
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2845
|
+
@index = cached.interval.end
|
2846
|
+
end
|
2759
2847
|
return cached
|
2760
2848
|
end
|
2761
2849
|
|
@@ -2809,7 +2897,10 @@ module Treetop
|
|
2809
2897
|
start_index = index
|
2810
2898
|
if node_cache[:predicate_block].has_key?(index)
|
2811
2899
|
cached = node_cache[:predicate_block][index]
|
2812
|
-
|
2900
|
+
if cached
|
2901
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2902
|
+
@index = cached.interval.end
|
2903
|
+
end
|
2813
2904
|
return cached
|
2814
2905
|
end
|
2815
2906
|
|
@@ -2849,7 +2940,10 @@ module Treetop
|
|
2849
2940
|
start_index = index
|
2850
2941
|
if node_cache[:inline_module].has_key?(index)
|
2851
2942
|
cached = node_cache[:inline_module][index]
|
2852
|
-
|
2943
|
+
if cached
|
2944
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2945
|
+
@index = cached.interval.end
|
2946
|
+
end
|
2853
2947
|
return cached
|
2854
2948
|
end
|
2855
2949
|
|
@@ -2873,9 +2967,8 @@ module Treetop
|
|
2873
2967
|
i5, s5 = index, []
|
2874
2968
|
i6 = index
|
2875
2969
|
if has_terminal?('\G[{}]', true, index)
|
2876
|
-
next_character = index + input[index..-1].match(/\A(.)/um).end(1)
|
2877
2970
|
r7 = true
|
2878
|
-
@index
|
2971
|
+
@index += 1
|
2879
2972
|
else
|
2880
2973
|
r7 = nil
|
2881
2974
|
end
|
@@ -2888,9 +2981,8 @@ module Treetop
|
|
2888
2981
|
s5 << r6
|
2889
2982
|
if r6
|
2890
2983
|
if index < input_length
|
2891
|
-
|
2892
|
-
|
2893
|
-
@index = next_character
|
2984
|
+
r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
2985
|
+
@index += 1
|
2894
2986
|
else
|
2895
2987
|
terminal_parse_failure("any character")
|
2896
2988
|
r8 = nil
|
@@ -2950,7 +3042,10 @@ module Treetop
|
|
2950
3042
|
start_index = index
|
2951
3043
|
if node_cache[:keyword_inside_grammar].has_key?(index)
|
2952
3044
|
cached = node_cache[:keyword_inside_grammar][index]
|
2953
|
-
|
3045
|
+
if cached
|
3046
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3047
|
+
@index = cached.interval.end
|
3048
|
+
end
|
2954
3049
|
return cached
|
2955
3050
|
end
|
2956
3051
|
|
@@ -3012,7 +3107,10 @@ module Treetop
|
|
3012
3107
|
start_index = index
|
3013
3108
|
if node_cache[:non_space_char].has_key?(index)
|
3014
3109
|
cached = node_cache[:non_space_char][index]
|
3015
|
-
|
3110
|
+
if cached
|
3111
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3112
|
+
@index = cached.interval.end
|
3113
|
+
end
|
3016
3114
|
return cached
|
3017
3115
|
end
|
3018
3116
|
|
@@ -3028,9 +3126,8 @@ module Treetop
|
|
3028
3126
|
s0 << r1
|
3029
3127
|
if r1
|
3030
3128
|
if index < input_length
|
3031
|
-
|
3032
|
-
|
3033
|
-
@index = next_character
|
3129
|
+
r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
3130
|
+
@index += 1
|
3034
3131
|
else
|
3035
3132
|
terminal_parse_failure("any character")
|
3036
3133
|
r3 = nil
|
@@ -3054,14 +3151,16 @@ module Treetop
|
|
3054
3151
|
start_index = index
|
3055
3152
|
if node_cache[:alpha_char].has_key?(index)
|
3056
3153
|
cached = node_cache[:alpha_char][index]
|
3057
|
-
|
3154
|
+
if cached
|
3155
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3156
|
+
@index = cached.interval.end
|
3157
|
+
end
|
3058
3158
|
return cached
|
3059
3159
|
end
|
3060
3160
|
|
3061
3161
|
if has_terminal?('\G[A-Za-z_]', true, index)
|
3062
|
-
|
3063
|
-
|
3064
|
-
@index = next_character
|
3162
|
+
r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
3163
|
+
@index += 1
|
3065
3164
|
else
|
3066
3165
|
r0 = nil
|
3067
3166
|
end
|
@@ -3075,7 +3174,10 @@ module Treetop
|
|
3075
3174
|
start_index = index
|
3076
3175
|
if node_cache[:alphanumeric_char].has_key?(index)
|
3077
3176
|
cached = node_cache[:alphanumeric_char][index]
|
3078
|
-
|
3177
|
+
if cached
|
3178
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3179
|
+
@index = cached.interval.end
|
3180
|
+
end
|
3079
3181
|
return cached
|
3080
3182
|
end
|
3081
3183
|
|
@@ -3085,9 +3187,8 @@ module Treetop
|
|
3085
3187
|
r0 = r1
|
3086
3188
|
else
|
3087
3189
|
if has_terminal?('\G[0-9]', true, index)
|
3088
|
-
next_character = index + input[index..-1].match(/\A(.)/um).end(1)
|
3089
3190
|
r2 = true
|
3090
|
-
@index
|
3191
|
+
@index += 1
|
3091
3192
|
else
|
3092
3193
|
r2 = nil
|
3093
3194
|
end
|
@@ -3108,7 +3209,10 @@ module Treetop
|
|
3108
3209
|
start_index = index
|
3109
3210
|
if node_cache[:space].has_key?(index)
|
3110
3211
|
cached = node_cache[:space][index]
|
3111
|
-
|
3212
|
+
if cached
|
3213
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3214
|
+
@index = cached.interval.end
|
3215
|
+
end
|
3112
3216
|
return cached
|
3113
3217
|
end
|
3114
3218
|
|
@@ -3155,7 +3259,10 @@ module Treetop
|
|
3155
3259
|
start_index = index
|
3156
3260
|
if node_cache[:comment_to_eol].has_key?(index)
|
3157
3261
|
cached = node_cache[:comment_to_eol][index]
|
3158
|
-
|
3262
|
+
if cached
|
3263
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3264
|
+
@index = cached.interval.end
|
3265
|
+
end
|
3159
3266
|
return cached
|
3160
3267
|
end
|
3161
3268
|
|
@@ -3189,9 +3296,8 @@ module Treetop
|
|
3189
3296
|
s3 << r4
|
3190
3297
|
if r4
|
3191
3298
|
if index < input_length
|
3192
|
-
|
3193
|
-
|
3194
|
-
@index = next_character
|
3299
|
+
r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
3300
|
+
@index += 1
|
3195
3301
|
else
|
3196
3302
|
terminal_parse_failure("any character")
|
3197
3303
|
r6 = nil
|
@@ -3231,14 +3337,16 @@ module Treetop
|
|
3231
3337
|
start_index = index
|
3232
3338
|
if node_cache[:white].has_key?(index)
|
3233
3339
|
cached = node_cache[:white][index]
|
3234
|
-
|
3340
|
+
if cached
|
3341
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3342
|
+
@index = cached.interval.end
|
3343
|
+
end
|
3235
3344
|
return cached
|
3236
3345
|
end
|
3237
3346
|
|
3238
3347
|
if has_terminal?('\G[ \\t\\n\\r]', true, index)
|
3239
|
-
|
3240
|
-
|
3241
|
-
@index = next_character
|
3348
|
+
r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
|
3349
|
+
@index += 1
|
3242
3350
|
else
|
3243
3351
|
r0 = nil
|
3244
3352
|
end
|
@@ -34,7 +34,10 @@ module Treetop
|
|
34
34
|
def generate_cache_lookup(builder)
|
35
35
|
builder.if_ "node_cache[:#{name}].has_key?(index)" do
|
36
36
|
builder.assign 'cached', "node_cache[:#{name}][index]"
|
37
|
-
builder
|
37
|
+
builder.if_ "cached" do
|
38
|
+
builder << 'cached = SyntaxNode.new(input, index...(index + 1)) if cached == true'
|
39
|
+
builder << '@index = cached.interval.end'
|
40
|
+
end
|
38
41
|
builder << 'return cached'
|
39
42
|
end
|
40
43
|
end
|
data/lib/treetop/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: treetop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Sobo
|
@@ -9,7 +9,7 @@ autorequire: treetop
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-08 00:00:00 +11:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|