delorean_lang 0.3.7 → 0.3.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7beaa9c80edc5cb0ff96f48c4fce42f98b3d63e9
4
- data.tar.gz: d92bab10346de0a0832041f0dd2e67e67fc57b51
3
+ metadata.gz: 2f84252e434574c4818888ea07ea617d1f4766fe
4
+ data.tar.gz: 5ff551551c97120833357e2c9efbd614fa2cf8e9
5
5
  SHA512:
6
- metadata.gz: 520a6044020cc9c8f2a962b9147e9581b84b10d3775121a77ed4fc4c469072a9d448e86c5cd6aaaa085c95e0ef6559283bd84877162ea557283ff7a8b8ce0d33
7
- data.tar.gz: 50f9a865be0e6171a5a8ce1e6e25ab8cfb43a5b99ec6008cc08bac02d9df75a0108c2152b5ee1f0afe06422afd133c41fb783883f23cffeafd85aea30beb19dc
6
+ metadata.gz: 61e69948cf64fd5f480f37c7eced6b2d5de22dc9c8e427bff91dea6b0a8d4256185fd52c5c4571adcc3e0712a9dff963ce504d099a84db0b3d2c5b2286736b61
7
+ data.tar.gz: f74d5a623f97f109c998335f4427b2af1dcde43da190c019407933c12de62c07c8cc7178e587fd20c602c60c65ce1daa6746ef5bba2d973497dcbbc03baf0b3f
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.licenses = ['MIT']
17
17
 
18
18
 
19
- gem.add_dependency "treetop", "~> 1.4"
19
+ gem.add_dependency "treetop", "~> 1.4.8"
20
20
  gem.add_dependency "activerecord", "~> 3.2"
21
21
  gem.add_development_dependency "rspec", '~> 2.10'
22
22
  gem.add_development_dependency "sqlite3", '~> 1.3'
@@ -23,7 +23,7 @@ module Delorean
23
23
  if node_cache[:line].has_key?(index)
24
24
  cached = node_cache[:line][index]
25
25
  if cached
