timing 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -25,7 +25,7 @@ module Timing
25
25
  if node_cache[:expression].has_key?(index)
26
26
  cached = node_cache[:expression][index]
27
27
  if cached
28
- node_cache[:expression][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
28
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
29
29
  @index = cached.interval.end
30
30
  end
31
31
  return cached
@@ -100,7 +100,7 @@ module Timing
100
100
  if node_cache[:moment].has_key?(index)
101
101
  cached = node_cache[:moment][index]
102
102
  if cached
103
- node_cache[:moment][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
103
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
104
104
  @index = cached.interval.end
105
105
  end
106
106
  return cached
@@ -109,27 +109,22 @@ module Timing
109
109
  i0 = index
110
110
  r1 = _nt_timestamp
111
111
  if r1
112
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
113
112
  r0 = r1
114
113
  else
115
114
  r2 = _nt_time_ago
116
115
  if r2
117
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
118
116
  r0 = r2
119
117
  else
120
118
  r3 = _nt_moment_at_time
121
119
  if r3
122
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
123
120
  r0 = r3
124
121
  else
125
122
  r4 = _nt_before_from_moment
126
123
  if r4
127
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
128
124
  r0 = r4
129
125
  else
130
126
  r5 = _nt_date_moment
131
127
  if r5
132
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
133
128
  r0 = r5
134
129
  else
135
130
  @index = i0
@@ -150,7 +145,7 @@ module Timing
150
145
  if node_cache[:date_moment].has_key?(index)
151
146
  cached = node_cache[:date_moment][index]
152
147
  if cached
153
- node_cache[:date_moment][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
148
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
154
149
  @index = cached.interval.end
155
150
  end
156
151
  return cached
@@ -159,27 +154,22 @@ module Timing
159
154
  i0 = index
160
155
  r1 = _nt_named_moment
161
156
  if r1
162
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
163
157
  r0 = r1
164
158
  else
165
159
  r2 = _nt_last_next_day_name
166
160
  if r2
167
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
168
161
  r0 = r2
169
162
  else
170
163
  r3 = _nt_day_month_name_year
171
164
  if r3
172
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
173
165
  r0 = r3
174
166
  else
175
167
  r4 = _nt_year_month_day
176
168
  if r4
177
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
178
169
  r0 = r4
179
170
  else
180
171
  r5 = _nt_beginning_end_interval
181
172
  if r5
182
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
183
173
  r0 = r5
184
174
  else
185
175
  @index = i0
@@ -200,7 +190,7 @@ module Timing
200
190
  if node_cache[:named_moment].has_key?(index)
201
191
  cached = node_cache[:named_moment][index]
202
192
  if cached
203
- node_cache[:named_moment][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
193
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
204
194
  @index = cached.interval.end
205
195
  end
206
196
  return cached
@@ -209,22 +199,18 @@ module Timing
209
199
  i0 = index
210
200
  r1 = _nt_now
211
201
  if r1
212
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
213
202
  r0 = r1
214
203
  else
215
204
  r2 = _nt_today
216
205
  if r2
217
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
218
206
  r0 = r2
219
207
  else
220
208
  r3 = _nt_tomorrow
221
209
  if r3
222
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
223
210
  r0 = r3
224
211
  else
225
212
  r4 = _nt_yesterday
226
213
  if r4
227
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
228
214
  r0 = r4
229
215
  else
230
216
  @index = i0
@@ -254,7 +240,7 @@ module Timing
254
240
  if node_cache[:last_next_day_name].has_key?(index)
255
241
  cached = node_cache[:last_next_day_name][index]
256
242
  if cached
257
- node_cache[:last_next_day_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
243
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
258
244
  @index = cached.interval.end
259
245
  end
260
246
  return cached
@@ -313,7 +299,7 @@ module Timing
313
299
  if node_cache[:day_month_name_year].has_key?(index)
314
300
  cached = node_cache[:day_month_name_year][index]
315
301
  if cached
316
- node_cache[:day_month_name_year][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
302
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
317
303
  @index = cached.interval.end
318
304
  end
319
305
  return cached
@@ -406,7 +392,7 @@ module Timing
406
392
  if node_cache[:year_month_day].has_key?(index)
407
393
  cached = node_cache[:year_month_day][index]
408
394
  if cached
409
- node_cache[:year_month_day][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
395
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
410
396
  @index = cached.interval.end
411
397
  end
412
398
  return cached
@@ -416,11 +402,11 @@ module Timing
416
402
  r1 = _nt_integer
417
403
  s0 << r1
418
404
  if r1
419
- if (match_len = has_terminal?('-', false, index))
420
- r2 = true
421
- @index += match_len
405
+ if has_terminal?('-', false, index)
406
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
407
+ @index += 1
422
408
  else
423
- terminal_parse_failure('\'-\'')
409
+ terminal_parse_failure('-')
424
410
  r2 = nil
425
411
  end
426
412
  s0 << r2
@@ -428,11 +414,11 @@ module Timing
428
414
  r3 = _nt_integer
429
415
  s0 << r3
430
416
  if r3
431
- if (match_len = has_terminal?('-', false, index))
432
- r4 = true
433
- @index += match_len
417
+ if has_terminal?('-', false, index)
418
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
419
+ @index += 1
434
420
  else
435
- terminal_parse_failure('\'-\'')
421
+ terminal_parse_failure('-')
436
422
  r4 = nil
437
423
  end
438
424
  s0 << r4
@@ -471,7 +457,7 @@ module Timing
471
457
  if node_cache[:beginning_end_interval].has_key?(index)
472
458
  cached = node_cache[:beginning_end_interval][index]
473
459
  if cached
474
- node_cache[:beginning_end_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
460
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
475
461
  @index = cached.interval.end
476
462
  end
477
463
  return cached
@@ -526,7 +512,7 @@ module Timing
526
512
  if node_cache[:time_ago].has_key?(index)
527
513
  cached = node_cache[:time_ago][index]
528
514
  if cached
529
- node_cache[:time_ago][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
515
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
530
516
  @index = cached.interval.end
531
517
  end
532
518
  return cached
@@ -563,11 +549,11 @@ module Timing
563
549
  r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
564
550
  s0 << r5
565
551
  if r5
566
- if (match_len = has_terminal?('ago', :insens, index))
567
- r7 = instantiate_node(SyntaxNode,input, index...(index + match_len))
568
- @index += match_len
552
+ if has_terminal?('ago', false, index)
553
+ r7 = instantiate_node(SyntaxNode,input, index...(index + 3))
554
+ @index += 3
569
555
  else
570
- terminal_parse_failure('\'ago\'')
556
+ terminal_parse_failure('ago')
571
557
  r7 = nil
572
558
  end
573
559
  s0 << r7
@@ -603,7 +589,7 @@ module Timing
603
589
  if node_cache[:moment_at_time].has_key?(index)
604
590
  cached = node_cache[:moment_at_time][index]
605
591
  if cached
606
- node_cache[:moment_at_time][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
592
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
607
593
  @index = cached.interval.end
608
594
  end
609
595
  return cached
@@ -625,11 +611,11 @@ module Timing
625
611
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
626
612
  s0 << r2
627
613
  if r2
628
- if (match_len = has_terminal?('at', :insens, index))
629
- r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
630
- @index += match_len
614
+ if has_terminal?('at', false, index)
615
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
616
+ @index += 2
631
617
  else
632
- terminal_parse_failure('\'at\'')
618
+ terminal_parse_failure('at')
633
619
  r4 = nil
634
620
  end
635
621
  s0 << r4
@@ -688,7 +674,7 @@ module Timing
688
674
  if node_cache[:before_from_moment].has_key?(index)
689
675
  cached = node_cache[:before_from_moment][index]
690
676
  if cached
691
- node_cache[:before_from_moment][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
677
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
692
678
  @index = cached.interval.end
693
679
  end
694
680
  return cached
@@ -769,7 +755,7 @@ module Timing
769
755
  if node_cache[:timestamp].has_key?(index)
770
756
  cached = node_cache[:timestamp][index]
771
757
  if cached
772
- node_cache[:timestamp][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
758
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
773
759
  @index = cached.interval.end
774
760
  end
775
761
  return cached
@@ -778,11 +764,10 @@ module Timing
778
764
  i0, s0 = index, []
779
765
  s1, i1 = [], index
780
766
  loop do
781
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
767
+ if has_terminal?('\G[\\d]', true, index)
782
768
  r2 = true
783
769
  @index += 1
784
770
  else
785
- terminal_parse_failure('[\\d]')
786
771
  r2 = nil
787
772
  end
788
773
  if r2
@@ -798,29 +783,25 @@ module Timing
798
783
  @index = i1
799
784
  r1 = nil
800
785
  else
801
- if s1.size < 4
802
- terminal_failures.pop
803
- end
804
786
  r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
805
787
  end
806
788
  s0 << r1
807
789
  if r1
808
- if (match_len = has_terminal?('-', false, index))
809
- r3 = true
810
- @index += match_len
790
+ if has_terminal?('-', false, index)
791
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
792
+ @index += 1
811
793
  else
812
- terminal_parse_failure('\'-\'')
794
+ terminal_parse_failure('-')
813
795
  r3 = nil
814
796
  end
815
797
  s0 << r3
816
798
  if r3
817
799
  s4, i4 = [], index
818
800
  loop do
819
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
801
+ if has_terminal?('\G[\\d]', true, index)
820
802
  r5 = true
821
803
  @index += 1
822
804
  else
823
- terminal_parse_failure('[\\d]')
824
805
  r5 = nil
825
806
  end
826
807
  if r5
@@ -836,29 +817,25 @@ module Timing
836
817
  @index = i4
837
818
  r4 = nil
838
819
  else
839
- if s4.size < 2
840
- terminal_failures.pop
841
- end
842
820
  r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
843
821
  end
844
822
  s0 << r4
845
823
  if r4
846
- if (match_len = has_terminal?('-', false, index))
847
- r6 = true
848
- @index += match_len
824
+ if has_terminal?('-', false, index)
825
+ r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
826
+ @index += 1
849
827
  else
850
- terminal_parse_failure('\'-\'')
828
+ terminal_parse_failure('-')
851
829
  r6 = nil
852
830
  end
853
831
  s0 << r6
854
832
  if r6
855
833
  s7, i7 = [], index
856
834
  loop do
857
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
835
+ if has_terminal?('\G[\\d]', true, index)
858
836
  r8 = true
859
837
  @index += 1
860
838
  else
861
- terminal_parse_failure('[\\d]')
862
839
  r8 = nil
863
840
  end
864
841
  if r8
@@ -874,9 +851,6 @@ module Timing
874
851
  @index = i7
875
852
  r7 = nil
876
853
  else
877
- if s7.size < 2
878
- terminal_failures.pop
879
- end
880
854
  r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
881
855
  end
882
856
  s0 << r7
@@ -893,11 +867,11 @@ module Timing
893
867
  r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
894
868
  s0 << r9
895
869
  if r9
896
- if (match_len = has_terminal?('T', false, index))
897
- r12 = true
898
- @index += match_len
870
+ if has_terminal?('t', false, index)
871
+ r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
872
+ @index += 1
899
873
  else
900
- terminal_parse_failure('\'T\'')
874
+ terminal_parse_failure('t')
901
875
  r12 = nil
902
876
  end
903
877
  if r12
@@ -921,11 +895,10 @@ module Timing
921
895
  if r13
922
896
  s15, i15 = [], index
923
897
  loop do
924
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
898
+ if has_terminal?('\G[\\d]', true, index)
925
899
  r16 = true
926
900
  @index += 1
927
901
  else
928
- terminal_parse_failure('[\\d]')
929
902
  r16 = nil
930
903
  end
931
904
  if r16
@@ -941,29 +914,25 @@ module Timing
941
914
  @index = i15
942
915
  r15 = nil
943
916
  else
944
- if s15.size < 2
945
- terminal_failures.pop
946
- end
947
917
  r15 = instantiate_node(SyntaxNode,input, i15...index, s15)
948
918
  end
949
919
  s0 << r15
950
920
  if r15
951
- if (match_len = has_terminal?(':', false, index))
952
- r17 = true
953
- @index += match_len
921
+ if has_terminal?(':', false, index)
922
+ r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
923
+ @index += 1
954
924
  else
955
- terminal_parse_failure('\':\'')
925
+ terminal_parse_failure(':')
956
926
  r17 = nil
957
927
  end
958
928
  s0 << r17
959
929
  if r17
960
930
  s18, i18 = [], index
961
931
  loop do
962
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
932
+ if has_terminal?('\G[\\d]', true, index)
963
933
  r19 = true
964
934
  @index += 1
965
935
  else
966
- terminal_parse_failure('[\\d]')
967
936
  r19 = nil
968
937
  end
969
938
  if r19
@@ -979,29 +948,25 @@ module Timing
979
948
  @index = i18
980
949
  r18 = nil
981
950
  else
982
- if s18.size < 2
983
- terminal_failures.pop
984
- end
985
951
  r18 = instantiate_node(SyntaxNode,input, i18...index, s18)
986
952
  end
987
953
  s0 << r18
988
954
  if r18
989
- if (match_len = has_terminal?(':', false, index))
990
- r20 = true
991
- @index += match_len
955
+ if has_terminal?(':', false, index)
956
+ r20 = instantiate_node(SyntaxNode,input, index...(index + 1))
957
+ @index += 1
992
958
  else
993
- terminal_parse_failure('\':\'')
959
+ terminal_parse_failure(':')
994
960
  r20 = nil
995
961
  end
996
962
  s0 << r20
997
963
  if r20
998
964
  s21, i21 = [], index
999
965
  loop do
1000
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
966
+ if has_terminal?('\G[\\d]', true, index)
1001
967
  r22 = true
1002
968
  @index += 1
1003
969
  else
1004
- terminal_parse_failure('[\\d]')
1005
970
  r22 = nil
1006
971
  end
1007
972
  if r22
@@ -1017,9 +982,6 @@ module Timing
1017
982
  @index = i21
1018
983
  r21 = nil
1019
984
  else
1020
- if s21.size < 2
1021
- terminal_failures.pop
1022
- end
1023
985
  r21 = instantiate_node(SyntaxNode,input, i21...index, s21)
1024
986
  end
1025
987
  s0 << r21
@@ -1053,17 +1015,17 @@ module Timing
1053
1015
  if node_cache[:now].has_key?(index)
1054
1016
  cached = node_cache[:now][index]
1055
1017
  if cached
1056
- node_cache[:now][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1018
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1057
1019
  @index = cached.interval.end
1058
1020
  end
1059
1021
  return cached
1060
1022
  end
1061
1023
 
1062
- if (match_len = has_terminal?('now', :insens, index))
1063
- r0 = instantiate_node(Now,input, index...(index + match_len))
1064
- @index += match_len
1024
+ if has_terminal?('now', false, index)
1025
+ r0 = instantiate_node(Now,input, index...(index + 3))
1026
+ @index += 3
1065
1027
  else
1066
- terminal_parse_failure('\'now\'')
1028
+ terminal_parse_failure('now')
1067
1029
  r0 = nil
1068
1030
  end
1069
1031
 
@@ -1077,17 +1039,17 @@ module Timing
1077
1039
  if node_cache[:today].has_key?(index)
1078
1040
  cached = node_cache[:today][index]
1079
1041
  if cached
1080
- node_cache[:today][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1042
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1081
1043
  @index = cached.interval.end
1082
1044
  end
1083
1045
  return cached
1084
1046
  end
1085
1047
 
1086
- if (match_len = has_terminal?('today', :insens, index))
1087
- r0 = instantiate_node(Today,input, index...(index + match_len))
1088
- @index += match_len
1048
+ if has_terminal?('today', false, index)
1049
+ r0 = instantiate_node(Today,input, index...(index + 5))
1050
+ @index += 5
1089
1051
  else
1090
- terminal_parse_failure('\'today\'')
1052
+ terminal_parse_failure('today')
1091
1053
  r0 = nil
1092
1054
  end
1093
1055
 
@@ -1101,17 +1063,17 @@ module Timing
1101
1063
  if node_cache[:tomorrow].has_key?(index)
1102
1064
  cached = node_cache[:tomorrow][index]
1103
1065
  if cached
1104
- node_cache[:tomorrow][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1066
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1105
1067
  @index = cached.interval.end
1106
1068
  end
1107
1069
  return cached
1108
1070
  end
1109
1071
 
1110
- if (match_len = has_terminal?('tomorrow', :insens, index))
1111
- r0 = instantiate_node(Tomorrow,input, index...(index + match_len))
1112
- @index += match_len
1072
+ if has_terminal?('tomorrow', false, index)
1073
+ r0 = instantiate_node(Tomorrow,input, index...(index + 8))
1074
+ @index += 8
1113
1075
  else
1114
- terminal_parse_failure('\'tomorrow\'')
1076
+ terminal_parse_failure('tomorrow')
1115
1077
  r0 = nil
1116
1078
  end
1117
1079
 
@@ -1125,17 +1087,17 @@ module Timing
1125
1087
  if node_cache[:yesterday].has_key?(index)
1126
1088
  cached = node_cache[:yesterday][index]
1127
1089
  if cached
1128
- node_cache[:yesterday][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1090
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1129
1091
  @index = cached.interval.end
1130
1092
  end
1131
1093
  return cached
1132
1094
  end
1133
1095
 
1134
- if (match_len = has_terminal?('yesterday', :insens, index))
1135
- r0 = instantiate_node(Yesterday,input, index...(index + match_len))
1136
- @index += match_len
1096
+ if has_terminal?('yesterday', false, index)
1097
+ r0 = instantiate_node(Yesterday,input, index...(index + 9))
1098
+ @index += 9
1137
1099
  else
1138
- terminal_parse_failure('\'yesterday\'')
1100
+ terminal_parse_failure('yesterday')
1139
1101
  r0 = nil
1140
1102
  end
1141
1103
 
@@ -1149,7 +1111,7 @@ module Timing
1149
1111
  if node_cache[:last_next].has_key?(index)
1150
1112
  cached = node_cache[:last_next][index]
1151
1113
  if cached
1152
- node_cache[:last_next][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1114
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1153
1115
  @index = cached.interval.end
1154
1116
  end
1155
1117
  return cached
@@ -1158,12 +1120,10 @@ module Timing
1158
1120
  i0 = index
1159
1121
  r1 = _nt_last
1160
1122
  if r1
1161
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1162
1123
  r0 = r1
1163
1124
  else
1164
1125
  r2 = _nt_next
1165
1126
  if r2
1166
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1167
1127
  r0 = r2
1168
1128
  else
1169
1129
  @index = i0
@@ -1181,17 +1141,17 @@ module Timing
1181
1141
  if node_cache[:last].has_key?(index)
1182
1142
  cached = node_cache[:last][index]
1183
1143
  if cached
1184
- node_cache[:last][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1144
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1185
1145
  @index = cached.interval.end
1186
1146
  end
1187
1147
  return cached
1188
1148
  end
1189
1149
 
1190
- if (match_len = has_terminal?('last', :insens, index))
1191
- r0 = instantiate_node(LastNext,input, index...(index + match_len))
1192
- @index += match_len
1150
+ if has_terminal?('last', false, index)
1151
+ r0 = instantiate_node(LastNext,input, index...(index + 4))
1152
+ @index += 4
1193
1153
  else
1194
- terminal_parse_failure('\'last\'')
1154
+ terminal_parse_failure('last')
1195
1155
  r0 = nil
1196
1156
  end
1197
1157
 
@@ -1205,17 +1165,17 @@ module Timing
1205
1165
  if node_cache[:next].has_key?(index)
1206
1166
  cached = node_cache[:next][index]
1207
1167
  if cached
1208
- node_cache[:next][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1168
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1209
1169
  @index = cached.interval.end
1210
1170
  end
1211
1171
  return cached
1212
1172
  end
1213
1173
 
1214
- if (match_len = has_terminal?('next', :insens, index))
1215
- r0 = instantiate_node(LastNext,input, index...(index + match_len))
1216
- @index += match_len
1174
+ if has_terminal?('next', false, index)
1175
+ r0 = instantiate_node(LastNext,input, index...(index + 4))
1176
+ @index += 4
1217
1177
  else
1218
- terminal_parse_failure('\'next\'')
1178
+ terminal_parse_failure('next')
1219
1179
  r0 = nil
1220
1180
  end
1221
1181
 
@@ -1229,7 +1189,7 @@ module Timing
1229
1189
  if node_cache[:beginning_end].has_key?(index)
1230
1190
  cached = node_cache[:beginning_end][index]
1231
1191
  if cached
1232
- node_cache[:beginning_end][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1192
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1233
1193
  @index = cached.interval.end
1234
1194
  end
1235
1195
  return cached
@@ -1238,12 +1198,10 @@ module Timing
1238
1198
  i0 = index
1239
1199
  r1 = _nt_beginning_of
1240
1200
  if r1
1241
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1242
1201
  r0 = r1
1243
1202
  else
1244
1203
  r2 = _nt_end_of
1245
1204
  if r2
1246
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1247
1205
  r0 = r2
1248
1206
  else
1249
1207
  @index = i0
@@ -1268,18 +1226,18 @@ module Timing
1268
1226
  if node_cache[:beginning_of].has_key?(index)
1269
1227
  cached = node_cache[:beginning_of][index]
1270
1228
  if cached
1271
- node_cache[:beginning_of][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1229
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1272
1230
  @index = cached.interval.end
1273
1231
  end
1274
1232
  return cached
1275
1233
  end
1276
1234
 
1277
1235
  i0, s0 = index, []
1278
- if (match_len = has_terminal?('beginning', :insens, index))
1279
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1280
- @index += match_len
1236
+ if has_terminal?('beginning', false, index)
1237
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 9))
1238
+ @index += 9
1281
1239
  else
1282
- terminal_parse_failure('\'beginning\'')
1240
+ terminal_parse_failure('beginning')
1283
1241
  r1 = nil
1284
1242
  end
1285
1243
  s0 << r1
@@ -1296,11 +1254,11 @@ module Timing
1296
1254
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1297
1255
  s0 << r2
1298
1256
  if r2
1299
- if (match_len = has_terminal?('of', :insens, index))
1300
- r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1301
- @index += match_len
1257
+ if has_terminal?('of', false, index)
1258
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
1259
+ @index += 2
1302
1260
  else
1303
- terminal_parse_failure('\'of\'')
1261
+ terminal_parse_failure('of')
1304
1262
  r4 = nil
1305
1263
  end
1306
1264
  s0 << r4
@@ -1331,18 +1289,18 @@ module Timing
1331
1289
  if node_cache[:end_of].has_key?(index)
1332
1290
  cached = node_cache[:end_of][index]
1333
1291
  if cached
1334
- node_cache[:end_of][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1292
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1335
1293
  @index = cached.interval.end
1336
1294
  end
1337
1295
  return cached
1338
1296
  end
1339
1297
 
1340
1298
  i0, s0 = index, []
1341
- if (match_len = has_terminal?('end', :insens, index))
1342
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1343
- @index += match_len
1299
+ if has_terminal?('end', false, index)
1300
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 3))
1301
+ @index += 3
1344
1302
  else
1345
- terminal_parse_failure('\'end\'')
1303
+ terminal_parse_failure('end')
1346
1304
  r1 = nil
1347
1305
  end
1348
1306
  s0 << r1
@@ -1359,11 +1317,11 @@ module Timing
1359
1317
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1360
1318
  s0 << r2
1361
1319
  if r2
1362
- if (match_len = has_terminal?('of', :insens, index))
1363
- r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1364
- @index += match_len
1320
+ if has_terminal?('of', false, index)
1321
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
1322
+ @index += 2
1365
1323
  else
1366
- terminal_parse_failure('\'of\'')
1324
+ terminal_parse_failure('of')
1367
1325
  r4 = nil
1368
1326
  end
1369
1327
  s0 << r4
@@ -1387,7 +1345,7 @@ module Timing
1387
1345
  if node_cache[:before_from].has_key?(index)
1388
1346
  cached = node_cache[:before_from][index]
1389
1347
  if cached
1390
- node_cache[:before_from][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1348
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1391
1349
  @index = cached.interval.end
1392
1350
  end
1393
1351
  return cached
@@ -1396,12 +1354,10 @@ module Timing
1396
1354
  i0 = index
1397
1355
  r1 = _nt_before
1398
1356
  if r1
1399
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1400
1357
  r0 = r1
1401
1358
  else
1402
1359
  r2 = _nt_from
1403
1360
  if r2
1404
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1405
1361
  r0 = r2
1406
1362
  else
1407
1363
  @index = i0
@@ -1419,17 +1375,17 @@ module Timing
1419
1375
  if node_cache[:before].has_key?(index)
1420
1376
  cached = node_cache[:before][index]
1421
1377
  if cached
1422
- node_cache[:before][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1378
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1423
1379
  @index = cached.interval.end
1424
1380
  end
1425
1381
  return cached
1426
1382
  end
1427
1383
 
1428
- if (match_len = has_terminal?('before', :insens, index))
1429
- r0 = instantiate_node(BeforeFrom,input, index...(index + match_len))
1430
- @index += match_len
1384
+ if has_terminal?('before', false, index)
1385
+ r0 = instantiate_node(BeforeFrom,input, index...(index + 6))
1386
+ @index += 6
1431
1387
  else
1432
- terminal_parse_failure('\'before\'')
1388
+ terminal_parse_failure('before')
1433
1389
  r0 = nil
1434
1390
  end
1435
1391
 
@@ -1443,17 +1399,17 @@ module Timing
1443
1399
  if node_cache[:from].has_key?(index)
1444
1400
  cached = node_cache[:from][index]
1445
1401
  if cached
1446
- node_cache[:from][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1402
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1447
1403
  @index = cached.interval.end
1448
1404
  end
1449
1405
  return cached
1450
1406
  end
1451
1407
 
1452
- if (match_len = has_terminal?('from', :insens, index))
1453
- r0 = instantiate_node(BeforeFrom,input, index...(index + match_len))
1454
- @index += match_len
1408
+ if has_terminal?('from', false, index)
1409
+ r0 = instantiate_node(BeforeFrom,input, index...(index + 4))
1410
+ @index += 4
1455
1411
  else
1456
- terminal_parse_failure('\'from\'')
1412
+ terminal_parse_failure('from')
1457
1413
  r0 = nil
1458
1414
  end
1459
1415
 
@@ -1467,7 +1423,7 @@ module Timing
1467
1423
  if node_cache[:interval].has_key?(index)
1468
1424
  cached = node_cache[:interval][index]
1469
1425
  if cached
1470
- node_cache[:interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1426
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1471
1427
  @index = cached.interval.end
1472
1428
  end
1473
1429
  return cached
@@ -1476,37 +1432,30 @@ module Timing
1476
1432
  i0 = index
1477
1433
  r1 = _nt_second_interval
1478
1434
  if r1
1479
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1480
1435
  r0 = r1
1481
1436
  else
1482
1437
  r2 = _nt_minute_interval
1483
1438
  if r2
1484
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1485
1439
  r0 = r2
1486
1440
  else
1487
1441
  r3 = _nt_hour_interval
1488
1442
  if r3
1489
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
1490
1443
  r0 = r3
1491
1444
  else
1492
1445
  r4 = _nt_day_interval
1493
1446
  if r4
1494
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
1495
1447
  r0 = r4
1496
1448
  else
1497
1449
  r5 = _nt_week_interval
1498
1450
  if r5
1499
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
1500
1451
  r0 = r5
1501
1452
  else
1502
1453
  r6 = _nt_month_interval
1503
1454
  if r6
1504
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
1505
1455
  r0 = r6
1506
1456
  else
1507
1457
  r7 = _nt_year_interval
1508
1458
  if r7
1509
- r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
1510
1459
  r0 = r7
1511
1460
  else
1512
1461
  @index = i0
@@ -1532,27 +1481,27 @@ module Timing
1532
1481
  if node_cache[:second_interval].has_key?(index)
1533
1482
  cached = node_cache[:second_interval][index]
1534
1483
  if cached
1535
- node_cache[:second_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1484
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1536
1485
  @index = cached.interval.end
1537
1486
  end
1538
1487
  return cached
1539
1488
  end
1540
1489
 
1541
1490
  i0, s0 = index, []
1542
- if (match_len = has_terminal?('second', :insens, index))
1543
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1544
- @index += match_len
1491
+ if has_terminal?('second', false, index)
1492
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 6))
1493
+ @index += 6
1545
1494
  else
1546
- terminal_parse_failure('\'second\'')
1495
+ terminal_parse_failure('second')
1547
1496
  r1 = nil
1548
1497
  end
1549
1498
  s0 << r1
1550
1499
  if r1
1551
- if (match_len = has_terminal?('s', :insens, index))
1552
- r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1553
- @index += match_len
1500
+ if has_terminal?('s', false, index)
1501
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1502
+ @index += 1
1554
1503
  else
1555
- terminal_parse_failure('\'s\'')
1504
+ terminal_parse_failure('s')
1556
1505
  r3 = nil
1557
1506
  end
1558
1507
  if r3
@@ -1583,27 +1532,27 @@ module Timing
1583
1532
  if node_cache[:minute_interval].has_key?(index)
1584
1533
  cached = node_cache[:minute_interval][index]
1585
1534
  if cached
1586
- node_cache[:minute_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1535
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1587
1536
  @index = cached.interval.end
1588
1537
  end
1589
1538
  return cached
1590
1539
  end
1591
1540
 
1592
1541
  i0, s0 = index, []
1593
- if (match_len = has_terminal?('minute', :insens, index))
1594
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1595
- @index += match_len
1542
+ if has_terminal?('minute', false, index)
1543
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 6))
1544
+ @index += 6
1596
1545
  else
1597
- terminal_parse_failure('\'minute\'')
1546
+ terminal_parse_failure('minute')
1598
1547
  r1 = nil
1599
1548
  end
1600
1549
  s0 << r1
1601
1550
  if r1
1602
- if (match_len = has_terminal?('s', :insens, index))
1603
- r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1604
- @index += match_len
1551
+ if has_terminal?('s', false, index)
1552
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1553
+ @index += 1
1605
1554
  else
1606
- terminal_parse_failure('\'s\'')
1555
+ terminal_parse_failure('s')
1607
1556
  r3 = nil
1608
1557
  end
1609
1558
  if r3
@@ -1634,27 +1583,27 @@ module Timing
1634
1583
  if node_cache[:hour_interval].has_key?(index)
1635
1584
  cached = node_cache[:hour_interval][index]
1636
1585
  if cached
1637
- node_cache[:hour_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1586
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1638
1587
  @index = cached.interval.end
1639
1588
  end
1640
1589
  return cached
1641
1590
  end
1642
1591
 
1643
1592
  i0, s0 = index, []
1644
- if (match_len = has_terminal?('hour', :insens, index))
1645
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1646
- @index += match_len
1593
+ if has_terminal?('hour', false, index)
1594
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
1595
+ @index += 4
1647
1596
  else
1648
- terminal_parse_failure('\'hour\'')
1597
+ terminal_parse_failure('hour')
1649
1598
  r1 = nil
1650
1599
  end
1651
1600
  s0 << r1
1652
1601
  if r1
1653
- if (match_len = has_terminal?('s', :insens, index))
1654
- r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1655
- @index += match_len
1602
+ if has_terminal?('s', false, index)
1603
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1604
+ @index += 1
1656
1605
  else
1657
- terminal_parse_failure('\'s\'')
1606
+ terminal_parse_failure('s')
1658
1607
  r3 = nil
1659
1608
  end
1660
1609
  if r3
@@ -1685,27 +1634,27 @@ module Timing
1685
1634
  if node_cache[:day_interval].has_key?(index)
1686
1635
  cached = node_cache[:day_interval][index]
1687
1636
  if cached
1688
- node_cache[:day_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1637
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1689
1638
  @index = cached.interval.end
1690
1639
  end
1691
1640
  return cached
1692
1641
  end
1693
1642
 
1694
1643
  i0, s0 = index, []
1695
- if (match_len = has_terminal?('day', :insens, index))
1696
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1697
- @index += match_len
1644
+ if has_terminal?('day', false, index)
1645
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 3))
1646
+ @index += 3
1698
1647
  else
1699
- terminal_parse_failure('\'day\'')
1648
+ terminal_parse_failure('day')
1700
1649
  r1 = nil
1701
1650
  end
1702
1651
  s0 << r1
1703
1652
  if r1
1704
- if (match_len = has_terminal?('s', :insens, index))
1705
- r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1706
- @index += match_len
1653
+ if has_terminal?('s', false, index)
1654
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1655
+ @index += 1
1707
1656
  else
1708
- terminal_parse_failure('\'s\'')
1657
+ terminal_parse_failure('s')
1709
1658
  r3 = nil
1710
1659
  end
1711
1660
  if r3
@@ -1736,27 +1685,27 @@ module Timing
1736
1685
  if node_cache[:week_interval].has_key?(index)
1737
1686
  cached = node_cache[:week_interval][index]
1738
1687
  if cached
1739
- node_cache[:week_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1688
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1740
1689
  @index = cached.interval.end
1741
1690
  end
1742
1691
  return cached
1743
1692
  end
1744
1693
 
1745
1694
  i0, s0 = index, []
1746
- if (match_len = has_terminal?('week', :insens, index))
1747
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1748
- @index += match_len
1695
+ if has_terminal?('week', false, index)
1696
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
1697
+ @index += 4
1749
1698
  else
1750
- terminal_parse_failure('\'week\'')
1699
+ terminal_parse_failure('week')
1751
1700
  r1 = nil
1752
1701
  end
1753
1702
  s0 << r1
1754
1703
  if r1
1755
- if (match_len = has_terminal?('s', :insens, index))
1756
- r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1757
- @index += match_len
1704
+ if has_terminal?('s', false, index)
1705
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1706
+ @index += 1
1758
1707
  else
1759
- terminal_parse_failure('\'s\'')
1708
+ terminal_parse_failure('s')
1760
1709
  r3 = nil
1761
1710
  end
1762
1711
  if r3
@@ -1787,27 +1736,27 @@ module Timing
1787
1736
  if node_cache[:month_interval].has_key?(index)
1788
1737
  cached = node_cache[:month_interval][index]
1789
1738
  if cached
1790
- node_cache[:month_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1739
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1791
1740
  @index = cached.interval.end
1792
1741
  end
1793
1742
  return cached
1794
1743
  end
1795
1744
 
1796
1745
  i0, s0 = index, []
1797
- if (match_len = has_terminal?('month', :insens, index))
1798
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1799
- @index += match_len
1746
+ if has_terminal?('month', false, index)
1747
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 5))
1748
+ @index += 5
1800
1749
  else
1801
- terminal_parse_failure('\'month\'')
1750
+ terminal_parse_failure('month')
1802
1751
  r1 = nil
1803
1752
  end
1804
1753
  s0 << r1
1805
1754
  if r1
1806
- if (match_len = has_terminal?('s', :insens, index))
1807
- r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1808
- @index += match_len
1755
+ if has_terminal?('s', false, index)
1756
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1757
+ @index += 1
1809
1758
  else
1810
- terminal_parse_failure('\'s\'')
1759
+ terminal_parse_failure('s')
1811
1760
  r3 = nil
1812
1761
  end
1813
1762
  if r3
@@ -1838,27 +1787,27 @@ module Timing
1838
1787
  if node_cache[:year_interval].has_key?(index)
1839
1788
  cached = node_cache[:year_interval][index]
1840
1789
  if cached
1841
- node_cache[:year_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1790
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1842
1791
  @index = cached.interval.end
1843
1792
  end
1844
1793
  return cached
1845
1794
  end
1846
1795
 
1847
1796
  i0, s0 = index, []
1848
- if (match_len = has_terminal?('year', :insens, index))
1849
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1850
- @index += match_len
1797
+ if has_terminal?('year', false, index)
1798
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
1799
+ @index += 4
1851
1800
  else
1852
- terminal_parse_failure('\'year\'')
1801
+ terminal_parse_failure('year')
1853
1802
  r1 = nil
1854
1803
  end
1855
1804
  s0 << r1
1856
1805
  if r1
1857
- if (match_len = has_terminal?('s', :insens, index))
1858
- r3 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1859
- @index += match_len
1806
+ if has_terminal?('s', false, index)
1807
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1808
+ @index += 1
1860
1809
  else
1861
- terminal_parse_failure('\'s\'')
1810
+ terminal_parse_failure('s')
1862
1811
  r3 = nil
1863
1812
  end
1864
1813
  if r3
@@ -1886,7 +1835,7 @@ module Timing
1886
1835
  if node_cache[:day_name].has_key?(index)
1887
1836
  cached = node_cache[:day_name][index]
1888
1837
  if cached
1889
- node_cache[:day_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1838
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1890
1839
  @index = cached.interval.end
1891
1840
  end
1892
1841
  return cached
@@ -1895,12 +1844,10 @@ module Timing
1895
1844
  i0 = index
1896
1845
  r1 = _nt_long_day_name
1897
1846
  if r1
1898
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1899
1847
  r0 = r1
1900
1848
  else
1901
1849
  r2 = _nt_short_day_name
1902
1850
  if r2
1903
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1904
1851
  r0 = r2
1905
1852
  else
1906
1853
  @index = i0
@@ -1918,88 +1865,81 @@ module Timing
1918
1865
  if node_cache[:long_day_name].has_key?(index)
1919
1866
  cached = node_cache[:long_day_name][index]
1920
1867
  if cached
1921
- node_cache[:long_day_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1868
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1922
1869
  @index = cached.interval.end
1923
1870
  end
1924
1871
  return cached
1925
1872
  end
1926
1873
 
1927
1874
  i0 = index
1928
- if (match_len = has_terminal?('sunday', :insens, index))
1929
- r1 = instantiate_node(DayName,input, index...(index + match_len))
1930
- @index += match_len
1875
+ if has_terminal?('sunday', false, index)
1876
+ r1 = instantiate_node(DayName,input, index...(index + 6))
1877
+ @index += 6
1931
1878
  else
1932
- terminal_parse_failure('\'sunday\'')
1879
+ terminal_parse_failure('sunday')
1933
1880
  r1 = nil
1934
1881
  end
1935
1882
  if r1
1936
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1937
1883
  r0 = r1
1938
1884
  else
1939
- if (match_len = has_terminal?('monday', :insens, index))
1940
- r2 = instantiate_node(DayName,input, index...(index + match_len))
1941
- @index += match_len
1885
+ if has_terminal?('monday', false, index)
1886
+ r2 = instantiate_node(DayName,input, index...(index + 6))
1887
+ @index += 6
1942
1888
  else
1943
- terminal_parse_failure('\'monday\'')
1889
+ terminal_parse_failure('monday')
1944
1890
  r2 = nil
1945
1891
  end
1946
1892
  if r2
1947
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1948
1893
  r0 = r2
1949
1894
  else
1950
- if (match_len = has_terminal?('tuesday', :insens, index))
1951
- r3 = instantiate_node(DayName,input, index...(index + match_len))
1952
- @index += match_len
1895
+ if has_terminal?('tuesday', false, index)
1896
+ r3 = instantiate_node(DayName,input, index...(index + 7))
1897
+ @index += 7
1953
1898
  else
1954
- terminal_parse_failure('\'tuesday\'')
1899
+ terminal_parse_failure('tuesday')
1955
1900
  r3 = nil
1956
1901
  end
1957
1902
  if r3
1958
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
1959
1903
  r0 = r3
1960
1904
  else
1961
- if (match_len = has_terminal?('wednesday', :insens, index))
1962
- r4 = instantiate_node(DayName,input, index...(index + match_len))
1963
- @index += match_len
1905
+ if has_terminal?('wednesday', false, index)
1906
+ r4 = instantiate_node(DayName,input, index...(index + 9))
1907
+ @index += 9
1964
1908
  else
1965
- terminal_parse_failure('\'wednesday\'')
1909
+ terminal_parse_failure('wednesday')
1966
1910
  r4 = nil
1967
1911
  end
1968
1912
  if r4
1969
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
1970
1913
  r0 = r4
1971
1914
  else
1972
- if (match_len = has_terminal?('thursday', :insens, index))
1973
- r5 = instantiate_node(DayName,input, index...(index + match_len))
1974
- @index += match_len
1915
+ if has_terminal?('thursday', false, index)
1916
+ r5 = instantiate_node(DayName,input, index...(index + 8))
1917
+ @index += 8
1975
1918
  else
1976
- terminal_parse_failure('\'thursday\'')
1919
+ terminal_parse_failure('thursday')
1977
1920
  r5 = nil
1978
1921
  end
1979
1922
  if r5
1980
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
1981
1923
  r0 = r5
1982
1924
  else
1983
- if (match_len = has_terminal?('friday', :insens, index))
1984
- r6 = instantiate_node(DayName,input, index...(index + match_len))
1985
- @index += match_len
1925
+ if has_terminal?('friday', false, index)
1926
+ r6 = instantiate_node(DayName,input, index...(index + 6))
1927
+ @index += 6
1986
1928
  else
1987
- terminal_parse_failure('\'friday\'')
1929
+ terminal_parse_failure('friday')
1988
1930
  r6 = nil
1989
1931
  end
1990
1932
  if r6
1991
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
1992
1933
  r0 = r6
1993
1934
  else
1994
- if (match_len = has_terminal?('saturday', :insens, index))
1995
- r7 = instantiate_node(DayName,input, index...(index + match_len))
1996
- @index += match_len
1935
+ if has_terminal?('saturday', false, index)
1936
+ r7 = instantiate_node(DayName,input, index...(index + 8))
1937
+ @index += 8
1997
1938
  else
1998
- terminal_parse_failure('\'saturday\'')
1939
+ terminal_parse_failure('saturday')
1999
1940
  r7 = nil
2000
1941
  end
2001
1942
  if r7
2002
- r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
2003
1943
  r0 = r7
2004
1944
  else
2005
1945
  @index = i0
@@ -2022,88 +1962,81 @@ module Timing
2022
1962
  if node_cache[:short_day_name].has_key?(index)
2023
1963
  cached = node_cache[:short_day_name][index]
2024
1964
  if cached
2025
- node_cache[:short_day_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1965
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2026
1966
  @index = cached.interval.end
2027
1967
  end
2028
1968
  return cached
2029
1969
  end
2030
1970
 
2031
1971
  i0 = index
2032
- if (match_len = has_terminal?('sun', :insens, index))
2033
- r1 = instantiate_node(DayName,input, index...(index + match_len))
2034
- @index += match_len
1972
+ if has_terminal?('sun', false, index)
1973
+ r1 = instantiate_node(DayName,input, index...(index + 3))
1974
+ @index += 3
2035
1975
  else
2036
- terminal_parse_failure('\'sun\'')
1976
+ terminal_parse_failure('sun')
2037
1977
  r1 = nil
2038
1978
  end
2039
1979
  if r1
2040
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2041
1980
  r0 = r1
2042
1981
  else
2043
- if (match_len = has_terminal?('mon', :insens, index))
2044
- r2 = instantiate_node(DayName,input, index...(index + match_len))
2045
- @index += match_len
1982
+ if has_terminal?('mon', false, index)
1983
+ r2 = instantiate_node(DayName,input, index...(index + 3))
1984
+ @index += 3
2046
1985
  else
2047
- terminal_parse_failure('\'mon\'')
1986
+ terminal_parse_failure('mon')
2048
1987
  r2 = nil
2049
1988
  end
2050
1989
  if r2
2051
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2052
1990
  r0 = r2
2053
1991
  else
2054
- if (match_len = has_terminal?('tue', :insens, index))
2055
- r3 = instantiate_node(DayName,input, index...(index + match_len))
2056
- @index += match_len
1992
+ if has_terminal?('tue', false, index)
1993
+ r3 = instantiate_node(DayName,input, index...(index + 3))
1994
+ @index += 3
2057
1995
  else
2058
- terminal_parse_failure('\'tue\'')
1996
+ terminal_parse_failure('tue')
2059
1997
  r3 = nil
2060
1998
  end
2061
1999
  if r3
2062
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
2063
2000
  r0 = r3
2064
2001
  else
2065
- if (match_len = has_terminal?('wed', :insens, index))
2066
- r4 = instantiate_node(DayName,input, index...(index + match_len))
2067
- @index += match_len
2002
+ if has_terminal?('wed', false, index)
2003
+ r4 = instantiate_node(DayName,input, index...(index + 3))
2004
+ @index += 3
2068
2005
  else
2069
- terminal_parse_failure('\'wed\'')
2006
+ terminal_parse_failure('wed')
2070
2007
  r4 = nil
2071
2008
  end
2072
2009
  if r4
2073
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
2074
2010
  r0 = r4
2075
2011
  else
2076
- if (match_len = has_terminal?('thu', :insens, index))
2077
- r5 = instantiate_node(DayName,input, index...(index + match_len))
2078
- @index += match_len
2012
+ if has_terminal?('thu', false, index)
2013
+ r5 = instantiate_node(DayName,input, index...(index + 3))
2014
+ @index += 3
2079
2015
  else
2080
- terminal_parse_failure('\'thu\'')
2016
+ terminal_parse_failure('thu')
2081
2017
  r5 = nil
2082
2018
  end
2083
2019
  if r5
2084
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
2085
2020
  r0 = r5
2086
2021
  else
2087
- if (match_len = has_terminal?('fri', :insens, index))
2088
- r6 = instantiate_node(DayName,input, index...(index + match_len))
2089
- @index += match_len
2022
+ if has_terminal?('fri', false, index)
2023
+ r6 = instantiate_node(DayName,input, index...(index + 3))
2024
+ @index += 3
2090
2025
  else
2091
- terminal_parse_failure('\'fri\'')
2026
+ terminal_parse_failure('fri')
2092
2027
  r6 = nil
2093
2028
  end
2094
2029
  if r6
2095
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
2096
2030
  r0 = r6
2097
2031
  else
2098
- if (match_len = has_terminal?('sat', :insens, index))
2099
- r7 = instantiate_node(DayName,input, index...(index + match_len))
2100
- @index += match_len
2032
+ if has_terminal?('sat', false, index)
2033
+ r7 = instantiate_node(DayName,input, index...(index + 3))
2034
+ @index += 3
2101
2035
  else
2102
- terminal_parse_failure('\'sat\'')
2036
+ terminal_parse_failure('sat')
2103
2037
  r7 = nil
2104
2038
  end
2105
2039
  if r7
2106
- r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
2107
2040
  r0 = r7
2108
2041
  else
2109
2042
  @index = i0
@@ -2126,7 +2059,7 @@ module Timing
2126
2059
  if node_cache[:month_name].has_key?(index)
2127
2060
  cached = node_cache[:month_name][index]
2128
2061
  if cached
2129
- node_cache[:month_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2062
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2130
2063
  @index = cached.interval.end
2131
2064
  end
2132
2065
  return cached
@@ -2135,12 +2068,10 @@ module Timing
2135
2068
  i0 = index
2136
2069
  r1 = _nt_long_month_name
2137
2070
  if r1
2138
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2139
2071
  r0 = r1
2140
2072
  else
2141
2073
  r2 = _nt_short_month_name
2142
2074
  if r2
2143
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2144
2075
  r0 = r2
2145
2076
  else
2146
2077
  @index = i0
@@ -2158,143 +2089,131 @@ module Timing
2158
2089
  if node_cache[:long_month_name].has_key?(index)
2159
2090
  cached = node_cache[:long_month_name][index]
2160
2091
  if cached
2161
- node_cache[:long_month_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2092
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2162
2093
  @index = cached.interval.end
2163
2094
  end
2164
2095
  return cached
2165
2096
  end
2166
2097
 
2167
2098
  i0 = index
2168
- if (match_len = has_terminal?('january', :insens, index))
2169
- r1 = instantiate_node(MonthName,input, index...(index + match_len))
2170
- @index += match_len
2099
+ if has_terminal?('january', false, index)
2100
+ r1 = instantiate_node(MonthName,input, index...(index + 7))
2101
+ @index += 7
2171
2102
  else
2172
- terminal_parse_failure('\'january\'')
2103
+ terminal_parse_failure('january')
2173
2104
  r1 = nil
2174
2105
  end
2175
2106
  if r1
2176
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2177
2107
  r0 = r1
2178
2108
  else
2179
- if (match_len = has_terminal?('february', :insens, index))
2180
- r2 = instantiate_node(MonthName,input, index...(index + match_len))
2181
- @index += match_len
2109
+ if has_terminal?('february', false, index)
2110
+ r2 = instantiate_node(MonthName,input, index...(index + 8))
2111
+ @index += 8
2182
2112
  else
2183
- terminal_parse_failure('\'february\'')
2113
+ terminal_parse_failure('february')
2184
2114
  r2 = nil
2185
2115
  end
2186
2116
  if r2
2187
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2188
2117
  r0 = r2
2189
2118
  else
2190
- if (match_len = has_terminal?('march', :insens, index))
2191
- r3 = instantiate_node(MonthName,input, index...(index + match_len))
2192
- @index += match_len
2119
+ if has_terminal?('march', false, index)
2120
+ r3 = instantiate_node(MonthName,input, index...(index + 5))
2121
+ @index += 5
2193
2122
  else
2194
- terminal_parse_failure('\'march\'')
2123
+ terminal_parse_failure('march')
2195
2124
  r3 = nil
2196
2125
  end
2197
2126
  if r3
2198
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
2199
2127
  r0 = r3
2200
2128
  else
2201
- if (match_len = has_terminal?('april', :insens, index))
2202
- r4 = instantiate_node(MonthName,input, index...(index + match_len))
2203
- @index += match_len
2129
+ if has_terminal?('april', false, index)
2130
+ r4 = instantiate_node(MonthName,input, index...(index + 5))
2131
+ @index += 5
2204
2132
  else
2205
- terminal_parse_failure('\'april\'')
2133
+ terminal_parse_failure('april')
2206
2134
  r4 = nil
2207
2135
  end
2208
2136
  if r4
2209
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
2210
2137
  r0 = r4
2211
2138
  else
2212
- if (match_len = has_terminal?('may', :insens, index))
2213
- r5 = instantiate_node(MonthName,input, index...(index + match_len))
2214
- @index += match_len
2139
+ if has_terminal?('may', false, index)
2140
+ r5 = instantiate_node(MonthName,input, index...(index + 3))
2141
+ @index += 3
2215
2142
  else
2216
- terminal_parse_failure('\'may\'')
2143
+ terminal_parse_failure('may')
2217
2144
  r5 = nil
2218
2145
  end
2219
2146
  if r5
2220
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
2221
2147
  r0 = r5
2222
2148
  else
2223
- if (match_len = has_terminal?('june', :insens, index))
2224
- r6 = instantiate_node(MonthName,input, index...(index + match_len))
2225
- @index += match_len
2149
+ if has_terminal?('june', false, index)
2150
+ r6 = instantiate_node(MonthName,input, index...(index + 4))
2151
+ @index += 4
2226
2152
  else
2227
- terminal_parse_failure('\'june\'')
2153
+ terminal_parse_failure('june')
2228
2154
  r6 = nil
2229
2155
  end
2230
2156
  if r6
2231
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
2232
2157
  r0 = r6
2233
2158
  else
2234
- if (match_len = has_terminal?('july', :insens, index))
2235
- r7 = instantiate_node(MonthName,input, index...(index + match_len))
2236
- @index += match_len
2159
+ if has_terminal?('july', false, index)
2160
+ r7 = instantiate_node(MonthName,input, index...(index + 4))
2161
+ @index += 4
2237
2162
  else
2238
- terminal_parse_failure('\'july\'')
2163
+ terminal_parse_failure('july')
2239
2164
  r7 = nil
2240
2165
  end
2241
2166
  if r7
2242
- r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
2243
2167
  r0 = r7
2244
2168
  else
2245
- if (match_len = has_terminal?('august', :insens, index))
2246
- r8 = instantiate_node(MonthName,input, index...(index + match_len))
2247
- @index += match_len
2169
+ if has_terminal?('august', false, index)
2170
+ r8 = instantiate_node(MonthName,input, index...(index + 6))
2171
+ @index += 6
2248
2172
  else
2249
- terminal_parse_failure('\'august\'')
2173
+ terminal_parse_failure('august')
2250
2174
  r8 = nil
2251
2175
  end
2252
2176
  if r8
2253
- r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
2254
2177
  r0 = r8
2255
2178
  else
2256
- if (match_len = has_terminal?('september', :insens, index))
2257
- r9 = instantiate_node(MonthName,input, index...(index + match_len))
2258
- @index += match_len
2179
+ if has_terminal?('september', false, index)
2180
+ r9 = instantiate_node(MonthName,input, index...(index + 9))
2181
+ @index += 9
2259
2182
  else
2260
- terminal_parse_failure('\'september\'')
2183
+ terminal_parse_failure('september')
2261
2184
  r9 = nil
2262
2185
  end
2263
2186
  if r9
2264
- r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
2265
2187
  r0 = r9
2266
2188
  else
2267
- if (match_len = has_terminal?('october', :insens, index))
2268
- r10 = instantiate_node(MonthName,input, index...(index + match_len))
2269
- @index += match_len
2189
+ if has_terminal?('october', false, index)
2190
+ r10 = instantiate_node(MonthName,input, index...(index + 7))
2191
+ @index += 7
2270
2192
  else
2271
- terminal_parse_failure('\'october\'')
2193
+ terminal_parse_failure('october')
2272
2194
  r10 = nil
2273
2195
  end
2274
2196
  if r10
2275
- r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
2276
2197
  r0 = r10
2277
2198
  else
2278
- if (match_len = has_terminal?('november', :insens, index))
2279
- r11 = instantiate_node(MonthName,input, index...(index + match_len))
2280
- @index += match_len
2199
+ if has_terminal?('november', false, index)
2200
+ r11 = instantiate_node(MonthName,input, index...(index + 8))
2201
+ @index += 8
2281
2202
  else
2282
- terminal_parse_failure('\'november\'')
2203
+ terminal_parse_failure('november')
2283
2204
  r11 = nil
2284
2205
  end
2285
2206
  if r11
2286
- r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
2287
2207
  r0 = r11
2288
2208
  else
2289
- if (match_len = has_terminal?('december', :insens, index))
2290
- r12 = instantiate_node(MonthName,input, index...(index + match_len))
2291
- @index += match_len
2209
+ if has_terminal?('december', false, index)
2210
+ r12 = instantiate_node(MonthName,input, index...(index + 8))
2211
+ @index += 8
2292
2212
  else
2293
- terminal_parse_failure('\'december\'')
2213
+ terminal_parse_failure('december')
2294
2214
  r12 = nil
2295
2215
  end
2296
2216
  if r12
2297
- r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
2298
2217
  r0 = r12
2299
2218
  else
2300
2219
  @index = i0
@@ -2322,143 +2241,131 @@ module Timing
2322
2241
  if node_cache[:short_month_name].has_key?(index)
2323
2242
  cached = node_cache[:short_month_name][index]
2324
2243
  if cached
2325
- node_cache[:short_month_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2244
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2326
2245
  @index = cached.interval.end
2327
2246
  end
2328
2247
  return cached
2329
2248
  end
2330
2249
 
2331
2250
  i0 = index
2332
- if (match_len = has_terminal?('jan', :insens, index))
2333
- r1 = instantiate_node(MonthName,input, index...(index + match_len))
2334
- @index += match_len
2251
+ if has_terminal?('jan', false, index)
2252
+ r1 = instantiate_node(MonthName,input, index...(index + 3))
2253
+ @index += 3
2335
2254
  else
2336
- terminal_parse_failure('\'jan\'')
2255
+ terminal_parse_failure('jan')
2337
2256
  r1 = nil
2338
2257
  end
2339
2258
  if r1
2340
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2341
2259
  r0 = r1
2342
2260
  else
2343
- if (match_len = has_terminal?('feb', :insens, index))
2344
- r2 = instantiate_node(MonthName,input, index...(index + match_len))
2345
- @index += match_len
2261
+ if has_terminal?('feb', false, index)
2262
+ r2 = instantiate_node(MonthName,input, index...(index + 3))
2263
+ @index += 3
2346
2264
  else
2347
- terminal_parse_failure('\'feb\'')
2265
+ terminal_parse_failure('feb')
2348
2266
  r2 = nil
2349
2267
  end
2350
2268
  if r2
2351
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2352
2269
  r0 = r2
2353
2270
  else
2354
- if (match_len = has_terminal?('mar', :insens, index))
2355
- r3 = instantiate_node(MonthName,input, index...(index + match_len))
2356
- @index += match_len
2271
+ if has_terminal?('mar', false, index)
2272
+ r3 = instantiate_node(MonthName,input, index...(index + 3))
2273
+ @index += 3
2357
2274
  else
2358
- terminal_parse_failure('\'mar\'')
2275
+ terminal_parse_failure('mar')
2359
2276
  r3 = nil
2360
2277
  end
2361
2278
  if r3
2362
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
2363
2279
  r0 = r3
2364
2280
  else
2365
- if (match_len = has_terminal?('apr', :insens, index))
2366
- r4 = instantiate_node(MonthName,input, index...(index + match_len))
2367
- @index += match_len
2281
+ if has_terminal?('apr', false, index)
2282
+ r4 = instantiate_node(MonthName,input, index...(index + 3))
2283
+ @index += 3
2368
2284
  else
2369
- terminal_parse_failure('\'apr\'')
2285
+ terminal_parse_failure('apr')
2370
2286
  r4 = nil
2371
2287
  end
2372
2288
  if r4
2373
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
2374
2289
  r0 = r4
2375
2290
  else
2376
- if (match_len = has_terminal?('may', :insens, index))
2377
- r5 = instantiate_node(MonthName,input, index...(index + match_len))
2378
- @index += match_len
2291
+ if has_terminal?('may', false, index)
2292
+ r5 = instantiate_node(MonthName,input, index...(index + 3))
2293
+ @index += 3
2379
2294
  else
2380
- terminal_parse_failure('\'may\'')
2295
+ terminal_parse_failure('may')
2381
2296
  r5 = nil
2382
2297
  end
2383
2298
  if r5
2384
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
2385
2299
  r0 = r5
2386
2300
  else
2387
- if (match_len = has_terminal?('jun', :insens, index))
2388
- r6 = instantiate_node(MonthName,input, index...(index + match_len))
2389
- @index += match_len
2301
+ if has_terminal?('jun', false, index)
2302
+ r6 = instantiate_node(MonthName,input, index...(index + 3))
2303
+ @index += 3
2390
2304
  else
2391
- terminal_parse_failure('\'jun\'')
2305
+ terminal_parse_failure('jun')
2392
2306
  r6 = nil
2393
2307
  end
2394
2308
  if r6
2395
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
2396
2309
  r0 = r6
2397
2310
  else
2398
- if (match_len = has_terminal?('jul', :insens, index))
2399
- r7 = instantiate_node(MonthName,input, index...(index + match_len))
2400
- @index += match_len
2311
+ if has_terminal?('jul', false, index)
2312
+ r7 = instantiate_node(MonthName,input, index...(index + 3))
2313
+ @index += 3
2401
2314
  else
2402
- terminal_parse_failure('\'jul\'')
2315
+ terminal_parse_failure('jul')
2403
2316
  r7 = nil
2404
2317
  end
2405
2318
  if r7
2406
- r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
2407
2319
  r0 = r7
2408
2320
  else
2409
- if (match_len = has_terminal?('aug', :insens, index))
2410
- r8 = instantiate_node(MonthName,input, index...(index + match_len))
2411
- @index += match_len
2321
+ if has_terminal?('aug', false, index)
2322
+ r8 = instantiate_node(MonthName,input, index...(index + 3))
2323
+ @index += 3
2412
2324
  else
2413
- terminal_parse_failure('\'aug\'')
2325
+ terminal_parse_failure('aug')
2414
2326
  r8 = nil
2415
2327
  end
2416
2328
  if r8
2417
- r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
2418
2329
  r0 = r8
2419
2330
  else
2420
- if (match_len = has_terminal?('sep', :insens, index))
2421
- r9 = instantiate_node(MonthName,input, index...(index + match_len))
2422
- @index += match_len
2331
+ if has_terminal?('sep', false, index)
2332
+ r9 = instantiate_node(MonthName,input, index...(index + 3))
2333
+ @index += 3
2423
2334
  else
2424
- terminal_parse_failure('\'sep\'')
2335
+ terminal_parse_failure('sep')
2425
2336
  r9 = nil
2426
2337
  end
2427
2338
  if r9
2428
- r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
2429
2339
  r0 = r9
2430
2340
  else
2431
- if (match_len = has_terminal?('oct', :insens, index))
2432
- r10 = instantiate_node(MonthName,input, index...(index + match_len))
2433
- @index += match_len
2341
+ if has_terminal?('oct', false, index)
2342
+ r10 = instantiate_node(MonthName,input, index...(index + 3))
2343
+ @index += 3
2434
2344
  else
2435
- terminal_parse_failure('\'oct\'')
2345
+ terminal_parse_failure('oct')
2436
2346
  r10 = nil
2437
2347
  end
2438
2348
  if r10
2439
- r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
2440
2349
  r0 = r10
2441
2350
  else
2442
- if (match_len = has_terminal?('nov', :insens, index))
2443
- r11 = instantiate_node(MonthName,input, index...(index + match_len))
2444
- @index += match_len
2351
+ if has_terminal?('nov', false, index)
2352
+ r11 = instantiate_node(MonthName,input, index...(index + 3))
2353
+ @index += 3
2445
2354
  else
2446
- terminal_parse_failure('\'nov\'')
2355
+ terminal_parse_failure('nov')
2447
2356
  r11 = nil
2448
2357
  end
2449
2358
  if r11
2450
- r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
2451
2359
  r0 = r11
2452
2360
  else
2453
- if (match_len = has_terminal?('dec', :insens, index))
2454
- r12 = instantiate_node(MonthName,input, index...(index + match_len))
2455
- @index += match_len
2361
+ if has_terminal?('dec', false, index)
2362
+ r12 = instantiate_node(MonthName,input, index...(index + 3))
2363
+ @index += 3
2456
2364
  else
2457
- terminal_parse_failure('\'dec\'')
2365
+ terminal_parse_failure('dec')
2458
2366
  r12 = nil
2459
2367
  end
2460
2368
  if r12
2461
- r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
2462
2369
  r0 = r12
2463
2370
  else
2464
2371
  @index = i0
@@ -2489,29 +2396,27 @@ module Timing
2489
2396
  if node_cache[:zone_offset].has_key?(index)
2490
2397
  cached = node_cache[:zone_offset][index]
2491
2398
  if cached
2492
- node_cache[:zone_offset][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2399
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2493
2400
  @index = cached.interval.end
2494
2401
  end
2495
2402
  return cached
2496
2403
  end
2497
2404
 
2498
2405
  i0, s0 = index, []
2499
- if has_terminal?(@regexps[gr = '\A[+-]'] ||= Regexp.new(gr), :regexp, index)
2406
+ if has_terminal?('\G[+-]', true, index)
2500
2407
  r1 = true
2501
2408
  @index += 1
2502
2409
  else
2503
- terminal_parse_failure('[+-]')
2504
2410
  r1 = nil
2505
2411
  end
2506
2412
  s0 << r1
2507
2413
  if r1
2508
2414
  s2, i2 = [], index
2509
2415
  loop do
2510
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
2416
+ if has_terminal?('\G[\\d]', true, index)
2511
2417
  r3 = true
2512
2418
  @index += 1
2513
2419
  else
2514
- terminal_parse_failure('[\\d]')
2515
2420
  r3 = nil
2516
2421
  end
2517
2422
  if r3
@@ -2527,18 +2432,15 @@ module Timing
2527
2432
  @index = i2
2528
2433
  r2 = nil
2529
2434
  else
2530
- if s2.size < 2
2531
- terminal_failures.pop
2532
- end
2533
2435
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2534
2436
  end
2535
2437
  s0 << r2
2536
2438
  if r2
2537
- if (match_len = has_terminal?(':', false, index))
2538
- r5 = true
2539
- @index += match_len
2439
+ if has_terminal?(':', false, index)
2440
+ r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
2441
+ @index += 1
2540
2442
  else
2541
- terminal_parse_failure('\':\'')
2443
+ terminal_parse_failure(':')
2542
2444
  r5 = nil
2543
2445
  end
2544
2446
  if r5
@@ -2550,11 +2452,10 @@ module Timing
2550
2452
  if r4
2551
2453
  s6, i6 = [], index
2552
2454
  loop do
2553
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
2455
+ if has_terminal?('\G[\\d]', true, index)
2554
2456
  r7 = true
2555
2457
  @index += 1
2556
2458
  else
2557
- terminal_parse_failure('[\\d]')
2558
2459
  r7 = nil
2559
2460
  end
2560
2461
  if r7
@@ -2570,9 +2471,6 @@ module Timing
2570
2471
  @index = i6
2571
2472
  r6 = nil
2572
2473
  else
2573
- if s6.size < 2
2574
- terminal_failures.pop
2575
- end
2576
2474
  r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
2577
2475
  end
2578
2476
  s0 << r6
@@ -2603,7 +2501,7 @@ module Timing
2603
2501
  if node_cache[:hour_minute_second].has_key?(index)
2604
2502
  cached = node_cache[:hour_minute_second][index]
2605
2503
  if cached
2606
- node_cache[:hour_minute_second][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2504
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2607
2505
  @index = cached.interval.end
2608
2506
  end
2609
2507
  return cached
@@ -2613,11 +2511,10 @@ module Timing
2613
2511
  i1, s1 = index, []
2614
2512
  s2, i2 = [], index
2615
2513
  loop do
2616
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
2514
+ if has_terminal?('\G[\\d]', true, index)
2617
2515
  r3 = true
2618
2516
  @index += 1
2619
2517
  else
2620
- terminal_parse_failure('[\\d]')
2621
2518
  r3 = nil
2622
2519
  end
2623
2520
  if r3
@@ -2633,29 +2530,25 @@ module Timing
2633
2530
  @index = i2
2634
2531
  r2 = nil
2635
2532
  else
2636
- if s2.size < 2
2637
- terminal_failures.pop
2638
- end
2639
2533
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2640
2534
  end
2641
2535
  s1 << r2
2642
2536
  if r2
2643
- if (match_len = has_terminal?(':', false, index))
2644
- r4 = true
2645
- @index += match_len
2537
+ if has_terminal?(':', false, index)
2538
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2539
+ @index += 1
2646
2540
  else
2647
- terminal_parse_failure('\':\'')
2541
+ terminal_parse_failure(':')
2648
2542
  r4 = nil
2649
2543
  end
2650
2544
  s1 << r4
2651
2545
  if r4
2652
2546
  s5, i5 = [], index
2653
2547
  loop do
2654
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
2548
+ if has_terminal?('\G[\\d]', true, index)
2655
2549
  r6 = true
2656
2550
  @index += 1
2657
2551
  else
2658
- terminal_parse_failure('[\\d]')
2659
2552
  r6 = nil
2660
2553
  end
2661
2554
  if r6
@@ -2671,30 +2564,26 @@ module Timing
2671
2564
  @index = i5
2672
2565
  r5 = nil
2673
2566
  else
2674
- if s5.size < 2
2675
- terminal_failures.pop
2676
- end
2677
2567
  r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
2678
2568
  end
2679
2569
  s1 << r5
2680
2570
  if r5
2681
2571
  i8, s8 = index, []
2682
- if (match_len = has_terminal?(':', false, index))
2683
- r9 = true
2684
- @index += match_len
2572
+ if has_terminal?(':', false, index)
2573
+ r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
2574
+ @index += 1
2685
2575
  else
2686
- terminal_parse_failure('\':\'')
2576
+ terminal_parse_failure(':')
2687
2577
  r9 = nil
2688
2578
  end
2689
2579
  s8 << r9
2690
2580
  if r9
2691
2581
  s10, i10 = [], index
2692
2582
  loop do
2693
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
2583
+ if has_terminal?('\G[\\d]', true, index)
2694
2584
  r11 = true
2695
2585
  @index += 1
2696
2586
  else
2697
- terminal_parse_failure('[\\d]')
2698
2587
  r11 = nil
2699
2588
  end
2700
2589
  if r11
@@ -2710,9 +2599,6 @@ module Timing
2710
2599
  @index = i10
2711
2600
  r10 = nil
2712
2601
  else
2713
- if s10.size < 2
2714
- terminal_failures.pop
2715
- end
2716
2602
  r10 = instantiate_node(SyntaxNode,input, i10...index, s10)
2717
2603
  end
2718
2604
  s8 << r10
@@ -2741,29 +2627,26 @@ module Timing
2741
2627
  r1 = nil
2742
2628
  end
2743
2629
  if r1
2744
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2745
2630
  r0 = r1
2746
2631
  else
2747
- if (match_len = has_terminal?('beginning', false, index))
2748
- r12 = instantiate_node(HourMinuteSecond,input, index...(index + match_len))
2749
- @index += match_len
2632
+ if has_terminal?('beginning', false, index)
2633
+ r12 = instantiate_node(HourMinuteSecond,input, index...(index + 9))
2634
+ @index += 9
2750
2635
  else
2751
- terminal_parse_failure('\'beginning\'')
2636
+ terminal_parse_failure('beginning')
2752
2637
  r12 = nil
2753
2638
  end
2754
2639
  if r12
2755
- r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
2756
2640
  r0 = r12
2757
2641
  else
2758
- if (match_len = has_terminal?('end', false, index))
2759
- r13 = instantiate_node(HourMinuteSecond,input, index...(index + match_len))
2760
- @index += match_len
2642
+ if has_terminal?('end', false, index)
2643
+ r13 = instantiate_node(HourMinuteSecond,input, index...(index + 3))
2644
+ @index += 3
2761
2645
  else
2762
- terminal_parse_failure('\'end\'')
2646
+ terminal_parse_failure('end')
2763
2647
  r13 = nil
2764
2648
  end
2765
2649
  if r13
2766
- r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
2767
2650
  r0 = r13
2768
2651
  else
2769
2652
  @index = i0
@@ -2782,7 +2665,7 @@ module Timing
2782
2665
  if node_cache[:integer].has_key?(index)
2783
2666
  cached = node_cache[:integer][index]
2784
2667
  if cached
2785
- node_cache[:integer][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2668
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2786
2669
  @index = cached.interval.end
2787
2670
  end
2788
2671
  return cached
@@ -2790,11 +2673,10 @@ module Timing
2790
2673
 
2791
2674
  s0, i0 = [], index
2792
2675
  loop do
2793
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
2676
+ if has_terminal?('\G[\\d]', true, index)
2794
2677
  r1 = true
2795
2678
  @index += 1
2796
2679
  else
2797
- terminal_parse_failure('[\\d]')
2798
2680
  r1 = nil
2799
2681
  end
2800
2682
  if r1
@@ -2820,17 +2702,16 @@ module Timing
2820
2702
  if node_cache[:space].has_key?(index)
2821
2703
  cached = node_cache[:space][index]
2822
2704
  if cached
2823
- node_cache[:space][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2705
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2824
2706
  @index = cached.interval.end
2825
2707
  end
2826
2708
  return cached
2827
2709
  end
2828
2710
 
2829
- if has_terminal?(@regexps[gr = '\A[\\s\\t\\n]'] ||= Regexp.new(gr), :regexp, index)
2711
+ if has_terminal?('\G[\\s\\t\\n]', true, index)
2830
2712
  r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
2831
2713
  @index += 1
2832
2714
  else
2833
- terminal_parse_failure('[\\s\\t\\n]')
2834
2715
  r0 = nil
2835
2716
  end
2836
2717