26
- node_cache[:line][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
26
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
27
27
  @index = cached.interval.end
28
28
  end
29
29
  return cached
@@ -42,9 +42,9 @@ module Delorean
42
42
  s0 << r2
43
43
  if r2
44
44
  i5, s5 = index, []
45
- if (match_len = has_terminal?('#', false, index))
46
- r6 = true
47
- @index += match_len
45
+ if has_terminal?('#', false, index)
46
+ r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
47
+ @index += 1
48
48
  else
49
49
  terminal_parse_failure('#')
50
50
  r6 = nil
@@ -54,7 +54,7 @@ module Delorean
54
54
  s7, i7 = [], index
55
55
  loop do
56
56
  if index < input_length
57
- r8 = true
57
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
58
58
  @index += 1
59
59
  else
60
60
  terminal_parse_failure("any character")
@@ -179,7 +179,7 @@ module Delorean
179
179
  if node_cache[:formula].has_key?(index)
180
180
  cached = node_cache[:formula][index]
181
181
  if cached
182
- node_cache[:formula][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
182
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
183
183
  @index = cached.interval.end
184
184
  end
185
185
  return cached
@@ -201,9 +201,9 @@ module Delorean
201
201
  end
202
202
  s1 << r4
203
203
  if r4
204
- if (match_len = has_terminal?('=?', false, index))
205
- r6 = instantiate_node(SyntaxNode,input, index...(index + match_len))
206
- @index += match_len
204
+ if has_terminal?('=?', false, index)
205
+ r6 = instantiate_node(SyntaxNode,input, index...(index + 2))
206
+ @index += 2
207
207
  else
208
208
  terminal_parse_failure('=?')
209
209
  r6 = nil
@@ -233,7 +233,6 @@ module Delorean
233
233
  r1 = nil
234
234
  end
235
235
  if r1
236
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
237
236
  r0 = r1
238
237
  else
239
238
  i10, s10 = index, []
@@ -251,9 +250,9 @@ module Delorean
251
250
  end
252
251
  s10 << r13
253
252
  if r13
254
- if (match_len = has_terminal?('=?', false, index))
255
- r15 = instantiate_node(SyntaxNode,input, index...(index + match_len))
256
- @index += match_len
253
+ if has_terminal?('=?', false, index)
254
+ r15 = instantiate_node(SyntaxNode,input, index...(index + 2))
255
+ @index += 2
257
256
  else
258
257
  terminal_parse_failure('=?')
259
258
  r15 = nil
@@ -270,7 +269,6 @@ module Delorean
270
269
  r10 = nil
271
270
  end
272
271
  if r10
273
- r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
274
272
  r0 = r10
275
273
  else
276
274
  i16, s16 = index, []
@@ -288,9 +286,9 @@ module Delorean
288
286
  end
289
287
  s16 << r19
290
288
  if r19
291
- if (match_len = has_terminal?('=', false, index))
292
- r21 = true
293
- @index += match_len
289
+ if has_terminal?('=', false, index)
290
+ r21 = instantiate_node(SyntaxNode,input, index...(index + 1))
291
+ @index += 1
294
292
  else
295
293
  terminal_parse_failure('=')
296
294
  r21 = nil
@@ -320,16 +318,15 @@ module Delorean
320
318
  r16 = nil
321
319
  end
322
320
  if r16
323
- r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true
324
321
  r0 = r16
325
322
  else
326
323
  i25, s25 = index, []
327
324
  r26 = _nt_class_name
328
325
  s25 << r26
329
326
  if r26
330
- if (match_len = has_terminal?(':', false, index))
331
- r27 = true
332
- @index += match_len
327
+ if has_terminal?(':', false, index)
328
+ r27 = instantiate_node(SyntaxNode,input, index...(index + 1))
329
+ @index += 1
333
330
  else
334
331
  terminal_parse_failure(':')
335
332
  r27 = nil
@@ -348,9 +345,9 @@ module Delorean
348
345
  r32 = _nt_class_name
349
346
  s31 << r32
350
347
  if r32
351
- if (match_len = has_terminal?('::', false, index))
352
- r33 = instantiate_node(SyntaxNode,input, index...(index + match_len))
353
- @index += match_len
348
+ if has_terminal?('::', false, index)
349
+ r33 = instantiate_node(SyntaxNode,input, index...(index + 2))
350
+ @index += 2
354
351
  else
355
352
  terminal_parse_failure('::')
356
353
  r33 = nil
@@ -385,16 +382,15 @@ module Delorean
385
382
  r25 = nil
386
383
  end
387
384
  if r25
388
- r25 = SyntaxNode.new(input, (index-1)...index) if r25 == true
389
385
  r0 = r25
390
386
  else
391
387
  i35, s35 = index, []
392
388
  r36 = _nt_class_name
393
389
  s35 << r36
394
390
  if r36
395
- if (match_len = has_terminal?(':', false, index))
396
- r37 = true
397
- @index += match_len
391
+ if has_terminal?(':', false, index)
392
+ r37 = instantiate_node(SyntaxNode,input, index...(index + 1))
393
+ @index += 1
398
394
  else
399
395
  terminal_parse_failure(':')
400
396
  r37 = nil
@@ -409,13 +405,12 @@ module Delorean
409
405
  r35 = nil
410
406
  end
411
407
  if r35
412
- r35 = SyntaxNode.new(input, (index-1)...index) if r35 == true
413
408
  r0 = r35
414
409
  else
415
410
  i38, s38 = index, []
416
- if (match_len = has_terminal?('import', false, index))
417
- r39 = instantiate_node(SyntaxNode,input, index...(index + match_len))
418
- @index += match_len
411
+ if has_terminal?('import', false, index)
412
+ r39 = instantiate_node(SyntaxNode,input, index...(index + 6))
413
+ @index += 6
419
414
  else
420
415
  terminal_parse_failure('import')
421
416
  r39 = nil
@@ -437,7 +432,6 @@ module Delorean
437
432
  r38 = nil
438
433
  end
439
434
  if r38
440
- r38 = SyntaxNode.new(input, (index-1)...index) if r38 == true
441
435
  r0 = r38
442
436
  else
443
437
  @index = i0
@@ -462,29 +456,27 @@ module Delorean
462
456
  if node_cache[:class_name].has_key?(index)
463
457
  cached = node_cache[:class_name][index]
464
458
  if cached
465
- node_cache[:class_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
459
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
466
460
  @index = cached.interval.end
467
461
  end
468
462
  return cached
469
463
  end
470
464
 
471
465
  i0, s0 = index, []
472
- if has_terminal?(@regexps[gr = '\A[A-Z]'] ||= Regexp.new(gr), :regexp, index)
466
+ if has_terminal?('\G[A-Z]', true, index)
473
467
  r1 = true
474
468
  @index += 1
475
469
  else
476
- terminal_parse_failure('[A-Z]')
477
470
  r1 = nil
478
471
  end
479
472
  s0 << r1
480
473
  if r1
481
474
  s2, i2 = [], index
482
475
  loop do
483
- if has_terminal?(@regexps[gr = '\A[a-zA-Z0-9_]'] ||= Regexp.new(gr), :regexp, index)
476
+ if has_terminal?('\G[a-zA-Z0-9_]', true, index)
484
477
  r3 = true
485
478
  @index += 1
486
479
  else
487
- terminal_parse_failure('[a-zA-Z0-9_]')
488
480
  r3 = nil
489
481
  end
490
482
  if r3
@@ -559,7 +551,7 @@ module Delorean
559
551
  if node_cache[:expression].has_key?(index)
560
552
  cached = node_cache[:expression][index]
561
553
  if cached
562
- node_cache[:expression][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
554
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
563
555
  @index = cached.interval.end
564
556
  end
565
557
  return cached
@@ -567,9 +559,9 @@ module Delorean
567
559
 
568
560
  i0 = index
569
561
  i1, s1 = index, []
570
- if (match_len = has_terminal?('ERR(', false, index))
571
- r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
572
- @index += match_len
562
+ if has_terminal?('ERR(', false, index)
563
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 4))
564
+ @index += 4
573
565
  else
574
566
  terminal_parse_failure('ERR(')
575
567
  r2 = nil
@@ -595,9 +587,9 @@ module Delorean
595
587
  end
596
588
  s1 << r6
597
589
  if r6
598
- if (match_len = has_terminal?(')', false, index))
599
- r8 = true
600
- @index += match_len
590
+ if has_terminal?(')', false, index)
591
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
592
+ @index += 1
601
593
  else
602
594
  terminal_parse_failure(')')
603
595
  r8 = nil
@@ -615,7 +607,6 @@ module Delorean
615
607
  r1 = nil
616
608
  end
617
609
  if r1
618
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
619
610
  r0 = r1
620
611
  else
621
612
  i9, s9 = index, []
@@ -642,13 +633,12 @@ module Delorean
642
633
  r9 = nil
643
634
  end
644
635
  if r9
645
- r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
646
636
  r0 = r9
647
637
  else
648
638
  i14, s14 = index, []
649
- if (match_len = has_terminal?('if', false, index))
650
- r15 = instantiate_node(SyntaxNode,input, index...(index + match_len))
651
- @index += match_len
639
+ if has_terminal?('if', false, index)
640
+ r15 = instantiate_node(SyntaxNode,input, index...(index + 2))
641
+ @index += 2
652
642
  else
653
643
  terminal_parse_failure('if')
654
644
  r15 = nil
@@ -674,9 +664,9 @@ module Delorean
674
664
  end
675
665
  s14 << r19
676
666
  if r19
677
- if (match_len = has_terminal?('then', false, index))
678
- r21 = instantiate_node(SyntaxNode,input, index...(index + match_len))
679
- @index += match_len
667
+ if has_terminal?('then', false, index)
668
+ r21 = instantiate_node(SyntaxNode,input, index...(index + 4))
669
+ @index += 4
680
670
  else
681
671
  terminal_parse_failure('then')
682
672
  r21 = nil
@@ -702,9 +692,9 @@ module Delorean
702
692
  end
703
693
  s14 << r25
704
694
  if r25
705
- if (match_len = has_terminal?('else', false, index))
706
- r27 = instantiate_node(SyntaxNode,input, index...(index + match_len))
707
- @index += match_len
695
+ if has_terminal?('else', false, index)
696
+ r27 = instantiate_node(SyntaxNode,input, index...(index + 4))
697
+ @index += 4
708
698
  else
709
699
  terminal_parse_failure('else')
710
700
  r27 = nil
@@ -739,7 +729,6 @@ module Delorean
739
729
  r14 = nil
740
730
  end
741
731
  if r14
742
- r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
743
732
  r0 = r14
744
733
  else
745
734
  i31, s31 = index, []
@@ -779,12 +768,10 @@ module Delorean
779
768
  r31 = nil
780
769
  end
781
770
  if r31
782
- r31 = SyntaxNode.new(input, (index-1)...index) if r31 == true
783
771
  r0 = r31
784
772
  else
785
773
  r39 = _nt_getattr_exp
786
774
  if r39
787
- r39 = SyntaxNode.new(input, (index-1)...index) if r39 == true
788
775
  r0 = r39
789
776
  else
790
777
  @index = i0
@@ -815,7 +802,7 @@ module Delorean
815
802
  if node_cache[:getattr_exp].has_key?(index)
816
803
  cached = node_cache[:getattr_exp][index]
817
804
  if cached
818
- node_cache[:getattr_exp][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
805
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
819
806
  @index = cached.interval.end
820
807
  end
821
808
  return cached
@@ -837,12 +824,10 @@ module Delorean
837
824
  r1 = nil
838
825
  end
839
826
  if r1
840
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
841
827
  r0 = r1
842
828
  else
843
829
  r4 = _nt_value
844
830
  if r4
845
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
846
831
  r0 = r4
847
832
  else
848
833
  @index = i0
@@ -870,7 +855,7 @@ module Delorean
870
855
  if node_cache[:dotted].has_key?(index)
871
856
  cached = node_cache[:dotted][index]
872
857
  if cached
873
- node_cache[:dotted][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
858
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
874
859
  @index = cached.interval.end
875
860
  end
876
861
  return cached
@@ -937,7 +922,7 @@ module Delorean
937
922
  if node_cache[:dot_exp].has_key?(index)
938
923
  cached = node_cache[:dot_exp][index]
939
924
  if cached
940
- node_cache[:dot_exp][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
925
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
941
926
  @index = cached.interval.end
942
927
  end
943
928
  return cached
@@ -945,9 +930,9 @@ module Delorean
945
930
 
946
931
  i0 = index
947
932
  i1, s1 = index, []
948
- if (match_len = has_terminal?('[', false, index))
949
- r2 = true
950
- @index += match_len
933
+ if has_terminal?('[', false, index)
934
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
935
+ @index += 1
951
936
  else
952
937
  terminal_parse_failure('[')
953
938
  r2 = nil
@@ -973,9 +958,9 @@ module Delorean
973
958
  end
974
959
  s1 << r6
975
960
  if r6
976
- if (match_len = has_terminal?(']', false, index))
977
- r8 = true
978
- @index += match_len
961
+ if has_terminal?(']', false, index)
962
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
963
+ @index += 1
979
964
  else
980
965
  terminal_parse_failure(']')
981
966
  r8 = nil
@@ -993,13 +978,12 @@ module Delorean
993
978
  r1 = nil
994
979
  end
995
980
  if r1
996
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
997
981
  r0 = r1
998
982
  else
999
983
  i9, s9 = index, []
1000
- if (match_len = has_terminal?('(', false, index))
1001
- r10 = true
1002
- @index += match_len
984
+ if has_terminal?('(', false, index)
985
+ r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
986
+ @index += 1
1003
987
  else
1004
988
  terminal_parse_failure('(')
1005
989
  r10 = nil
@@ -1030,9 +1014,9 @@ module Delorean
1030
1014
  end
1031
1015
  s9 << r15
1032
1016
  if r15
1033
- if (match_len = has_terminal?(')', false, index))
1034
- r17 = true
1035
- @index += match_len
1017
+ if has_terminal?(')', false, index)
1018
+ r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
1019
+ @index += 1
1036
1020
  else
1037
1021
  terminal_parse_failure(')')
1038
1022
  r17 = nil
@@ -1050,13 +1034,12 @@ module Delorean
1050
1034
  r9 = nil
1051
1035
  end
1052
1036
  if r9
1053
- r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
1054
1037
  r0 = r9
1055
1038
  else
1056
1039
  i18, s18 = index, []
1057
- if (match_len = has_terminal?('.', false, index))
1058
- r19 = true
1059
- @index += match_len
1040
+ if has_terminal?('.', false, index)
1041
+ r19 = instantiate_node(SyntaxNode,input, index...(index + 1))
1042
+ @index += 1
1060
1043
  else
1061
1044
  terminal_parse_failure('.')
1062
1045
  r19 = nil
@@ -1074,9 +1057,9 @@ module Delorean
1074
1057
  r22 = _nt_identifier
1075
1058
  s18 << r22
1076
1059
  if r22
1077
- if (match_len = has_terminal?('(', false, index))
1078
- r23 = true
1079
- @index += match_len
1060
+ if has_terminal?('(', false, index)
1061
+ r23 = instantiate_node(SyntaxNode,input, index...(index + 1))
1062
+ @index += 1
1080
1063
  else
1081
1064
  terminal_parse_failure('(')
1082
1065
  r23 = nil
@@ -1107,9 +1090,9 @@ module Delorean
1107
1090
  end
1108
1091
  s18 << r28
1109
1092
  if r28
1110
- if (match_len = has_terminal?(')', false, index))
1111
- r30 = true
1112
- @index += match_len
1093
+ if has_terminal?(')', false, index)
1094
+ r30 = instantiate_node(SyntaxNode,input, index...(index + 1))
1095
+ @index += 1
1113
1096
  else
1114
1097
  terminal_parse_failure(')')
1115
1098
  r30 = nil
@@ -1130,13 +1113,12 @@ module Delorean
1130
1113
  r18 = nil
1131
1114
  end
1132
1115
  if r18
1133
- r18 = SyntaxNode.new(input, (index-1)...index) if r18 == true
1134
1116
  r0 = r18
1135
1117
  else
1136
1118
  i31, s31 = index, []
1137
- if (match_len = has_terminal?('.', false, index))
1138
- r32 = true
1139
- @index += match_len
1119
+ if has_terminal?('.', false, index)
1120
+ r32 = instantiate_node(SyntaxNode,input, index...(index + 1))
1121
+ @index += 1
1140
1122
  else
1141
1123
  terminal_parse_failure('.')
1142
1124
  r32 = nil
@@ -1154,12 +1136,10 @@ module Delorean
1154
1136
  i35 = index
1155
1137
  r36 = _nt_identifier
1156
1138
  if r36
1157
- r36 = SyntaxNode.new(input, (index-1)...index) if r36 == true
1158
1139
  r35 = r36
1159
1140
  else
1160
1141
  r37 = _nt_integer
1161
1142
  if r37
1162
- r37 = SyntaxNode.new(input, (index-1)...index) if r37 == true
1163
1143
  r35 = r37
1164
1144
  else
1165
1145
  @index = i35
@@ -1177,7 +1157,6 @@ module Delorean
1177
1157
  r31 = nil
1178
1158
  end
1179
1159
  if r31
1180
- r31 = SyntaxNode.new(input, (index-1)...index) if r31 == true
1181
1160
  r0 = r31
1182
1161
  else
1183
1162
  @index = i0
@@ -1213,7 +1192,7 @@ module Delorean
1213
1192
  if node_cache[:unpack_args].has_key?(index)
1214
1193
  cached = node_cache[:unpack_args][index]
1215
1194
  if cached
1216
- node_cache[:unpack_args][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1195
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1217
1196
  @index = cached.interval.end
1218
1197
  end
1219
1198
  return cached
@@ -1232,9 +1211,9 @@ module Delorean
1232
1211
  end
1233
1212
  s3 << r4
1234
1213
  if r4
1235
- if (match_len = has_terminal?(',', false, index))
1236
- r6 = true
1237
- @index += match_len
1214
+ if has_terminal?(',', false, index)
1215
+ r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
1216
+ @index += 1
1238
1217
  else
1239
1218
  terminal_parse_failure(',')
1240
1219
  r6 = nil
@@ -1344,28 +1323,27 @@ module Delorean
1344
1323
  if node_cache[:list_expr].has_key?(index)
1345
1324
  cached = node_cache[:list_expr][index]
1346
1325
  if cached
1347
- node_cache[:list_expr][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1326
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1348
1327
  @index = cached.interval.end
1349
1328
  end
1350
1329
  return cached
1351
1330
  end
1352
1331
 
1353
1332
  i0 = index
1354
- if (match_len = has_terminal?('[]', false, index))
1355
- r1 = instantiate_node(ListExpr,input, index...(index + match_len))
1356
- @index += match_len
1333
+ if has_terminal?('[]', false, index)
1334
+ r1 = instantiate_node(ListExpr,input, index...(index + 2))
1335
+ @index += 2
1357
1336
  else
1358
1337
  terminal_parse_failure('[]')
1359
1338
  r1 = nil
1360
1339
  end
1361
1340
  if r1
1362
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1363
1341
  r0 = r1
1364
1342
  else
1365
1343
  i2, s2 = index, []
1366
- if (match_len = has_terminal?('[', false, index))
1367
- r3 = true
1368
- @index += match_len
1344
+ if has_terminal?('[', false, index)
1345
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1346
+ @index += 1
1369
1347
  else
1370
1348
  terminal_parse_failure('[')
1371
1349
  r3 = nil
@@ -1386,9 +1364,9 @@ module Delorean
1386
1364
  r7 = _nt_sp
1387
1365
  s2 << r7
1388
1366
  if r7
1389
- if (match_len = has_terminal?('for', false, index))
1390
- r8 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1391
- @index += match_len
1367
+ if has_terminal?('for', false, index)
1368
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 3))
1369
+ @index += 3
1392
1370
  else
1393
1371
  terminal_parse_failure('for')
1394
1372
  r8 = nil
@@ -1404,9 +1382,9 @@ module Delorean
1404
1382
  r11 = _nt_sp
1405
1383
  s2 << r11
1406
1384
  if r11
1407
- if (match_len = has_terminal?('in', false, index))
1408
- r12 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1409
- @index += match_len
1385
+ if has_terminal?('in', false, index)
1386
+ r12 = instantiate_node(SyntaxNode,input, index...(index + 2))
1387
+ @index += 2
1410
1388
  else
1411
1389
  terminal_parse_failure('in')
1412
1390
  r12 = nil
@@ -1428,9 +1406,9 @@ module Delorean
1428
1406
  s2 << r15
1429
1407
  if r15
1430
1408
  i18, s18 = index, []
1431
- if (match_len = has_terminal?('if', false, index))
1432
- r19 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1433
- @index += match_len
1409
+ if has_terminal?('if', false, index)
1410
+ r19 = instantiate_node(SyntaxNode,input, index...(index + 2))
1411
+ @index += 2
1434
1412
  else
1435
1413
  terminal_parse_failure('if')
1436
1414
  r19 = nil
@@ -1467,9 +1445,9 @@ module Delorean
1467
1445
  end
1468
1446
  s2 << r17
1469
1447
  if r17
1470
- if (match_len = has_terminal?(']', false, index))
1471
- r24 = true
1472
- @index += match_len
1448
+ if has_terminal?(']', false, index)
1449
+ r24 = instantiate_node(SyntaxNode,input, index...(index + 1))
1450
+ @index += 1
1473
1451
  else
1474
1452
  terminal_parse_failure(']')
1475
1453
  r24 = nil
@@ -1496,13 +1474,12 @@ module Delorean
1496
1474
  r2 = nil
1497
1475
  end
1498
1476
  if r2
1499
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1500
1477
  r0 = r2
1501
1478
  else
1502
1479
  i25, s25 = index, []
1503
- if (match_len = has_terminal?('[', false, index))
1504
- r26 = true
1505
- @index += match_len
1480
+ if has_terminal?('[', false, index)
1481
+ r26 = instantiate_node(SyntaxNode,input, index...(index + 1))
1482
+ @index += 1
1506
1483
  else
1507
1484
  terminal_parse_failure('[')
1508
1485
  r26 = nil
@@ -1528,9 +1505,9 @@ module Delorean
1528
1505
  end
1529
1506
  s25 << r30
1530
1507
  if r30
1531
- if (match_len = has_terminal?(']', false, index))
1532
- r32 = true
1533
- @index += match_len
1508
+ if has_terminal?(']', false, index)
1509
+ r32 = instantiate_node(SyntaxNode,input, index...(index + 1))
1510
+ @index += 1
1534
1511
  else
1535
1512
  terminal_parse_failure(']')
1536
1513
  r32 = nil
@@ -1548,7 +1525,6 @@ module Delorean
1548
1525
  r25 = nil
1549
1526
  end
1550
1527
  if r25
1551
- r25 = SyntaxNode.new(input, (index-1)...index) if r25 == true
1552
1528
  r0 = r25
1553
1529
  else
1554
1530
  @index = i0
@@ -1620,28 +1596,27 @@ module Delorean
1620
1596
  if node_cache[:set_expr].has_key?(index)
1621
1597
  cached = node_cache[:set_expr][index]
1622
1598
  if cached
1623
- node_cache[:set_expr][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1599
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1624
1600
  @index = cached.interval.end
1625
1601
  end
1626
1602
  return cached
1627
1603
  end
1628
1604
 
1629
1605
  i0 = index
1630
- if (match_len = has_terminal?('{-}', false, index))
1631
- r1 = instantiate_node(SetExpr,input, index...(index + match_len))
1632
- @index += match_len
1606
+ if has_terminal?('{-}', false, index)
1607
+ r1 = instantiate_node(SetExpr,input, index...(index + 3))
1608
+ @index += 3
1633
1609
  else
1634
1610
  terminal_parse_failure('{-}')
1635
1611
  r1 = nil
1636
1612
  end
1637
1613
  if r1
1638
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1639
1614
  r0 = r1
1640
1615
  else
1641
1616
  i2, s2 = index, []
1642
- if (match_len = has_terminal?('{', false, index))
1643
- r3 = true
1644
- @index += match_len
1617
+ if has_terminal?('{', false, index)
1618
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1619
+ @index += 1
1645
1620
  else
1646
1621
  terminal_parse_failure('{')
1647
1622
  r3 = nil
@@ -1662,9 +1637,9 @@ module Delorean
1662
1637
  r7 = _nt_sp
1663
1638
  s2 << r7
1664
1639
  if r7
1665
- if (match_len = has_terminal?('for', false, index))
1666
- r8 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1667
- @index += match_len
1640
+ if has_terminal?('for', false, index)
1641
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 3))
1642
+ @index += 3
1668
1643
  else
1669
1644
  terminal_parse_failure('for')
1670
1645
  r8 = nil
@@ -1680,9 +1655,9 @@ module Delorean
1680
1655
  r11 = _nt_sp
1681
1656
  s2 << r11
1682
1657
  if r11
1683
- if (match_len = has_terminal?('in', false, index))
1684
- r12 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1685
- @index += match_len
1658
+ if has_terminal?('in', false, index)
1659
+ r12 = instantiate_node(SyntaxNode,input, index...(index + 2))
1660
+ @index += 2
1686
1661
  else
1687
1662
  terminal_parse_failure('in')
1688
1663
  r12 = nil
@@ -1704,9 +1679,9 @@ module Delorean
1704
1679
  s2 << r15
1705
1680
  if r15
1706
1681
  i18, s18 = index, []
1707
- if (match_len = has_terminal?('if', false, index))
1708
- r19 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1709
- @index += match_len
1682
+ if has_terminal?('if', false, index)
1683
+ r19 = instantiate_node(SyntaxNode,input, index...(index + 2))
1684
+ @index += 2
1710
1685
  else
1711
1686
  terminal_parse_failure('if')
1712
1687
  r19 = nil
@@ -1743,9 +1718,9 @@ module Delorean
1743
1718
  end
1744
1719
  s2 << r17
1745
1720
  if r17
1746
- if (match_len = has_terminal?('}', false, index))
1747
- r24 = true
1748
- @index += match_len
1721
+ if has_terminal?('}', false, index)
1722
+ r24 = instantiate_node(SyntaxNode,input, index...(index + 1))
1723
+ @index += 1
1749
1724
  else
1750
1725
  terminal_parse_failure('}')
1751
1726
  r24 = nil
@@ -1772,13 +1747,12 @@ module Delorean
1772
1747
  r2 = nil
1773
1748
  end
1774
1749
  if r2
1775
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1776
1750
  r0 = r2
1777
1751
  else
1778
1752
  i25, s25 = index, []
1779
- if (match_len = has_terminal?('{', false, index))
1780
- r26 = true
1781
- @index += match_len
1753
+ if has_terminal?('{', false, index)
1754
+ r26 = instantiate_node(SyntaxNode,input, index...(index + 1))
1755
+ @index += 1
1782
1756
  else
1783
1757
  terminal_parse_failure('{')
1784
1758
  r26 = nil
@@ -1804,9 +1778,9 @@ module Delorean
1804
1778
  end
1805
1779
  s25 << r30
1806
1780
  if r30
1807
- if (match_len = has_terminal?('}', false, index))
1808
- r32 = true
1809
- @index += match_len
1781
+ if has_terminal?('}', false, index)
1782
+ r32 = instantiate_node(SyntaxNode,input, index...(index + 1))
1783
+ @index += 1
1810
1784
  else
1811
1785
  terminal_parse_failure('}')
1812
1786
  r32 = nil
@@ -1824,7 +1798,6 @@ module Delorean
1824
1798
  r25 = nil
1825
1799
  end
1826
1800
  if r25
1827
- r25 = SyntaxNode.new(input, (index-1)...index) if r25 == true
1828
1801
  r0 = r25
1829
1802
  else
1830
1803
  @index = i0
@@ -1900,28 +1873,27 @@ module Delorean
1900
1873
  if node_cache[:hash_expr].has_key?(index)
1901
1874
  cached = node_cache[:hash_expr][index]
1902
1875
  if cached
1903
- node_cache[:hash_expr][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1876
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1904
1877
  @index = cached.interval.end
1905
1878
  end
1906
1879
  return cached
1907
1880
  end
1908
1881
 
1909
1882
  i0 = index
1910
- if (match_len = has_terminal?('{}', false, index))
1911
- r1 = instantiate_node(HashExpr,input, index...(index + match_len))
1912
- @index += match_len
1883
+ if has_terminal?('{}', false, index)
1884
+ r1 = instantiate_node(HashExpr,input, index...(index + 2))
1885
+ @index += 2
1913
1886
  else
1914
1887
  terminal_parse_failure('{}')
1915
1888
  r1 = nil
1916
1889
  end
1917
1890
  if r1
1918
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1919
1891
  r0 = r1
1920
1892
  else
1921
1893
  i2, s2 = index, []
1922
- if (match_len = has_terminal?('{', false, index))
1923
- r3 = true
1924
- @index += match_len
1894
+ if has_terminal?('{', false, index)
1895
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1896
+ @index += 1
1925
1897
  else
1926
1898
  terminal_parse_failure('{')
1927
1899
  r3 = nil
@@ -1947,9 +1919,9 @@ module Delorean
1947
1919
  end
1948
1920
  s2 << r7
1949
1921
  if r7
1950
- if (match_len = has_terminal?(':', false, index))
1951
- r9 = true
1952
- @index += match_len
1922
+ if has_terminal?(':', false, index)
1923
+ r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
1924
+ @index += 1
1953
1925
  else
1954
1926
  terminal_parse_failure(':')
1955
1927
  r9 = nil
@@ -1970,9 +1942,9 @@ module Delorean
1970
1942
  r13 = _nt_sp
1971
1943
  s2 << r13
1972
1944
  if r13
1973
- if (match_len = has_terminal?('for', false, index))
1974
- r14 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1975
- @index += match_len
1945
+ if has_terminal?('for', false, index)
1946
+ r14 = instantiate_node(SyntaxNode,input, index...(index + 3))
1947
+ @index += 3
1976
1948
  else
1977
1949
  terminal_parse_failure('for')
1978
1950
  r14 = nil
@@ -1988,9 +1960,9 @@ module Delorean
1988
1960
  r17 = _nt_sp
1989
1961
  s2 << r17
1990
1962
  if r17
1991
- if (match_len = has_terminal?('in', false, index))
1992
- r18 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1993
- @index += match_len
1963
+ if has_terminal?('in', false, index)
1964
+ r18 = instantiate_node(SyntaxNode,input, index...(index + 2))
1965
+ @index += 2
1994
1966
  else
1995
1967
  terminal_parse_failure('in')
1996
1968
  r18 = nil
@@ -2012,9 +1984,9 @@ module Delorean
2012
1984
  s2 << r21
2013
1985
  if r21
2014
1986
  i24, s24 = index, []
2015
- if (match_len = has_terminal?('if', false, index))
2016
- r25 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2017
- @index += match_len
1987
+ if has_terminal?('if', false, index)
1988
+ r25 = instantiate_node(SyntaxNode,input, index...(index + 2))
1989
+ @index += 2
2018
1990
  else
2019
1991
  terminal_parse_failure('if')
2020
1992
  r25 = nil
@@ -2051,9 +2023,9 @@ module Delorean
2051
2023
  end
2052
2024
  s2 << r23
2053
2025
  if r23
2054
- if (match_len = has_terminal?('}', false, index))
2055
- r30 = true
2056
- @index += match_len
2026
+ if has_terminal?('}', false, index)
2027
+ r30 = instantiate_node(SyntaxNode,input, index...(index + 1))
2028
+ @index += 1
2057
2029
  else
2058
2030
  terminal_parse_failure('}')
2059
2031
  r30 = nil
@@ -2084,13 +2056,12 @@ module Delorean
2084
2056
  r2 = nil
2085
2057
  end
2086
2058
  if r2
2087
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2088
2059
  r0 = r2
2089
2060
  else
2090
2061
  i31, s31 = index, []
2091
- if (match_len = has_terminal?('{', false, index))
2092
- r32 = true
2093
- @index += match_len
2062
+ if has_terminal?('{', false, index)
2063
+ r32 = instantiate_node(SyntaxNode,input, index...(index + 1))
2064
+ @index += 1
2094
2065
  else
2095
2066
  terminal_parse_failure('{')
2096
2067
  r32 = nil
@@ -2116,9 +2087,9 @@ module Delorean
2116
2087
  end
2117
2088
  s31 << r36
2118
2089
  if r36
2119
- if (match_len = has_terminal?('}', false, index))
2120
- r38 = true
2121
- @index += match_len
2090
+ if has_terminal?('}', false, index)
2091
+ r38 = instantiate_node(SyntaxNode,input, index...(index + 1))
2092
+ @index += 1
2122
2093
  else
2123
2094
  terminal_parse_failure('}')
2124
2095
  r38 = nil
@@ -2136,7 +2107,6 @@ module Delorean
2136
2107
  r31 = nil
2137
2108
  end
2138
2109
  if r31
2139
- r31 = SyntaxNode.new(input, (index-1)...index) if r31 == true
2140
2110
  r0 = r31
2141
2111
  else
2142
2112
  @index = i0
@@ -2155,187 +2125,171 @@ module Delorean
2155
2125
  if node_cache[:binary_op].has_key?(index)
2156
2126
  cached = node_cache[:binary_op][index]
2157
2127
  if cached
2158
- node_cache[:binary_op][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2128
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2159
2129
  @index = cached.interval.end
2160
2130
  end
2161
2131
  return cached
2162
2132
  end
2163
2133
 
2164
2134
  i0 = index
2165
- if (match_len = has_terminal?('==', false, index))
2166
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2167
- @index += match_len
2135
+ if has_terminal?('==', false, index)
2136
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
2137
+ @index += 2
2168
2138
  else
2169
2139
  terminal_parse_failure('==')
2170
2140
  r1 = nil
2171
2141
  end
2172
2142
  if r1
2173
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2174
2143
  r0 = r1
2175
2144
  else
2176
- if (match_len = has_terminal?('!=', false, index))
2177
- r2 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2178
- @index += match_len
2145
+ if has_terminal?('!=', false, index)
2146
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
2147
+ @index += 2
2179
2148
  else
2180
2149
  terminal_parse_failure('!=')
2181
2150
  r2 = nil
2182
2151
  end
2183
2152
  if r2
2184
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2185
2153
  r0 = r2
2186
2154
  else
2187
- if (match_len = has_terminal?('>=', false, index))
2188
- r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2189
- @index += match_len
2155
+ if has_terminal?('>=', false, index)
2156
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 2))
2157
+ @index += 2
2190
2158
  else
2191
2159
  terminal_parse_failure('>=')
2192
2160
  r3 = nil
2193
2161
  end
2194
2162
  if r3
2195
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
2196
2163
  r0 = r3
2197
2164
  else
2198
- if (match_len = has_terminal?('<=', false, index))
2199
- r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2200
- @index += match_len
2165
+ if has_terminal?('<=', false, index)
2166
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
2167
+ @index += 2
2201
2168
  else
2202
2169
  terminal_parse_failure('<=')
2203
2170
  r4 = nil
2204
2171
  end
2205
2172
  if r4
2206
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
2207
2173
  r0 = r4
2208
2174
  else
2209
- if (match_len = has_terminal?('&&', false, index))
2210
- r5 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2211
- @index += match_len
2175
+ if has_terminal?('&&', false, index)
2176
+ r5 = instantiate_node(SyntaxNode,input, index...(index + 2))
2177
+ @index += 2
2212
2178
  else
2213
2179
  terminal_parse_failure('&&')
2214
2180
  r5 = nil
2215
2181
  end
2216
2182
  if r5
2217
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
2218
2183
  r0 = r5
2219
2184
  else
2220
- if (match_len = has_terminal?('||', false, index))
2221
- r6 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2222
- @index += match_len
2185
+ if has_terminal?('||', false, index)
2186
+ r6 = instantiate_node(SyntaxNode,input, index...(index + 2))
2187
+ @index += 2
2223
2188
  else
2224
2189
  terminal_parse_failure('||')
2225
2190
  r6 = nil
2226
2191
  end
2227
2192
  if r6
2228
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
2229
2193
  r0 = r6
2230
2194
  else
2231
- if (match_len = has_terminal?('>', false, index))
2232
- r7 = true
2233
- @index += match_len
2195
+ if has_terminal?('>', false, index)
2196
+ r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
2197
+ @index += 1
2234
2198
  else
2235
2199
  terminal_parse_failure('>')
2236
2200
  r7 = nil
2237
2201
  end
2238
2202
  if r7
2239
- r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
2240
2203
  r0 = r7
2241
2204
  else
2242
- if (match_len = has_terminal?('<', false, index))
2243
- r8 = true
2244
- @index += match_len
2205
+ if has_terminal?('<', false, index)
2206
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
2207
+ @index += 1
2245
2208
  else
2246
2209
  terminal_parse_failure('<')
2247
2210
  r8 = nil
2248
2211
  end
2249
2212
  if r8
2250
- r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
2251
2213
  r0 = r8
2252
2214
  else
2253
- if (match_len = has_terminal?('+', false, index))
2254
- r9 = true
2255
- @index += match_len
2215
+ if has_terminal?('+', false, index)
2216
+ r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
2217
+ @index += 1
2256
2218
  else
2257
2219
  terminal_parse_failure('+')
2258
2220
  r9 = nil
2259
2221
  end
2260
2222
  if r9
2261
- r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
2262
2223
  r0 = r9
2263
2224
  else
2264
- if (match_len = has_terminal?('-', false, index))
2265
- r10 = true
2266
- @index += match_len
2225
+ if has_terminal?('-', false, index)
2226
+ r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
2227
+ @index += 1
2267
2228
  else
2268
2229
  terminal_parse_failure('-')
2269
2230
  r10 = nil
2270
2231
  end
2271
2232
  if r10
2272
- r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
2273
2233
  r0 = r10
2274
2234
  else
2275
- if (match_len = has_terminal?('*', false, index))
2276
- r11 = true
2277
- @index += match_len
2235
+ if has_terminal?('*', false, index)
2236
+ r11 = instantiate_node(SyntaxNode,input, index...(index + 1))
2237
+ @index += 1
2278
2238
  else
2279
2239
  terminal_parse_failure('*')
2280
2240
  r11 = nil
2281
2241
  end
2282
2242
  if r11
2283
- r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
2284
2243
  r0 = r11
2285
2244
  else
2286
- if (match_len = has_terminal?('/', false, index))
2287
- r12 = true
2288
- @index += match_len
2245
+ if has_terminal?('/', false, index)
2246
+ r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
2247
+ @index += 1
2289
2248
  else
2290
2249
  terminal_parse_failure('/')
2291
2250
  r12 = nil
2292
2251
  end
2293
2252
  if r12
2294
- r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
2295
2253
  r0 = r12
2296
2254
  else
2297
- if (match_len = has_terminal?('%', false, index))
2298
- r13 = true
2299
- @index += match_len
2255
+ if has_terminal?('%', false, index)
2256
+ r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
2257
+ @index += 1
2300
2258
  else
2301
2259
  terminal_parse_failure('%')
2302
2260
  r13 = nil
2303
2261
  end
2304
2262
  if r13
2305
- r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
2306
2263
  r0 = r13
2307
2264
  else
2308
- if (match_len = has_terminal?('&', false, index))
2309
- r14 = true
2310
- @index += match_len
2265
+ if has_terminal?('&', false, index)
2266
+ r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
2267
+ @index += 1
2311
2268
  else
2312
2269
  terminal_parse_failure('&')
2313
2270
  r14 = nil
2314
2271
  end
2315
2272
  if r14
2316
- r14 = SyntaxNode.new(input, (index-1)...index) if r14 == true
2317
2273
  r0 = r14
2318
2274
  else
2319
- if (match_len = has_terminal?('^', false, index))
2320
- r15 = true
2321
- @index += match_len
2275
+ if has_terminal?('^', false, index)
2276
+ r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
2277
+ @index += 1
2322
2278
  else
2323
2279
  terminal_parse_failure('^')
2324
2280
  r15 = nil
2325
2281
  end
2326
2282
  if r15
2327
- r15 = SyntaxNode.new(input, (index-1)...index) if r15 == true
2328
2283
  r0 = r15
2329
2284
  else
2330
- if (match_len = has_terminal?('|', false, index))
2331
- r16 = true
2332
- @index += match_len
2285
+ if has_terminal?('|', false, index)
2286
+ r16 = instantiate_node(SyntaxNode,input, index...(index + 1))
2287
+ @index += 1
2333
2288
  else
2334
2289
  terminal_parse_failure('|')
2335
2290
  r16 = nil
2336
2291
  end
2337
2292
  if r16
2338
- r16 = SyntaxNode.new(input, (index-1)...index) if r16 == true
2339
2293
  r0 = r16
2340
2294
  else
2341
2295
  @index = i0
@@ -2367,33 +2321,31 @@ module Delorean
2367
2321
  if node_cache[:unary_op].has_key?(index)
2368
2322
  cached = node_cache[:unary_op][index]
2369
2323
  if cached
2370
- node_cache[:unary_op][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2324
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2371
2325
  @index = cached.interval.end
2372
2326
  end
2373
2327
  return cached
2374
2328
  end
2375
2329
 
2376
2330
  i0 = index
2377
- if (match_len = has_terminal?('!', false, index))
2378
- r1 = true
2379
- @index += match_len
2331
+ if has_terminal?('!', false, index)
2332
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
2333
+ @index += 1
2380
2334
  else
2381
2335
  terminal_parse_failure('!')
2382
2336
  r1 = nil
2383
2337
  end
2384
2338
  if r1
2385
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2386
2339
  r0 = r1
2387
2340
  else
2388
- if (match_len = has_terminal?('-', false, index))
2389
- r2 = true
2390
- @index += match_len
2341
+ if has_terminal?('-', false, index)
2342
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
2343
+ @index += 1
2391
2344
  else
2392
2345
  terminal_parse_failure('-')
2393
2346
  r2 = nil
2394
2347
  end
2395
2348
  if r2
2396
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2397
2349
  r0 = r2
2398
2350
  else
2399
2351
  @index = i0
@@ -2435,7 +2387,7 @@ module Delorean
2435
2387
  if node_cache[:value].has_key?(index)
2436
2388
  cached = node_cache[:value][index]
2437
2389
  if cached
2438
- node_cache[:value][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2390
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2439
2391
  @index = cached.interval.end
2440
2392
  end
2441
2393
  return cached
@@ -2444,52 +2396,42 @@ module Delorean
2444
2396
  i0 = index
2445
2397
  r1 = _nt_decimal
2446
2398
  if r1
2447
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2448
2399
  r0 = r1
2449
2400
  else
2450
2401
  r2 = _nt_integer
2451
2402
  if r2
2452
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2453
2403
  r0 = r2
2454
2404
  else
2455
2405
  r3 = _nt_string
2456
2406
  if r3
2457
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
2458
2407
  r0 = r3
2459
2408
  else
2460
2409
  r4 = _nt_boolean
2461
2410
  if r4
2462
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
2463
2411
  r0 = r4
2464
2412
  else
2465
2413
  r5 = _nt_nil_val
2466
2414
  if r5
2467
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
2468
2415
  r0 = r5
2469
2416
  else
2470
2417
  r6 = _nt_identifier
2471
2418
  if r6
2472
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
2473
2419
  r0 = r6
2474
2420
  else
2475
2421
  r7 = _nt_self
2476
2422
  if r7
2477
- r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
2478
2423
  r0 = r7
2479
2424
  else
2480
2425
  r8 = _nt_list_expr
2481
2426
  if r8
2482
- r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
2483
2427
  r0 = r8
2484
2428
  else
2485
2429
  r9 = _nt_set_expr
2486
2430
  if r9
2487
- r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
2488
2431
  r0 = r9
2489
2432
  else
2490
2433
  r10 = _nt_hash_expr
2491
2434
  if r10
2492
- r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
2493
2435
  r0 = r10
2494
2436
  else
2495
2437
  i11, s11 = index, []
@@ -2497,9 +2439,9 @@ module Delorean
2497
2439
  r14 = _nt_class_name
2498
2440
  s13 << r14
2499
2441
  if r14
2500
- if (match_len = has_terminal?('::', false, index))
2501
- r15 = instantiate_node(SyntaxNode,input, index...(index + match_len))
2502
- @index += match_len
2442
+ if has_terminal?('::', false, index)
2443
+ r15 = instantiate_node(SyntaxNode,input, index...(index + 2))
2444
+ @index += 2
2503
2445
  else
2504
2446
  terminal_parse_failure('::')
2505
2447
  r15 = nil
@@ -2531,13 +2473,12 @@ module Delorean
2531
2473
  r11 = nil
2532
2474
  end
2533
2475
  if r11
2534
- r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
2535
2476
  r0 = r11
2536
2477
  else
2537
2478
  i17, s17 = index, []
2538
- if (match_len = has_terminal?('(', false, index))
2539
- r18 = true
2540
- @index += match_len
2479
+ if has_terminal?('(', false, index)
2480
+ r18 = instantiate_node(SyntaxNode,input, index...(index + 1))
2481
+ @index += 1
2541
2482
  else
2542
2483
  terminal_parse_failure('(')
2543
2484
  r18 = nil
@@ -2563,9 +2504,9 @@ module Delorean
2563
2504
  end
2564
2505
  s17 << r22
2565
2506
  if r22
2566
- if (match_len = has_terminal?(')', false, index))
2567
- r24 = true
2568
- @index += match_len
2507
+ if has_terminal?(')', false, index)
2508
+ r24 = instantiate_node(SyntaxNode,input, index...(index + 1))
2509
+ @index += 1
2569
2510
  else
2570
2511
  terminal_parse_failure(')')
2571
2512
  r24 = nil
@@ -2583,7 +2524,6 @@ module Delorean
2583
2524
  r17 = nil
2584
2525
  end
2585
2526
  if r17
2586
- r17 = SyntaxNode.new(input, (index-1)...index) if r17 == true
2587
2527
  r0 = r17
2588
2528
  else
2589
2529
  @index = i0
@@ -2627,7 +2567,7 @@ module Delorean
2627
2567
  if node_cache[:fn_args].has_key?(index)
2628
2568
  cached = node_cache[:fn_args][index]
2629
2569
  if cached
2630
- node_cache[:fn_args][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2570
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2631
2571
  @index = cached.interval.end
2632
2572
  end
2633
2573
  return cached
@@ -2646,9 +2586,9 @@ module Delorean
2646
2586
  end
2647
2587
  s3 << r4
2648
2588
  if r4
2649
- if (match_len = has_terminal?(',', false, index))
2650
- r6 = true
2651
- @index += match_len
2589
+ if has_terminal?(',', false, index)
2590
+ r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
2591
+ @index += 1
2652
2592
  else
2653
2593
  terminal_parse_failure(',')
2654
2594
  r6 = nil
@@ -2725,7 +2665,7 @@ module Delorean
2725
2665
  if node_cache[:hash_args].has_key?(index)
2726
2666
  cached = node_cache[:hash_args][index]
2727
2667
  if cached
2728
- node_cache[:hash_args][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2668
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2729
2669
  @index = cached.interval.end
2730
2670
  end
2731
2671
  return cached
@@ -2743,9 +2683,9 @@ module Delorean
2743
2683
  end
2744
2684
  s0 << r2
2745
2685
  if r2
2746
- if (match_len = has_terminal?(':', false, index))
2747
- r4 = true
2748
- @index += match_len
2686
+ if has_terminal?(':', false, index)
2687
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2688
+ @index += 1
2749
2689
  else
2750
2690
  terminal_parse_failure(':')
2751
2691
  r4 = nil
@@ -2772,9 +2712,9 @@ module Delorean
2772
2712
  end
2773
2713
  s9 << r10
2774
2714
  if r10
2775
- if (match_len = has_terminal?(',', false, index))
2776
- r12 = true
2777
- @index += match_len
2715
+ if has_terminal?(',', false, index)
2716
+ r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
2717
+ @index += 1
2778
2718
  else
2779
2719
  terminal_parse_failure(',')
2780
2720
  r12 = nil
@@ -2862,7 +2802,7 @@ module Delorean
2862
2802
  if node_cache[:kw_args].has_key?(index)
2863
2803
  cached = node_cache[:kw_args][index]
2864
2804
  if cached
2865
- node_cache[:kw_args][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2805
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2866
2806
  @index = cached.interval.end
2867
2807
  end
2868
2808
  return cached
@@ -2881,9 +2821,9 @@ module Delorean
2881
2821
  end
2882
2822
  s2 << r4
2883
2823
  if r4
2884
- if (match_len = has_terminal?('=', false, index))
2885
- r6 = true
2886
- @index += match_len
2824
+ if has_terminal?('=', false, index)
2825
+ r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
2826
+ @index += 1
2887
2827
  else
2888
2828
  terminal_parse_failure('=')
2889
2829
  r6 = nil
@@ -2926,9 +2866,9 @@ module Delorean
2926
2866
  end
2927
2867
  s11 << r12
2928
2868
  if r12
2929
- if (match_len = has_terminal?(',', false, index))
2930
- r14 = true
2931
- @index += match_len
2869
+ if has_terminal?(',', false, index)
2870
+ r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
2871
+ @index += 1
2932
2872
  else
2933
2873
  terminal_parse_failure(',')
2934
2874
  r14 = nil
@@ -2993,7 +2933,7 @@ module Delorean
2993
2933
  if node_cache[:decimal].has_key?(index)
2994
2934
  cached = node_cache[:decimal][index]
2995
2935
  if cached
2996
- node_cache[:decimal][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2936
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2997
2937
  @index = cached.interval.end
2998
2938
  end
2999
2939
  return cached
@@ -3003,9 +2943,9 @@ module Delorean
3003
2943
  r1 = _nt_integer
3004
2944
  s0 << r1
3005
2945
  if r1
3006
- if (match_len = has_terminal?('.', false, index))
3007
- r2 = true
3008
- @index += match_len
2946
+ if has_terminal?('.', false, index)
2947
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
2948
+ @index += 1
3009
2949
  else
3010
2950
  terminal_parse_failure('.')
3011
2951
  r2 = nil
@@ -3014,11 +2954,10 @@ module Delorean
3014
2954
  if r2
3015
2955
  s3, i3 = [], index
3016
2956
  loop do
3017
- if has_terminal?(@regexps[gr = '\A[0-9]'] ||= Regexp.new(gr), :regexp, index)
2957
+ if has_terminal?('\G[0-9]', true, index)
3018
2958
  r4 = true
3019
2959
  @index += 1
3020
2960
  else
3021
- terminal_parse_failure('[0-9]')
3022
2961
  r4 = nil
3023
2962
  end
3024
2963
  if r4
@@ -3057,41 +2996,38 @@ module Delorean
3057
2996
  if node_cache[:integer].has_key?(index)
3058
2997
  cached = node_cache[:integer][index]
3059
2998
  if cached
3060
- node_cache[:integer][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2999
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3061
3000
  @index = cached.interval.end
3062
3001
  end
3063
3002
  return cached
3064
3003
  end
3065
3004
 
3066
3005
  i0 = index
3067
- if (match_len = has_terminal?('0', false, index))
3068
- r1 = instantiate_node(Literal,input, index...(index + match_len))
3069
- @index += match_len
3006
+ if has_terminal?('0', false, index)
3007
+ r1 = instantiate_node(Literal,input, index...(index + 1))
3008
+ @index += 1
3070
3009
  else
3071
3010
  terminal_parse_failure('0')
3072
3011
  r1 = nil
3073
3012
  end
3074
3013
  if r1
3075
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
3076
3014
  r0 = r1
3077
3015
  else
3078
3016
  i2, s2 = index, []
3079
- if has_terminal?(@regexps[gr = '\A[1-9]'] ||= Regexp.new(gr), :regexp, index)
3017
+ if has_terminal?('\G[1-9]', true, index)
3080
3018
  r3 = true
3081
3019
  @index += 1
3082
3020
  else
3083
- terminal_parse_failure('[1-9]')
3084
3021
  r3 = nil
3085
3022
  end
3086
3023
  s2 << r3
3087
3024
  if r3
3088
3025
  s4, i4 = [], index
3089
3026
  loop do
3090
- if has_terminal?(@regexps[gr = '\A[0-9]'] ||= Regexp.new(gr), :regexp, index)
3027
+ if has_terminal?('\G[0-9]', true, index)
3091
3028
  r5 = true
3092
3029
  @index += 1
3093
3030
  else
3094
- terminal_parse_failure('[0-9]')
3095
3031
  r5 = nil
3096
3032
  end
3097
3033
  if r5
@@ -3111,7 +3047,6 @@ module Delorean
3111
3047
  r2 = nil
3112
3048
  end
3113
3049
  if r2
3114
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
3115
3050
  r0 = r2
3116
3051
  else
3117
3052
  @index = i0
@@ -3132,29 +3067,27 @@ module Delorean
3132
3067
  if node_cache[:identifier].has_key?(index)
3133
3068
  cached = node_cache[:identifier][index]
3134
3069
  if cached
3135
- node_cache[:identifier][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3070
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3136
3071
  @index = cached.interval.end
3137
3072
  end
3138
3073
  return cached
3139
3074
  end
3140
3075
 
3141
3076
  i0, s0 = index, []
3142
- if has_terminal?(@regexps[gr = '\A[a-z]'] ||= Regexp.new(gr), :regexp, index)
3077
+ if has_terminal?('\G[a-z]', true, index)
3143
3078
  r1 = true
3144
3079
  @index += 1
3145
3080
  else
3146
- terminal_parse_failure('[a-z]')
3147
3081
  r1 = nil
3148
3082
  end
3149
3083
  s0 << r1
3150
3084
  if r1
3151
3085
  s2, i2 = [], index
3152
3086
  loop do
3153
- if has_terminal?(@regexps[gr = '\A[a-zA-Z0-9_]'] ||= Regexp.new(gr), :regexp, index)
3087
+ if has_terminal?('\G[a-zA-Z0-9_]', true, index)
3154
3088
  r3 = true
3155
3089
  @index += 1
3156
3090
  else
3157
- terminal_parse_failure('[a-zA-Z0-9_]')
3158
3091
  r3 = nil
3159
3092
  end
3160
3093
  if r3
@@ -3184,33 +3117,31 @@ module Delorean
3184
3117
  if node_cache[:boolean].has_key?(index)
3185
3118
  cached = node_cache[:boolean][index]
3186
3119
  if cached
3187
- node_cache[:boolean][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3120
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3188
3121
  @index = cached.interval.end
3189
3122
  end
3190
3123
  return cached
3191
3124
  end
3192
3125
 
3193
3126
  i0 = index
3194
- if (match_len = has_terminal?('true', false, index))
3195
- r1 = instantiate_node(Literal,input, index...(index + match_len))
3196
- @index += match_len
3127
+ if has_terminal?('true', false, index)
3128
+ r1 = instantiate_node(Literal,input, index...(index + 4))
3129
+ @index += 4
3197
3130
  else
3198
3131
  terminal_parse_failure('true')
3199
3132
  r1 = nil
3200
3133
  end
3201
3134
  if r1
3202
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
3203
3135
  r0 = r1
3204
3136
  else
3205
- if (match_len = has_terminal?('false', false, index))
3206
- r2 = instantiate_node(Literal,input, index...(index + match_len))
3207
- @index += match_len
3137
+ if has_terminal?('false', false, index)
3138
+ r2 = instantiate_node(Literal,input, index...(index + 5))
3139
+ @index += 5
3208
3140
  else
3209
3141
  terminal_parse_failure('false')
3210
3142
  r2 = nil
3211
3143
  end
3212
3144
  if r2
3213
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
3214
3145
  r0 = r2
3215
3146
  else
3216
3147
  @index = i0
@@ -3228,15 +3159,15 @@ module Delorean
3228
3159
  if node_cache[:self].has_key?(index)
3229
3160
  cached = node_cache[:self][index]
3230
3161
  if cached
3231
- node_cache[:self][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3162
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3232
3163
  @index = cached.interval.end
3233
3164
  end
3234
3165
  return cached
3235
3166
  end
3236
3167
 
3237
- if (match_len = has_terminal?('_', false, index))
3238
- r0 = instantiate_node(Self,input, index...(index + match_len))
3239
- @index += match_len
3168
+ if has_terminal?('_', false, index)
3169
+ r0 = instantiate_node(Self,input, index...(index + 1))
3170
+ @index += 1
3240
3171
  else
3241
3172
  terminal_parse_failure('_')
3242
3173
  r0 = nil
@@ -3252,15 +3183,15 @@ module Delorean
3252
3183
  if node_cache[:nil_val].has_key?(index)
3253
3184
  cached = node_cache[:nil_val][index]
3254
3185
  if cached
3255
- node_cache[:nil_val][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3186
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3256
3187
  @index = cached.interval.end
3257
3188
  end
3258
3189
  return cached
3259
3190
  end
3260
3191
 
3261
- if (match_len = has_terminal?('nil', false, index))
3262
- r0 = instantiate_node(Literal,input, index...(index + match_len))
3263
- @index += match_len
3192
+ if has_terminal?('nil', false, index)
3193
+ r0 = instantiate_node(Literal,input, index...(index + 3))
3194
+ @index += 3
3264
3195
  else
3265
3196
  terminal_parse_failure('nil')
3266
3197
  r0 = nil
@@ -3276,15 +3207,15 @@ module Delorean
3276
3207
  if node_cache[:sp4].has_key?(index)
3277
3208
  cached = node_cache[:sp4][index]
3278
3209
  if cached
3279
- node_cache[:sp4][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3210
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3280
3211
  @index = cached.interval.end
3281
3212
  end
3282
3213
  return cached
3283
3214
  end
3284
3215
 
3285
- if (match_len = has_terminal?(' ', false, index))
3286
- r0 = instantiate_node(SyntaxNode,input, index...(index + match_len))
3287
- @index += match_len
3216
+ if has_terminal?(' ', false, index)
3217
+ r0 = instantiate_node(SyntaxNode,input, index...(index + 4))
3218
+ @index += 4
3288
3219
  else
3289
3220
  terminal_parse_failure(' ')
3290
3221
  r0 = nil
@@ -3300,7 +3231,7 @@ module Delorean
3300
3231
  if node_cache[:sp].has_key?(index)
3301
3232
  cached = node_cache[:sp][index]
3302
3233
  if cached
3303
- node_cache[:sp][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3234
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3304
3235
  @index = cached.interval.end
3305
3236
  end
3306
3237
  return cached
@@ -3308,11 +3239,10 @@ module Delorean
3308
3239
 
3309
3240
  s0, i0 = [], index
3310
3241
  loop do
3311
- if has_terminal?(@regexps[gr = '\A[\\s]'] ||= Regexp.new(gr), :regexp, index)
3242
+ if has_terminal?('\G[\\s]', true, index)
3312
3243
  r1 = true
3313
3244
  @index += 1
3314
3245
  else
3315
- terminal_parse_failure('[\\s]')
3316
3246
  r1 = nil
3317
3247
  end
3318
3248
  if r1
@@ -3347,7 +3277,7 @@ module Delorean
3347
3277
  if node_cache[:string].has_key?(index)
3348
3278
  cached = node_cache[:string][index]
3349
3279
  if cached
3350
- node_cache[:string][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3280
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3351
3281
  @index = cached.interval.end
3352
3282
  end
3353
3283
  return cached
@@ -3355,9 +3285,9 @@ module Delorean
3355
3285
 
3356
3286
  i0 = index
3357
3287
  i1, s1 = index, []
3358
- if (match_len = has_terminal?('"', false, index))
3359
- r2 = true
3360
- @index += match_len
3288
+ if has_terminal?('"', false, index)
3289
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
3290
+ @index += 1
3361
3291
  else
3362
3292
  terminal_parse_failure('"')
3363
3293
  r2 = nil
@@ -3367,22 +3297,21 @@ module Delorean
3367
3297
  s3, i3 = [], index
3368
3298
  loop do
3369
3299
  i4 = index
3370
- if (match_len = has_terminal?('\"', false, index))
3371
- r5 = instantiate_node(SyntaxNode,input, index...(index + match_len))
3372
- @index += match_len
3300
+ if has_terminal?('\"', false, index)
3301
+ r5 = instantiate_node(SyntaxNode,input, index...(index + 2))
3302
+ @index += 2
3373
3303
  else
3374
3304
  terminal_parse_failure('\"')
3375
3305
  r5 = nil
3376
3306
  end
3377
3307
  if r5
3378
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
3379
3308
  r4 = r5
3380
3309
  else
3381
3310
  i6, s6 = index, []
3382
3311
  i7 = index
3383
- if (match_len = has_terminal?('"', false, index))
3384
- r8 = true
3385
- @index += match_len
3312
+ if has_terminal?('"', false, index)
3313
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
3314
+ @index += 1
3386
3315
  else
3387
3316
  terminal_parse_failure('"')
3388
3317
  r8 = nil
@@ -3396,7 +3325,7 @@ module Delorean
3396
3325
  s6 << r7
3397
3326
  if r7
3398
3327
  if index < input_length
3399
- r9 = true
3328
+ r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
3400
3329
  @index += 1
3401
3330
  else
3402
3331
  terminal_parse_failure("any character")
@@ -3412,7 +3341,6 @@ module Delorean
3412
3341
  r6 = nil
3413
3342
  end
3414
3343
  if r6
3415
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
3416
3344
  r4 = r6
3417
3345
  else
3418
3346
  @index = i4
@@ -3428,9 +3356,9 @@ module Delorean
3428
3356
  r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
3429
3357
  s1 << r3
3430
3358
  if r3
3431
- if (match_len = has_terminal?('"', false, index))
3432
- r10 = true
3433
- @index += match_len
3359
+ if has_terminal?('"', false, index)
3360
+ r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
3361
+ @index += 1
3434
3362
  else
3435
3363
  terminal_parse_failure('"')
3436
3364
  r10 = nil
@@ -3446,13 +3374,12 @@ module Delorean
3446
3374
  r1 = nil
3447
3375
  end
3448
3376
  if r1
3449
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
3450
3377
  r0 = r1
3451
3378
  else
3452
3379
  i11, s11 = index, []
3453
- if (match_len = has_terminal?("'", false, index))
3454
- r12 = true
3455
- @index += match_len
3380
+ if has_terminal?("'", false, index)
3381
+ r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
3382
+ @index += 1
3456
3383
  else
3457
3384
  terminal_parse_failure("'")
3458
3385
  r12 = nil
@@ -3461,11 +3388,10 @@ module Delorean
3461
3388
  if r12
3462
3389
  s13, i13 = [], index
3463
3390
  loop do
3464
- if has_terminal?(@regexps[gr = '\A[^\']'] ||= Regexp.new(gr), :regexp, index)
3391
+ if has_terminal?('\G[^\']', true, index)
3465
3392
  r14 = true
3466
3393
  @index += 1
3467
3394
  else
3468
- terminal_parse_failure('[^\']')
3469
3395
  r14 = nil
3470
3396
  end
3471
3397
  if r14
@@ -3477,9 +3403,9 @@ module Delorean
3477
3403
  r13 = instantiate_node(SyntaxNode,input, i13...index, s13)
3478
3404
  s11 << r13
3479
3405
  if r13
3480
- if (match_len = has_terminal?("'", false, index))
3481
- r15 = true
3482
- @index += match_len
3406
+ if has_terminal?("'", false, index)
3407
+ r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
3408
+ @index += 1
3483
3409
  else
3484
3410
  terminal_parse_failure("'")
3485
3411
  r15 = nil
@@ -3495,7 +3421,6 @@ module Delorean
3495
3421
  r11 = nil
3496
3422
  end
3497
3423
  if r11
3498
- r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
3499
3424
  r0 = r11
3500
3425
  else
3501
3426
  @index = i0