timing 0.1.2 → 0.1.3

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[:zone_info].has_key?(index)
101
101
  cached = node_cache[:zone_info][index]
102
102
  if cached
103
- node_cache[:zone_info][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,12 +109,10 @@ module Timing
109
109
  i0 = index
110
110
  r1 = _nt_zone_offset
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_zone_name
116
115
  if r2
117
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
118
116
  r0 = r2
119
117
  else
120
118
  @index = i0
@@ -132,7 +130,7 @@ module Timing
132
130
  if node_cache[:moment].has_key?(index)
133
131
  cached = node_cache[:moment][index]
134
132
  if cached
135
- node_cache[:moment][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
133
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
136
134
  @index = cached.interval.end
137
135
  end
138
136
  return cached
@@ -141,27 +139,22 @@ module Timing
141
139
  i0 = index
142
140
  r1 = _nt_timestamp
143
141
  if r1
144
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
145
142
  r0 = r1
146
143
  else
147
144
  r2 = _nt_time_ago
148
145
  if r2
149
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
150
146
  r0 = r2
151
147
  else
152
148
  r3 = _nt_moment_at_time
153
149
  if r3
154
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
155
150
  r0 = r3
156
151
  else
157
152
  r4 = _nt_before_from_moment
158
153
  if r4
159
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
160
154
  r0 = r4
161
155
  else
162
156
  r5 = _nt_date_moment
163
157
  if r5
164
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
165
158
  r0 = r5
166
159
  else
167
160
  @index = i0
@@ -182,7 +175,7 @@ module Timing
182
175
  if node_cache[:date_moment].has_key?(index)
183
176
  cached = node_cache[:date_moment][index]
184
177
  if cached
185
- node_cache[:date_moment][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
178
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
186
179
  @index = cached.interval.end
187
180
  end
188
181
  return cached
@@ -191,27 +184,22 @@ module Timing
191
184
  i0 = index
192
185
  r1 = _nt_named_moment
193
186
  if r1
194
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
195
187
  r0 = r1
196
188
  else
197
189
  r2 = _nt_last_next_day_name
198
190
  if r2
199
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
200
191
  r0 = r2
201
192
  else
202
193
  r3 = _nt_day_month_name_year
203
194
  if r3
204
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
205
195
  r0 = r3
206
196
  else
207
197
  r4 = _nt_year_month_day
208
198
  if r4
209
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
210
199
  r0 = r4
211
200
  else
212
201
  r5 = _nt_beginning_end_interval
213
202
  if r5
214
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
215
203
  r0 = r5
216
204
  else
217
205
  @index = i0
@@ -232,7 +220,7 @@ module Timing
232
220
  if node_cache[:named_moment].has_key?(index)
233
221
  cached = node_cache[:named_moment][index]
234
222
  if cached
235
- node_cache[:named_moment][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
223
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
236
224
  @index = cached.interval.end
237
225
  end
238
226
  return cached
@@ -241,22 +229,18 @@ module Timing
241
229
  i0 = index
242
230
  r1 = _nt_now
243
231
  if r1
244
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
245
232
  r0 = r1
246
233
  else
247
234
  r2 = _nt_today
248
235
  if r2
249
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
250
236
  r0 = r2
251
237
  else
252
238
  r3 = _nt_tomorrow
253
239
  if r3
254
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
255
240
  r0 = r3
256
241
  else
257
242
  r4 = _nt_yesterday
258
243
  if r4
259
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
260
244
  r0 = r4
261
245
  else
262
246
  @index = i0
@@ -290,7 +274,7 @@ module Timing
290
274
  if node_cache[:last_next_day_name].has_key?(index)
291
275
  cached = node_cache[:last_next_day_name][index]
292
276
  if cached
293
- node_cache[:last_next_day_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
277
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
294
278
  @index = cached.interval.end
295
279
  end
296
280
  return cached
@@ -327,11 +311,11 @@ module Timing
327
311
  r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
328
312
  s0 << r5
329
313
  if r5
330
- if (match_len = has_terminal?('including today', false, index))
331
- r8 = instantiate_node(SyntaxNode,input, index...(index + match_len))
332
- @index += match_len
314
+ if has_terminal?('including today', false, index)
315
+ r8 = instantiate_node(SyntaxNode,input, index...(index + 15))
316
+ @index += 15
333
317
  else
334
- terminal_parse_failure('\'including today\'')
318
+ terminal_parse_failure('including today')
335
319
  r8 = nil
336
320
  end
337
321
  if r8
@@ -377,7 +361,7 @@ module Timing
377
361
  if node_cache[:day_month_name_year].has_key?(index)
378
362
  cached = node_cache[:day_month_name_year][index]
379
363
  if cached
380
- node_cache[:day_month_name_year][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
364
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
381
365
  @index = cached.interval.end
382
366
  end
383
367
  return cached
@@ -470,7 +454,7 @@ module Timing
470
454
  if node_cache[:year_month_day].has_key?(index)
471
455
  cached = node_cache[:year_month_day][index]
472
456
  if cached
473
- node_cache[:year_month_day][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
457
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
474
458
  @index = cached.interval.end
475
459
  end
476
460
  return cached
@@ -480,11 +464,11 @@ module Timing
480
464
  r1 = _nt_integer
481
465
  s0 << r1
482
466
  if r1
483
- if (match_len = has_terminal?('-', false, index))
484
- r2 = true
485
- @index += match_len
467
+ if has_terminal?('-', false, index)
468
+ r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
469
+ @index += 1
486
470
  else
487
- terminal_parse_failure('\'-\'')
471
+ terminal_parse_failure('-')
488
472
  r2 = nil
489
473
  end
490
474
  s0 << r2
@@ -492,11 +476,11 @@ module Timing
492
476
  r3 = _nt_integer
493
477
  s0 << r3
494
478
  if r3
495
- if (match_len = has_terminal?('-', false, index))
496
- r4 = true
497
- @index += match_len
479
+ if has_terminal?('-', false, index)
480
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
481
+ @index += 1
498
482
  else
499
- terminal_parse_failure('\'-\'')
483
+ terminal_parse_failure('-')
500
484
  r4 = nil
501
485
  end
502
486
  s0 << r4
@@ -535,7 +519,7 @@ module Timing
535
519
  if node_cache[:beginning_end_interval].has_key?(index)
536
520
  cached = node_cache[:beginning_end_interval][index]
537
521
  if cached
538
- node_cache[:beginning_end_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
522
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
539
523
  @index = cached.interval.end
540
524
  end
541
525
  return cached
@@ -590,7 +574,7 @@ module Timing
590
574
  if node_cache[:time_ago].has_key?(index)
591
575
  cached = node_cache[:time_ago][index]
592
576
  if cached
593
- node_cache[:time_ago][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
577
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
594
578
  @index = cached.interval.end
595
579
  end
596
580
  return cached
@@ -627,11 +611,11 @@ module Timing
627
611
  r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
628
612
  s0 << r5
629
613
  if r5
630
- if (match_len = has_terminal?('ago', false, index))
631
- r7 = instantiate_node(SyntaxNode,input, index...(index + match_len))
632
- @index += match_len
614
+ if has_terminal?('ago', false, index)
615
+ r7 = instantiate_node(SyntaxNode,input, index...(index + 3))
616
+ @index += 3
633
617
  else
634
- terminal_parse_failure('\'ago\'')
618
+ terminal_parse_failure('ago')
635
619
  r7 = nil
636
620
  end
637
621
  s0 << r7
@@ -667,7 +651,7 @@ module Timing
667
651
  if node_cache[:moment_at_time].has_key?(index)
668
652
  cached = node_cache[:moment_at_time][index]
669
653
  if cached
670
- node_cache[:moment_at_time][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
654
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
671
655
  @index = cached.interval.end
672
656
  end
673
657
  return cached
@@ -689,11 +673,11 @@ module Timing
689
673
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
690
674
  s0 << r2
691
675
  if r2
692
- if (match_len = has_terminal?('at', false, index))
693
- r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
694
- @index += match_len
676
+ if has_terminal?('at', false, index)
677
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
678
+ @index += 2
695
679
  else
696
- terminal_parse_failure('\'at\'')
680
+ terminal_parse_failure('at')
697
681
  r4 = nil
698
682
  end
699
683
  s0 << r4
@@ -752,7 +736,7 @@ module Timing
752
736
  if node_cache[:before_from_moment].has_key?(index)
753
737
  cached = node_cache[:before_from_moment][index]
754
738
  if cached
755
- node_cache[:before_from_moment][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
739
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
756
740
  @index = cached.interval.end
757
741
  end
758
742
  return cached
@@ -833,7 +817,7 @@ module Timing
833
817
  if node_cache[:timestamp].has_key?(index)
834
818
  cached = node_cache[:timestamp][index]
835
819
  if cached
836
- node_cache[:timestamp][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
820
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
837
821
  @index = cached.interval.end
838
822
  end
839
823
  return cached
@@ -842,11 +826,10 @@ module Timing
842
826
  i0, s0 = index, []
843
827
  s1, i1 = [], index
844
828
  loop do
845
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
829
+ if has_terminal?('\G[\\d]', true, index)
846
830
  r2 = true
847
831
  @index += 1
848
832
  else
849
- terminal_parse_failure('[\\d]')
850
833
  r2 = nil
851
834
  end
852
835
  if r2
@@ -862,29 +845,25 @@ module Timing
862
845
  @index = i1
863
846
  r1 = nil
864
847
  else
865
- if s1.size < 4
866
- @terminal_failures.pop
867
- end
868
848
  r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
869
849
  end
870
850
  s0 << r1
871
851
  if r1
872
- if (match_len = has_terminal?('-', false, index))
873
- r3 = true
874
- @index += match_len
852
+ if has_terminal?('-', false, index)
853
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
854
+ @index += 1
875
855
  else
876
- terminal_parse_failure('\'-\'')
856
+ terminal_parse_failure('-')
877
857
  r3 = nil
878
858
  end
879
859
  s0 << r3
880
860
  if r3
881
861
  s4, i4 = [], index
882
862
  loop do
883
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
863
+ if has_terminal?('\G[\\d]', true, index)
884
864
  r5 = true
885
865
  @index += 1
886
866
  else
887
- terminal_parse_failure('[\\d]')
888
867
  r5 = nil
889
868
  end
890
869
  if r5
@@ -900,29 +879,25 @@ module Timing
900
879
  @index = i4
901
880
  r4 = nil
902
881
  else
903
- if s4.size < 2
904
- @terminal_failures.pop
905
- end
906
882
  r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
907
883
  end
908
884
  s0 << r4
909
885
  if r4
910
- if (match_len = has_terminal?('-', false, index))
911
- r6 = true
912
- @index += match_len
886
+ if has_terminal?('-', false, index)
887
+ r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
888
+ @index += 1
913
889
  else
914
- terminal_parse_failure('\'-\'')
890
+ terminal_parse_failure('-')
915
891
  r6 = nil
916
892
  end
917
893
  s0 << r6
918
894
  if r6
919
895
  s7, i7 = [], index
920
896
  loop do
921
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
897
+ if has_terminal?('\G[\\d]', true, index)
922
898
  r8 = true
923
899
  @index += 1
924
900
  else
925
- terminal_parse_failure('[\\d]')
926
901
  r8 = nil
927
902
  end
928
903
  if r8
@@ -938,9 +913,6 @@ module Timing
938
913
  @index = i7
939
914
  r7 = nil
940
915
  else
941
- if s7.size < 2
942
- @terminal_failures.pop
943
- end
944
916
  r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
945
917
  end
946
918
  s0 << r7
@@ -957,11 +929,11 @@ module Timing
957
929
  r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
958
930
  s0 << r9
959
931
  if r9
960
- if (match_len = has_terminal?('t', false, index))
961
- r12 = true
962
- @index += match_len
932
+ if has_terminal?('t', false, index)
933
+ r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
934
+ @index += 1
963
935
  else
964
- terminal_parse_failure('\'t\'')
936
+ terminal_parse_failure('t')
965
937
  r12 = nil
966
938
  end
967
939
  if r12
@@ -985,11 +957,10 @@ module Timing
985
957
  if r13
986
958
  s15, i15 = [], index
987
959
  loop do
988
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
960
+ if has_terminal?('\G[\\d]', true, index)
989
961
  r16 = true
990
962
  @index += 1
991
963
  else
992
- terminal_parse_failure('[\\d]')
993
964
  r16 = nil
994
965
  end
995
966
  if r16
@@ -1005,29 +976,25 @@ module Timing
1005
976
  @index = i15
1006
977
  r15 = nil
1007
978
  else
1008
- if s15.size < 2
1009
- @terminal_failures.pop
1010
- end
1011
979
  r15 = instantiate_node(SyntaxNode,input, i15...index, s15)
1012
980
  end
1013
981
  s0 << r15
1014
982
  if r15
1015
- if (match_len = has_terminal?(':', false, index))
1016
- r17 = true
1017
- @index += match_len
983
+ if has_terminal?(':', false, index)
984
+ r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
985
+ @index += 1
1018
986
  else
1019
- terminal_parse_failure('\':\'')
987
+ terminal_parse_failure(':')
1020
988
  r17 = nil
1021
989
  end
1022
990
  s0 << r17
1023
991
  if r17
1024
992
  s18, i18 = [], index
1025
993
  loop do
1026
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
994
+ if has_terminal?('\G[\\d]', true, index)
1027
995
  r19 = true
1028
996
  @index += 1
1029
997
  else
1030
- terminal_parse_failure('[\\d]')
1031
998
  r19 = nil
1032
999
  end
1033
1000
  if r19
@@ -1043,29 +1010,25 @@ module Timing
1043
1010
  @index = i18
1044
1011
  r18 = nil
1045
1012
  else
1046
- if s18.size < 2
1047
- @terminal_failures.pop
1048
- end
1049
1013
  r18 = instantiate_node(SyntaxNode,input, i18...index, s18)
1050
1014
  end
1051
1015
  s0 << r18
1052
1016
  if r18
1053
- if (match_len = has_terminal?(':', false, index))
1054
- r20 = true
1055
- @index += match_len
1017
+ if has_terminal?(':', false, index)
1018
+ r20 = instantiate_node(SyntaxNode,input, index...(index + 1))
1019
+ @index += 1
1056
1020
  else
1057
- terminal_parse_failure('\':\'')
1021
+ terminal_parse_failure(':')
1058
1022
  r20 = nil
1059
1023
  end
1060
1024
  s0 << r20
1061
1025
  if r20
1062
1026
  s21, i21 = [], index
1063
1027
  loop do
1064
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
1028
+ if has_terminal?('\G[\\d]', true, index)
1065
1029
  r22 = true
1066
1030
  @index += 1
1067
1031
  else
1068
- terminal_parse_failure('[\\d]')
1069
1032
  r22 = nil
1070
1033
  end
1071
1034
  if r22
@@ -1081,9 +1044,6 @@ module Timing
1081
1044
  @index = i21
1082
1045
  r21 = nil
1083
1046
  else
1084
- if s21.size < 2
1085
- @terminal_failures.pop
1086
- end
1087
1047
  r21 = instantiate_node(SyntaxNode,input, i21...index, s21)
1088
1048
  end
1089
1049
  s0 << r21
@@ -1117,17 +1077,17 @@ module Timing
1117
1077
  if node_cache[:now].has_key?(index)
1118
1078
  cached = node_cache[:now][index]
1119
1079
  if cached
1120
- node_cache[:now][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1080
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1121
1081
  @index = cached.interval.end
1122
1082
  end
1123
1083
  return cached
1124
1084
  end
1125
1085
 
1126
- if (match_len = has_terminal?('now', false, index))
1127
- r0 = instantiate_node(Now,input, index...(index + match_len))
1128
- @index += match_len
1086
+ if has_terminal?('now', false, index)
1087
+ r0 = instantiate_node(Now,input, index...(index + 3))
1088
+ @index += 3
1129
1089
  else
1130
- terminal_parse_failure('\'now\'')
1090
+ terminal_parse_failure('now')
1131
1091
  r0 = nil
1132
1092
  end
1133
1093
 
@@ -1141,17 +1101,17 @@ module Timing
1141
1101
  if node_cache[:today].has_key?(index)
1142
1102
  cached = node_cache[:today][index]
1143
1103
  if cached
1144
- node_cache[:today][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1104
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1145
1105
  @index = cached.interval.end
1146
1106
  end
1147
1107
  return cached
1148
1108
  end
1149
1109
 
1150
- if (match_len = has_terminal?('today', false, index))
1151
- r0 = instantiate_node(Today,input, index...(index + match_len))
1152
- @index += match_len
1110
+ if has_terminal?('today', false, index)
1111
+ r0 = instantiate_node(Today,input, index...(index + 5))
1112
+ @index += 5
1153
1113
  else
1154
- terminal_parse_failure('\'today\'')
1114
+ terminal_parse_failure('today')
1155
1115
  r0 = nil
1156
1116
  end
1157
1117
 
@@ -1165,17 +1125,17 @@ module Timing
1165
1125
  if node_cache[:tomorrow].has_key?(index)
1166
1126
  cached = node_cache[:tomorrow][index]
1167
1127
  if cached
1168
- node_cache[:tomorrow][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1128
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1169
1129
  @index = cached.interval.end
1170
1130
  end
1171
1131
  return cached
1172
1132
  end
1173
1133
 
1174
- if (match_len = has_terminal?('tomorrow', false, index))
1175
- r0 = instantiate_node(Tomorrow,input, index...(index + match_len))
1176
- @index += match_len
1134
+ if has_terminal?('tomorrow', false, index)
1135
+ r0 = instantiate_node(Tomorrow,input, index...(index + 8))
1136
+ @index += 8
1177
1137
  else
1178
- terminal_parse_failure('\'tomorrow\'')
1138
+ terminal_parse_failure('tomorrow')
1179
1139
  r0 = nil
1180
1140
  end
1181
1141
 
@@ -1189,17 +1149,17 @@ module Timing
1189
1149
  if node_cache[:yesterday].has_key?(index)
1190
1150
  cached = node_cache[:yesterday][index]
1191
1151
  if cached
1192
- node_cache[:yesterday][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1152
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1193
1153
  @index = cached.interval.end
1194
1154
  end
1195
1155
  return cached
1196
1156
  end
1197
1157
 
1198
- if (match_len = has_terminal?('yesterday', false, index))
1199
- r0 = instantiate_node(Yesterday,input, index...(index + match_len))
1200
- @index += match_len
1158
+ if has_terminal?('yesterday', false, index)
1159
+ r0 = instantiate_node(Yesterday,input, index...(index + 9))
1160
+ @index += 9
1201
1161
  else
1202
- terminal_parse_failure('\'yesterday\'')
1162
+ terminal_parse_failure('yesterday')
1203
1163
  r0 = nil
1204
1164
  end
1205
1165
 
@@ -1213,7 +1173,7 @@ module Timing
1213
1173
  if node_cache[:last_next].has_key?(index)
1214
1174
  cached = node_cache[:last_next][index]
1215
1175
  if cached
1216
- node_cache[:last_next][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1176
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1217
1177
  @index = cached.interval.end
1218
1178
  end
1219
1179
  return cached
@@ -1222,12 +1182,10 @@ module Timing
1222
1182
  i0 = index
1223
1183
  r1 = _nt_last
1224
1184
  if r1
1225
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1226
1185
  r0 = r1
1227
1186
  else
1228
1187
  r2 = _nt_next
1229
1188
  if r2
1230
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1231
1189
  r0 = r2
1232
1190
  else
1233
1191
  @index = i0
@@ -1245,17 +1203,17 @@ module Timing
1245
1203
  if node_cache[:last].has_key?(index)
1246
1204
  cached = node_cache[:last][index]
1247
1205
  if cached
1248
- node_cache[:last][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1206
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1249
1207
  @index = cached.interval.end
1250
1208
  end
1251
1209
  return cached
1252
1210
  end
1253
1211
 
1254
- if (match_len = has_terminal?('last', false, index))
1255
- r0 = instantiate_node(LastNext,input, index...(index + match_len))
1256
- @index += match_len
1212
+ if has_terminal?('last', false, index)
1213
+ r0 = instantiate_node(LastNext,input, index...(index + 4))
1214
+ @index += 4
1257
1215
  else
1258
- terminal_parse_failure('\'last\'')
1216
+ terminal_parse_failure('last')
1259
1217
  r0 = nil
1260
1218
  end
1261
1219
 
@@ -1269,17 +1227,17 @@ module Timing
1269
1227
  if node_cache[:next].has_key?(index)
1270
1228
  cached = node_cache[:next][index]
1271
1229
  if cached
1272
- node_cache[:next][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1230
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1273
1231
  @index = cached.interval.end
1274
1232
  end
1275
1233
  return cached
1276
1234
  end
1277
1235
 
1278
- if (match_len = has_terminal?('next', false, index))
1279
- r0 = instantiate_node(LastNext,input, index...(index + match_len))
1280
- @index += match_len
1236
+ if has_terminal?('next', false, index)
1237
+ r0 = instantiate_node(LastNext,input, index...(index + 4))
1238
+ @index += 4
1281
1239
  else
1282
- terminal_parse_failure('\'next\'')
1240
+ terminal_parse_failure('next')
1283
1241
  r0 = nil
1284
1242
  end
1285
1243
 
@@ -1293,7 +1251,7 @@ module Timing
1293
1251
  if node_cache[:beginning_end].has_key?(index)
1294
1252
  cached = node_cache[:beginning_end][index]
1295
1253
  if cached
1296
- node_cache[:beginning_end][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1254
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1297
1255
  @index = cached.interval.end
1298
1256
  end
1299
1257
  return cached
@@ -1302,12 +1260,10 @@ module Timing
1302
1260
  i0 = index
1303
1261
  r1 = _nt_beginning_of
1304
1262
  if r1
1305
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1306
1263
  r0 = r1
1307
1264
  else
1308
1265
  r2 = _nt_end_of
1309
1266
  if r2
1310
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1311
1267
  r0 = r2
1312
1268
  else
1313
1269
  @index = i0
@@ -1332,18 +1288,18 @@ module Timing
1332
1288
  if node_cache[:beginning_of].has_key?(index)
1333
1289
  cached = node_cache[:beginning_of][index]
1334
1290
  if cached
1335
- node_cache[:beginning_of][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1291
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1336
1292
  @index = cached.interval.end
1337
1293
  end
1338
1294
  return cached
1339
1295
  end
1340
1296
 
1341
1297
  i0, s0 = index, []
1342
- if (match_len = has_terminal?('beginning', false, index))
1343
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1344
- @index += match_len
1298
+ if has_terminal?('beginning', false, index)
1299
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 9))
1300
+ @index += 9
1345
1301
  else
1346
- terminal_parse_failure('\'beginning\'')
1302
+ terminal_parse_failure('beginning')
1347
1303
  r1 = nil
1348
1304
  end
1349
1305
  s0 << r1
@@ -1360,11 +1316,11 @@ module Timing
1360
1316
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1361
1317
  s0 << r2
1362
1318
  if r2
1363
- if (match_len = has_terminal?('of', false, index))
1364
- r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1365
- @index += match_len
1319
+ if has_terminal?('of', false, index)
1320
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
1321
+ @index += 2
1366
1322
  else
1367
- terminal_parse_failure('\'of\'')
1323
+ terminal_parse_failure('of')
1368
1324
  r4 = nil
1369
1325
  end
1370
1326
  s0 << r4
@@ -1395,18 +1351,18 @@ module Timing
1395
1351
  if node_cache[:end_of].has_key?(index)
1396
1352
  cached = node_cache[:end_of][index]
1397
1353
  if cached
1398
- node_cache[:end_of][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1354
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1399
1355
  @index = cached.interval.end
1400
1356
  end
1401
1357
  return cached
1402
1358
  end
1403
1359
 
1404
1360
  i0, s0 = index, []
1405
- if (match_len = has_terminal?('end', false, index))
1406
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1407
- @index += match_len
1361
+ if has_terminal?('end', false, index)
1362
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 3))
1363
+ @index += 3
1408
1364
  else
1409
- terminal_parse_failure('\'end\'')
1365
+ terminal_parse_failure('end')
1410
1366
  r1 = nil
1411
1367
  end
1412
1368
  s0 << r1
@@ -1423,11 +1379,11 @@ module Timing
1423
1379
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1424
1380
  s0 << r2
1425
1381
  if r2
1426
- if (match_len = has_terminal?('of', false, index))
1427
- r4 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1428
- @index += match_len
1382
+ if has_terminal?('of', false, index)
1383
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
1384
+ @index += 2
1429
1385
  else
1430
- terminal_parse_failure('\'of\'')
1386
+ terminal_parse_failure('of')
1431
1387
  r4 = nil
1432
1388
  end
1433
1389
  s0 << r4
@@ -1451,7 +1407,7 @@ module Timing
1451
1407
  if node_cache[:before_from].has_key?(index)
1452
1408
  cached = node_cache[:before_from][index]
1453
1409
  if cached
1454
- node_cache[:before_from][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1410
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1455
1411
  @index = cached.interval.end
1456
1412
  end
1457
1413
  return cached
@@ -1460,12 +1416,10 @@ module Timing
1460
1416
  i0 = index
1461
1417
  r1 = _nt_before
1462
1418
  if r1
1463
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1464
1419
  r0 = r1
1465
1420
  else
1466
1421
  r2 = _nt_from
1467
1422
  if r2
1468
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1469
1423
  r0 = r2
1470
1424
  else
1471
1425
  @index = i0
@@ -1483,17 +1437,17 @@ module Timing
1483
1437
  if node_cache[:before].has_key?(index)
1484
1438
  cached = node_cache[:before][index]
1485
1439
  if cached
1486
- node_cache[:before][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1440
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1487
1441
  @index = cached.interval.end
1488
1442
  end
1489
1443
  return cached
1490
1444
  end
1491
1445
 
1492
- if (match_len = has_terminal?('before', false, index))
1493
- r0 = instantiate_node(BeforeFrom,input, index...(index + match_len))
1494
- @index += match_len
1446
+ if has_terminal?('before', false, index)
1447
+ r0 = instantiate_node(BeforeFrom,input, index...(index + 6))
1448
+ @index += 6
1495
1449
  else
1496
- terminal_parse_failure('\'before\'')
1450
+ terminal_parse_failure('before')
1497
1451
  r0 = nil
1498
1452
  end
1499
1453
 
@@ -1507,17 +1461,17 @@ module Timing
1507
1461
  if node_cache[:from].has_key?(index)
1508
1462
  cached = node_cache[:from][index]
1509
1463
  if cached
1510
- node_cache[:from][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1464
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1511
1465
  @index = cached.interval.end
1512
1466
  end
1513
1467
  return cached
1514
1468
  end
1515
1469
 
1516
- if (match_len = has_terminal?('from', false, index))
1517
- r0 = instantiate_node(BeforeFrom,input, index...(index + match_len))
1518
- @index += match_len
1470
+ if has_terminal?('from', false, index)
1471
+ r0 = instantiate_node(BeforeFrom,input, index...(index + 4))
1472
+ @index += 4
1519
1473
  else
1520
- terminal_parse_failure('\'from\'')
1474
+ terminal_parse_failure('from')
1521
1475
  r0 = nil
1522
1476
  end
1523
1477
 
@@ -1531,7 +1485,7 @@ module Timing
1531
1485
  if node_cache[:interval].has_key?(index)
1532
1486
  cached = node_cache[:interval][index]
1533
1487
  if cached
1534
- node_cache[:interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1488
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1535
1489
  @index = cached.interval.end
1536
1490
  end
1537
1491
  return cached
@@ -1540,37 +1494,30 @@ module Timing
1540
1494
  i0 = index
1541
1495
  r1 = _nt_second_interval
1542
1496
  if r1
1543
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1544
1497
  r0 = r1
1545
1498
  else
1546
1499
  r2 = _nt_minute_interval
1547
1500
  if r2
1548
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1549
1501
  r0 = r2
1550
1502
  else
1551
1503
  r3 = _nt_hour_interval
1552
1504
  if r3
1553
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
1554
1505
  r0 = r3
1555
1506
  else
1556
1507
  r4 = _nt_day_interval
1557
1508
  if r4
1558
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
1559
1509
  r0 = r4
1560
1510
  else
1561
1511
  r5 = _nt_week_interval
1562
1512
  if r5
1563
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
1564
1513
  r0 = r5
1565
1514
  else
1566
1515
  r6 = _nt_month_interval
1567
1516
  if r6
1568
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
1569
1517
  r0 = r6
1570
1518
  else
1571
1519
  r7 = _nt_year_interval
1572
1520
  if r7
1573
- r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
1574
1521
  r0 = r7
1575
1522
  else
1576
1523
  @index = i0
@@ -1596,27 +1543,27 @@ module Timing
1596
1543
  if node_cache[:second_interval].has_key?(index)
1597
1544
  cached = node_cache[:second_interval][index]
1598
1545
  if cached
1599
- node_cache[:second_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1546
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1600
1547
  @index = cached.interval.end
1601
1548
  end
1602
1549
  return cached
1603
1550
  end
1604
1551
 
1605
1552
  i0, s0 = index, []
1606
- if (match_len = has_terminal?('second', false, index))
1607
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1608
- @index += match_len
1553
+ if has_terminal?('second', false, index)
1554
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 6))
1555
+ @index += 6
1609
1556
  else
1610
- terminal_parse_failure('\'second\'')
1557
+ terminal_parse_failure('second')
1611
1558
  r1 = nil
1612
1559
  end
1613
1560
  s0 << r1
1614
1561
  if r1
1615
- if (match_len = has_terminal?('s', false, index))
1616
- r3 = true
1617
- @index += match_len
1562
+ if has_terminal?('s', false, index)
1563
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1564
+ @index += 1
1618
1565
  else
1619
- terminal_parse_failure('\'s\'')
1566
+ terminal_parse_failure('s')
1620
1567
  r3 = nil
1621
1568
  end
1622
1569
  if r3
@@ -1647,27 +1594,27 @@ module Timing
1647
1594
  if node_cache[:minute_interval].has_key?(index)
1648
1595
  cached = node_cache[:minute_interval][index]
1649
1596
  if cached
1650
- node_cache[:minute_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1597
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1651
1598
  @index = cached.interval.end
1652
1599
  end
1653
1600
  return cached
1654
1601
  end
1655
1602
 
1656
1603
  i0, s0 = index, []
1657
- if (match_len = has_terminal?('minute', false, index))
1658
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1659
- @index += match_len
1604
+ if has_terminal?('minute', false, index)
1605
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 6))
1606
+ @index += 6
1660
1607
  else
1661
- terminal_parse_failure('\'minute\'')
1608
+ terminal_parse_failure('minute')
1662
1609
  r1 = nil
1663
1610
  end
1664
1611
  s0 << r1
1665
1612
  if r1
1666
- if (match_len = has_terminal?('s', false, index))
1667
- r3 = true
1668
- @index += match_len
1613
+ if has_terminal?('s', false, index)
1614
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1615
+ @index += 1
1669
1616
  else
1670
- terminal_parse_failure('\'s\'')
1617
+ terminal_parse_failure('s')
1671
1618
  r3 = nil
1672
1619
  end
1673
1620
  if r3
@@ -1698,27 +1645,27 @@ module Timing
1698
1645
  if node_cache[:hour_interval].has_key?(index)
1699
1646
  cached = node_cache[:hour_interval][index]
1700
1647
  if cached
1701
- node_cache[:hour_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1648
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1702
1649
  @index = cached.interval.end
1703
1650
  end
1704
1651
  return cached
1705
1652
  end
1706
1653
 
1707
1654
  i0, s0 = index, []
1708
- if (match_len = has_terminal?('hour', false, index))
1709
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1710
- @index += match_len
1655
+ if has_terminal?('hour', false, index)
1656
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
1657
+ @index += 4
1711
1658
  else
1712
- terminal_parse_failure('\'hour\'')
1659
+ terminal_parse_failure('hour')
1713
1660
  r1 = nil
1714
1661
  end
1715
1662
  s0 << r1
1716
1663
  if r1
1717
- if (match_len = has_terminal?('s', false, index))
1718
- r3 = true
1719
- @index += match_len
1664
+ if has_terminal?('s', false, index)
1665
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1666
+ @index += 1
1720
1667
  else
1721
- terminal_parse_failure('\'s\'')
1668
+ terminal_parse_failure('s')
1722
1669
  r3 = nil
1723
1670
  end
1724
1671
  if r3
@@ -1749,27 +1696,27 @@ module Timing
1749
1696
  if node_cache[:day_interval].has_key?(index)
1750
1697
  cached = node_cache[:day_interval][index]
1751
1698
  if cached
1752
- node_cache[:day_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1699
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1753
1700
  @index = cached.interval.end
1754
1701
  end
1755
1702
  return cached
1756
1703
  end
1757
1704
 
1758
1705
  i0, s0 = index, []
1759
- if (match_len = has_terminal?('day', false, index))
1760
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1761
- @index += match_len
1706
+ if has_terminal?('day', false, index)
1707
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 3))
1708
+ @index += 3
1762
1709
  else
1763
- terminal_parse_failure('\'day\'')
1710
+ terminal_parse_failure('day')
1764
1711
  r1 = nil
1765
1712
  end
1766
1713
  s0 << r1
1767
1714
  if r1
1768
- if (match_len = has_terminal?('s', false, index))
1769
- r3 = true
1770
- @index += match_len
1715
+ if has_terminal?('s', false, index)
1716
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1717
+ @index += 1
1771
1718
  else
1772
- terminal_parse_failure('\'s\'')
1719
+ terminal_parse_failure('s')
1773
1720
  r3 = nil
1774
1721
  end
1775
1722
  if r3
@@ -1800,27 +1747,27 @@ module Timing
1800
1747
  if node_cache[:week_interval].has_key?(index)
1801
1748
  cached = node_cache[:week_interval][index]
1802
1749
  if cached
1803
- node_cache[:week_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1750
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1804
1751
  @index = cached.interval.end
1805
1752
  end
1806
1753
  return cached
1807
1754
  end
1808
1755
 
1809
1756
  i0, s0 = index, []
1810
- if (match_len = has_terminal?('week', false, index))
1811
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1812
- @index += match_len
1757
+ if has_terminal?('week', false, index)
1758
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
1759
+ @index += 4
1813
1760
  else
1814
- terminal_parse_failure('\'week\'')
1761
+ terminal_parse_failure('week')
1815
1762
  r1 = nil
1816
1763
  end
1817
1764
  s0 << r1
1818
1765
  if r1
1819
- if (match_len = has_terminal?('s', false, index))
1820
- r3 = true
1821
- @index += match_len
1766
+ if has_terminal?('s', false, index)
1767
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1768
+ @index += 1
1822
1769
  else
1823
- terminal_parse_failure('\'s\'')
1770
+ terminal_parse_failure('s')
1824
1771
  r3 = nil
1825
1772
  end
1826
1773
  if r3
@@ -1851,27 +1798,27 @@ module Timing
1851
1798
  if node_cache[:month_interval].has_key?(index)
1852
1799
  cached = node_cache[:month_interval][index]
1853
1800
  if cached
1854
- node_cache[:month_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1801
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1855
1802
  @index = cached.interval.end
1856
1803
  end
1857
1804
  return cached
1858
1805
  end
1859
1806
 
1860
1807
  i0, s0 = index, []
1861
- if (match_len = has_terminal?('month', false, index))
1862
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1863
- @index += match_len
1808
+ if has_terminal?('month', false, index)
1809
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 5))
1810
+ @index += 5
1864
1811
  else
1865
- terminal_parse_failure('\'month\'')
1812
+ terminal_parse_failure('month')
1866
1813
  r1 = nil
1867
1814
  end
1868
1815
  s0 << r1
1869
1816
  if r1
1870
- if (match_len = has_terminal?('s', false, index))
1871
- r3 = true
1872
- @index += match_len
1817
+ if has_terminal?('s', false, index)
1818
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1819
+ @index += 1
1873
1820
  else
1874
- terminal_parse_failure('\'s\'')
1821
+ terminal_parse_failure('s')
1875
1822
  r3 = nil
1876
1823
  end
1877
1824
  if r3
@@ -1902,27 +1849,27 @@ module Timing
1902
1849
  if node_cache[:year_interval].has_key?(index)
1903
1850
  cached = node_cache[:year_interval][index]
1904
1851
  if cached
1905
- node_cache[:year_interval][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1852
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1906
1853
  @index = cached.interval.end
1907
1854
  end
1908
1855
  return cached
1909
1856
  end
1910
1857
 
1911
1858
  i0, s0 = index, []
1912
- if (match_len = has_terminal?('year', false, index))
1913
- r1 = instantiate_node(SyntaxNode,input, index...(index + match_len))
1914
- @index += match_len
1859
+ if has_terminal?('year', false, index)
1860
+ r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
1861
+ @index += 4
1915
1862
  else
1916
- terminal_parse_failure('\'year\'')
1863
+ terminal_parse_failure('year')
1917
1864
  r1 = nil
1918
1865
  end
1919
1866
  s0 << r1
1920
1867
  if r1
1921
- if (match_len = has_terminal?('s', false, index))
1922
- r3 = true
1923
- @index += match_len
1868
+ if has_terminal?('s', false, index)
1869
+ r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1870
+ @index += 1
1924
1871
  else
1925
- terminal_parse_failure('\'s\'')
1872
+ terminal_parse_failure('s')
1926
1873
  r3 = nil
1927
1874
  end
1928
1875
  if r3
@@ -1950,7 +1897,7 @@ module Timing
1950
1897
  if node_cache[:day_name].has_key?(index)
1951
1898
  cached = node_cache[:day_name][index]
1952
1899
  if cached
1953
- node_cache[:day_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1900
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1954
1901
  @index = cached.interval.end
1955
1902
  end
1956
1903
  return cached
@@ -1959,12 +1906,10 @@ module Timing
1959
1906
  i0 = index
1960
1907
  r1 = _nt_long_day_name
1961
1908
  if r1
1962
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
1963
1909
  r0 = r1
1964
1910
  else
1965
1911
  r2 = _nt_short_day_name
1966
1912
  if r2
1967
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
1968
1913
  r0 = r2
1969
1914
  else
1970
1915
  @index = i0
@@ -1982,88 +1927,81 @@ module Timing
1982
1927
  if node_cache[:long_day_name].has_key?(index)
1983
1928
  cached = node_cache[:long_day_name][index]
1984
1929
  if cached
1985
- node_cache[:long_day_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1930
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1986
1931
  @index = cached.interval.end
1987
1932
  end
1988
1933
  return cached
1989
1934
  end
1990
1935
 
1991
1936
  i0 = index
1992
- if (match_len = has_terminal?('sunday', false, index))
1993
- r1 = instantiate_node(DayName,input, index...(index + match_len))
1994
- @index += match_len
1937
+ if has_terminal?('sunday', false, index)
1938
+ r1 = instantiate_node(DayName,input, index...(index + 6))
1939
+ @index += 6
1995
1940
  else
1996
- terminal_parse_failure('\'sunday\'')
1941
+ terminal_parse_failure('sunday')
1997
1942
  r1 = nil
1998
1943
  end
1999
1944
  if r1
2000
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2001
1945
  r0 = r1
2002
1946
  else
2003
- if (match_len = has_terminal?('monday', false, index))
2004
- r2 = instantiate_node(DayName,input, index...(index + match_len))
2005
- @index += match_len
1947
+ if has_terminal?('monday', false, index)
1948
+ r2 = instantiate_node(DayName,input, index...(index + 6))
1949
+ @index += 6
2006
1950
  else
2007
- terminal_parse_failure('\'monday\'')
1951
+ terminal_parse_failure('monday')
2008
1952
  r2 = nil
2009
1953
  end
2010
1954
  if r2
2011
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2012
1955
  r0 = r2
2013
1956
  else
2014
- if (match_len = has_terminal?('tuesday', false, index))
2015
- r3 = instantiate_node(DayName,input, index...(index + match_len))
2016
- @index += match_len
1957
+ if has_terminal?('tuesday', false, index)
1958
+ r3 = instantiate_node(DayName,input, index...(index + 7))
1959
+ @index += 7
2017
1960
  else
2018
- terminal_parse_failure('\'tuesday\'')
1961
+ terminal_parse_failure('tuesday')
2019
1962
  r3 = nil
2020
1963
  end
2021
1964
  if r3
2022
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
2023
1965
  r0 = r3
2024
1966
  else
2025
- if (match_len = has_terminal?('wednesday', false, index))
2026
- r4 = instantiate_node(DayName,input, index...(index + match_len))
2027
- @index += match_len
1967
+ if has_terminal?('wednesday', false, index)
1968
+ r4 = instantiate_node(DayName,input, index...(index + 9))
1969
+ @index += 9
2028
1970
  else
2029
- terminal_parse_failure('\'wednesday\'')
1971
+ terminal_parse_failure('wednesday')
2030
1972
  r4 = nil
2031
1973
  end
2032
1974
  if r4
2033
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
2034
1975
  r0 = r4
2035
1976
  else
2036
- if (match_len = has_terminal?('thursday', false, index))
2037
- r5 = instantiate_node(DayName,input, index...(index + match_len))
2038
- @index += match_len
1977
+ if has_terminal?('thursday', false, index)
1978
+ r5 = instantiate_node(DayName,input, index...(index + 8))
1979
+ @index += 8
2039
1980
  else
2040
- terminal_parse_failure('\'thursday\'')
1981
+ terminal_parse_failure('thursday')
2041
1982
  r5 = nil
2042
1983
  end
2043
1984
  if r5
2044
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
2045
1985
  r0 = r5
2046
1986
  else
2047
- if (match_len = has_terminal?('friday', false, index))
2048
- r6 = instantiate_node(DayName,input, index...(index + match_len))
2049
- @index += match_len
1987
+ if has_terminal?('friday', false, index)
1988
+ r6 = instantiate_node(DayName,input, index...(index + 6))
1989
+ @index += 6
2050
1990
  else
2051
- terminal_parse_failure('\'friday\'')
1991
+ terminal_parse_failure('friday')
2052
1992
  r6 = nil
2053
1993
  end
2054
1994
  if r6
2055
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
2056
1995
  r0 = r6
2057
1996
  else
2058
- if (match_len = has_terminal?('saturday', false, index))
2059
- r7 = instantiate_node(DayName,input, index...(index + match_len))
2060
- @index += match_len
1997
+ if has_terminal?('saturday', false, index)
1998
+ r7 = instantiate_node(DayName,input, index...(index + 8))
1999
+ @index += 8
2061
2000
  else
2062
- terminal_parse_failure('\'saturday\'')
2001
+ terminal_parse_failure('saturday')
2063
2002
  r7 = nil
2064
2003
  end
2065
2004
  if r7
2066
- r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
2067
2005
  r0 = r7
2068
2006
  else
2069
2007
  @index = i0
@@ -2086,88 +2024,81 @@ module Timing
2086
2024
  if node_cache[:short_day_name].has_key?(index)
2087
2025
  cached = node_cache[:short_day_name][index]
2088
2026
  if cached
2089
- node_cache[:short_day_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2027
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2090
2028
  @index = cached.interval.end
2091
2029
  end
2092
2030
  return cached
2093
2031
  end
2094
2032
 
2095
2033
  i0 = index
2096
- if (match_len = has_terminal?('sun', false, index))
2097
- r1 = instantiate_node(DayName,input, index...(index + match_len))
2098
- @index += match_len
2034
+ if has_terminal?('sun', false, index)
2035
+ r1 = instantiate_node(DayName,input, index...(index + 3))
2036
+ @index += 3
2099
2037
  else
2100
- terminal_parse_failure('\'sun\'')
2038
+ terminal_parse_failure('sun')
2101
2039
  r1 = nil
2102
2040
  end
2103
2041
  if r1
2104
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2105
2042
  r0 = r1
2106
2043
  else
2107
- if (match_len = has_terminal?('mon', false, index))
2108
- r2 = instantiate_node(DayName,input, index...(index + match_len))
2109
- @index += match_len
2044
+ if has_terminal?('mon', false, index)
2045
+ r2 = instantiate_node(DayName,input, index...(index + 3))
2046
+ @index += 3
2110
2047
  else
2111
- terminal_parse_failure('\'mon\'')
2048
+ terminal_parse_failure('mon')
2112
2049
  r2 = nil
2113
2050
  end
2114
2051
  if r2
2115
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2116
2052
  r0 = r2
2117
2053
  else
2118
- if (match_len = has_terminal?('tue', false, index))
2119
- r3 = instantiate_node(DayName,input, index...(index + match_len))
2120
- @index += match_len
2054
+ if has_terminal?('tue', false, index)
2055
+ r3 = instantiate_node(DayName,input, index...(index + 3))
2056
+ @index += 3
2121
2057
  else
2122
- terminal_parse_failure('\'tue\'')
2058
+ terminal_parse_failure('tue')
2123
2059
  r3 = nil
2124
2060
  end
2125
2061
  if r3
2126
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
2127
2062
  r0 = r3
2128
2063
  else
2129
- if (match_len = has_terminal?('wed', false, index))
2130
- r4 = instantiate_node(DayName,input, index...(index + match_len))
2131
- @index += match_len
2064
+ if has_terminal?('wed', false, index)
2065
+ r4 = instantiate_node(DayName,input, index...(index + 3))
2066
+ @index += 3
2132
2067
  else
2133
- terminal_parse_failure('\'wed\'')
2068
+ terminal_parse_failure('wed')
2134
2069
  r4 = nil
2135
2070
  end
2136
2071
  if r4
2137
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
2138
2072
  r0 = r4
2139
2073
  else
2140
- if (match_len = has_terminal?('thu', false, index))
2141
- r5 = instantiate_node(DayName,input, index...(index + match_len))
2142
- @index += match_len
2074
+ if has_terminal?('thu', false, index)
2075
+ r5 = instantiate_node(DayName,input, index...(index + 3))
2076
+ @index += 3
2143
2077
  else
2144
- terminal_parse_failure('\'thu\'')
2078
+ terminal_parse_failure('thu')
2145
2079
  r5 = nil
2146
2080
  end
2147
2081
  if r5
2148
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
2149
2082
  r0 = r5
2150
2083
  else
2151
- if (match_len = has_terminal?('fri', false, index))
2152
- r6 = instantiate_node(DayName,input, index...(index + match_len))
2153
- @index += match_len
2084
+ if has_terminal?('fri', false, index)
2085
+ r6 = instantiate_node(DayName,input, index...(index + 3))
2086
+ @index += 3
2154
2087
  else
2155
- terminal_parse_failure('\'fri\'')
2088
+ terminal_parse_failure('fri')
2156
2089
  r6 = nil
2157
2090
  end
2158
2091
  if r6
2159
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
2160
2092
  r0 = r6
2161
2093
  else
2162
- if (match_len = has_terminal?('sat', false, index))
2163
- r7 = instantiate_node(DayName,input, index...(index + match_len))
2164
- @index += match_len
2094
+ if has_terminal?('sat', false, index)
2095
+ r7 = instantiate_node(DayName,input, index...(index + 3))
2096
+ @index += 3
2165
2097
  else
2166
- terminal_parse_failure('\'sat\'')
2098
+ terminal_parse_failure('sat')
2167
2099
  r7 = nil
2168
2100
  end
2169
2101
  if r7
2170
- r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
2171
2102
  r0 = r7
2172
2103
  else
2173
2104
  @index = i0
@@ -2190,7 +2121,7 @@ module Timing
2190
2121
  if node_cache[:month_name].has_key?(index)
2191
2122
  cached = node_cache[:month_name][index]
2192
2123
  if cached
2193
- node_cache[:month_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2124
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2194
2125
  @index = cached.interval.end
2195
2126
  end
2196
2127
  return cached
@@ -2199,12 +2130,10 @@ module Timing
2199
2130
  i0 = index
2200
2131
  r1 = _nt_long_month_name
2201
2132
  if r1
2202
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2203
2133
  r0 = r1
2204
2134
  else
2205
2135
  r2 = _nt_short_month_name
2206
2136
  if r2
2207
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2208
2137
  r0 = r2
2209
2138
  else
2210
2139
  @index = i0
@@ -2222,143 +2151,131 @@ module Timing
2222
2151
  if node_cache[:long_month_name].has_key?(index)
2223
2152
  cached = node_cache[:long_month_name][index]
2224
2153
  if cached
2225
- node_cache[:long_month_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2154
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2226
2155
  @index = cached.interval.end
2227
2156
  end
2228
2157
  return cached
2229
2158
  end
2230
2159
 
2231
2160
  i0 = index
2232
- if (match_len = has_terminal?('january', false, index))
2233
- r1 = instantiate_node(MonthName,input, index...(index + match_len))
2234
- @index += match_len
2161
+ if has_terminal?('january', false, index)
2162
+ r1 = instantiate_node(MonthName,input, index...(index + 7))
2163
+ @index += 7
2235
2164
  else
2236
- terminal_parse_failure('\'january\'')
2165
+ terminal_parse_failure('january')
2237
2166
  r1 = nil
2238
2167
  end
2239
2168
  if r1
2240
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2241
2169
  r0 = r1
2242
2170
  else
2243
- if (match_len = has_terminal?('february', false, index))
2244
- r2 = instantiate_node(MonthName,input, index...(index + match_len))
2245
- @index += match_len
2171
+ if has_terminal?('february', false, index)
2172
+ r2 = instantiate_node(MonthName,input, index...(index + 8))
2173
+ @index += 8
2246
2174
  else
2247
- terminal_parse_failure('\'february\'')
2175
+ terminal_parse_failure('february')
2248
2176
  r2 = nil
2249
2177
  end
2250
2178
  if r2
2251
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2252
2179
  r0 = r2
2253
2180
  else
2254
- if (match_len = has_terminal?('march', false, index))
2255
- r3 = instantiate_node(MonthName,input, index...(index + match_len))
2256
- @index += match_len
2181
+ if has_terminal?('march', false, index)
2182
+ r3 = instantiate_node(MonthName,input, index...(index + 5))
2183
+ @index += 5
2257
2184
  else
2258
- terminal_parse_failure('\'march\'')
2185
+ terminal_parse_failure('march')
2259
2186
  r3 = nil
2260
2187
  end
2261
2188
  if r3
2262
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
2263
2189
  r0 = r3
2264
2190
  else
2265
- if (match_len = has_terminal?('april', false, index))
2266
- r4 = instantiate_node(MonthName,input, index...(index + match_len))
2267
- @index += match_len
2191
+ if has_terminal?('april', false, index)
2192
+ r4 = instantiate_node(MonthName,input, index...(index + 5))
2193
+ @index += 5
2268
2194
  else
2269
- terminal_parse_failure('\'april\'')
2195
+ terminal_parse_failure('april')
2270
2196
  r4 = nil
2271
2197
  end
2272
2198
  if r4
2273
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
2274
2199
  r0 = r4
2275
2200
  else
2276
- if (match_len = has_terminal?('may', false, index))
2277
- r5 = instantiate_node(MonthName,input, index...(index + match_len))
2278
- @index += match_len
2201
+ if has_terminal?('may', false, index)
2202
+ r5 = instantiate_node(MonthName,input, index...(index + 3))
2203
+ @index += 3
2279
2204
  else
2280
- terminal_parse_failure('\'may\'')
2205
+ terminal_parse_failure('may')
2281
2206
  r5 = nil
2282
2207
  end
2283
2208
  if r5
2284
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
2285
2209
  r0 = r5
2286
2210
  else
2287
- if (match_len = has_terminal?('june', false, index))
2288
- r6 = instantiate_node(MonthName,input, index...(index + match_len))
2289
- @index += match_len
2211
+ if has_terminal?('june', false, index)
2212
+ r6 = instantiate_node(MonthName,input, index...(index + 4))
2213
+ @index += 4
2290
2214
  else
2291
- terminal_parse_failure('\'june\'')
2215
+ terminal_parse_failure('june')
2292
2216
  r6 = nil
2293
2217
  end
2294
2218
  if r6
2295
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
2296
2219
  r0 = r6
2297
2220
  else
2298
- if (match_len = has_terminal?('july', false, index))
2299
- r7 = instantiate_node(MonthName,input, index...(index + match_len))
2300
- @index += match_len
2221
+ if has_terminal?('july', false, index)
2222
+ r7 = instantiate_node(MonthName,input, index...(index + 4))
2223
+ @index += 4
2301
2224
  else
2302
- terminal_parse_failure('\'july\'')
2225
+ terminal_parse_failure('july')
2303
2226
  r7 = nil
2304
2227
  end
2305
2228
  if r7
2306
- r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
2307
2229
  r0 = r7
2308
2230
  else
2309
- if (match_len = has_terminal?('august', false, index))
2310
- r8 = instantiate_node(MonthName,input, index...(index + match_len))
2311
- @index += match_len
2231
+ if has_terminal?('august', false, index)
2232
+ r8 = instantiate_node(MonthName,input, index...(index + 6))
2233
+ @index += 6
2312
2234
  else
2313
- terminal_parse_failure('\'august\'')
2235
+ terminal_parse_failure('august')
2314
2236
  r8 = nil
2315
2237
  end
2316
2238
  if r8
2317
- r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
2318
2239
  r0 = r8
2319
2240
  else
2320
- if (match_len = has_terminal?('september', false, index))
2321
- r9 = instantiate_node(MonthName,input, index...(index + match_len))
2322
- @index += match_len
2241
+ if has_terminal?('september', false, index)
2242
+ r9 = instantiate_node(MonthName,input, index...(index + 9))
2243
+ @index += 9
2323
2244
  else
2324
- terminal_parse_failure('\'september\'')
2245
+ terminal_parse_failure('september')
2325
2246
  r9 = nil
2326
2247
  end
2327
2248
  if r9
2328
- r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
2329
2249
  r0 = r9
2330
2250
  else
2331
- if (match_len = has_terminal?('october', false, index))
2332
- r10 = instantiate_node(MonthName,input, index...(index + match_len))
2333
- @index += match_len
2251
+ if has_terminal?('october', false, index)
2252
+ r10 = instantiate_node(MonthName,input, index...(index + 7))
2253
+ @index += 7
2334
2254
  else
2335
- terminal_parse_failure('\'october\'')
2255
+ terminal_parse_failure('october')
2336
2256
  r10 = nil
2337
2257
  end
2338
2258
  if r10
2339
- r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
2340
2259
  r0 = r10
2341
2260
  else
2342
- if (match_len = has_terminal?('november', false, index))
2343
- r11 = instantiate_node(MonthName,input, index...(index + match_len))
2344
- @index += match_len
2261
+ if has_terminal?('november', false, index)
2262
+ r11 = instantiate_node(MonthName,input, index...(index + 8))
2263
+ @index += 8
2345
2264
  else
2346
- terminal_parse_failure('\'november\'')
2265
+ terminal_parse_failure('november')
2347
2266
  r11 = nil
2348
2267
  end
2349
2268
  if r11
2350
- r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
2351
2269
  r0 = r11
2352
2270
  else
2353
- if (match_len = has_terminal?('december', false, index))
2354
- r12 = instantiate_node(MonthName,input, index...(index + match_len))
2355
- @index += match_len
2271
+ if has_terminal?('december', false, index)
2272
+ r12 = instantiate_node(MonthName,input, index...(index + 8))
2273
+ @index += 8
2356
2274
  else
2357
- terminal_parse_failure('\'december\'')
2275
+ terminal_parse_failure('december')
2358
2276
  r12 = nil
2359
2277
  end
2360
2278
  if r12
2361
- r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
2362
2279
  r0 = r12
2363
2280
  else
2364
2281
  @index = i0
@@ -2386,143 +2303,131 @@ module Timing
2386
2303
  if node_cache[:short_month_name].has_key?(index)
2387
2304
  cached = node_cache[:short_month_name][index]
2388
2305
  if cached
2389
- node_cache[:short_month_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2306
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2390
2307
  @index = cached.interval.end
2391
2308
  end
2392
2309
  return cached
2393
2310
  end
2394
2311
 
2395
2312
  i0 = index
2396
- if (match_len = has_terminal?('jan', false, index))
2397
- r1 = instantiate_node(MonthName,input, index...(index + match_len))
2398
- @index += match_len
2313
+ if has_terminal?('jan', false, index)
2314
+ r1 = instantiate_node(MonthName,input, index...(index + 3))
2315
+ @index += 3
2399
2316
  else
2400
- terminal_parse_failure('\'jan\'')
2317
+ terminal_parse_failure('jan')
2401
2318
  r1 = nil
2402
2319
  end
2403
2320
  if r1
2404
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2405
2321
  r0 = r1
2406
2322
  else
2407
- if (match_len = has_terminal?('feb', false, index))
2408
- r2 = instantiate_node(MonthName,input, index...(index + match_len))
2409
- @index += match_len
2323
+ if has_terminal?('feb', false, index)
2324
+ r2 = instantiate_node(MonthName,input, index...(index + 3))
2325
+ @index += 3
2410
2326
  else
2411
- terminal_parse_failure('\'feb\'')
2327
+ terminal_parse_failure('feb')
2412
2328
  r2 = nil
2413
2329
  end
2414
2330
  if r2
2415
- r2 = SyntaxNode.new(input, (index-1)...index) if r2 == true
2416
2331
  r0 = r2
2417
2332
  else
2418
- if (match_len = has_terminal?('mar', false, index))
2419
- r3 = instantiate_node(MonthName,input, index...(index + match_len))
2420
- @index += match_len
2333
+ if has_terminal?('mar', false, index)
2334
+ r3 = instantiate_node(MonthName,input, index...(index + 3))
2335
+ @index += 3
2421
2336
  else
2422
- terminal_parse_failure('\'mar\'')
2337
+ terminal_parse_failure('mar')
2423
2338
  r3 = nil
2424
2339
  end
2425
2340
  if r3
2426
- r3 = SyntaxNode.new(input, (index-1)...index) if r3 == true
2427
2341
  r0 = r3
2428
2342
  else
2429
- if (match_len = has_terminal?('apr', false, index))
2430
- r4 = instantiate_node(MonthName,input, index...(index + match_len))
2431
- @index += match_len
2343
+ if has_terminal?('apr', false, index)
2344
+ r4 = instantiate_node(MonthName,input, index...(index + 3))
2345
+ @index += 3
2432
2346
  else
2433
- terminal_parse_failure('\'apr\'')
2347
+ terminal_parse_failure('apr')
2434
2348
  r4 = nil
2435
2349
  end
2436
2350
  if r4
2437
- r4 = SyntaxNode.new(input, (index-1)...index) if r4 == true
2438
2351
  r0 = r4
2439
2352
  else
2440
- if (match_len = has_terminal?('may', false, index))
2441
- r5 = instantiate_node(MonthName,input, index...(index + match_len))
2442
- @index += match_len
2353
+ if has_terminal?('may', false, index)
2354
+ r5 = instantiate_node(MonthName,input, index...(index + 3))
2355
+ @index += 3
2443
2356
  else
2444
- terminal_parse_failure('\'may\'')
2357
+ terminal_parse_failure('may')
2445
2358
  r5 = nil
2446
2359
  end
2447
2360
  if r5
2448
- r5 = SyntaxNode.new(input, (index-1)...index) if r5 == true
2449
2361
  r0 = r5
2450
2362
  else
2451
- if (match_len = has_terminal?('jun', false, index))
2452
- r6 = instantiate_node(MonthName,input, index...(index + match_len))
2453
- @index += match_len
2363
+ if has_terminal?('jun', false, index)
2364
+ r6 = instantiate_node(MonthName,input, index...(index + 3))
2365
+ @index += 3
2454
2366
  else
2455
- terminal_parse_failure('\'jun\'')
2367
+ terminal_parse_failure('jun')
2456
2368
  r6 = nil
2457
2369
  end
2458
2370
  if r6
2459
- r6 = SyntaxNode.new(input, (index-1)...index) if r6 == true
2460
2371
  r0 = r6
2461
2372
  else
2462
- if (match_len = has_terminal?('jul', false, index))
2463
- r7 = instantiate_node(MonthName,input, index...(index + match_len))
2464
- @index += match_len
2373
+ if has_terminal?('jul', false, index)
2374
+ r7 = instantiate_node(MonthName,input, index...(index + 3))
2375
+ @index += 3
2465
2376
  else
2466
- terminal_parse_failure('\'jul\'')
2377
+ terminal_parse_failure('jul')
2467
2378
  r7 = nil
2468
2379
  end
2469
2380
  if r7
2470
- r7 = SyntaxNode.new(input, (index-1)...index) if r7 == true
2471
2381
  r0 = r7
2472
2382
  else
2473
- if (match_len = has_terminal?('aug', false, index))
2474
- r8 = instantiate_node(MonthName,input, index...(index + match_len))
2475
- @index += match_len
2383
+ if has_terminal?('aug', false, index)
2384
+ r8 = instantiate_node(MonthName,input, index...(index + 3))
2385
+ @index += 3
2476
2386
  else
2477
- terminal_parse_failure('\'aug\'')
2387
+ terminal_parse_failure('aug')
2478
2388
  r8 = nil
2479
2389
  end
2480
2390
  if r8
2481
- r8 = SyntaxNode.new(input, (index-1)...index) if r8 == true
2482
2391
  r0 = r8
2483
2392
  else
2484
- if (match_len = has_terminal?('sep', false, index))
2485
- r9 = instantiate_node(MonthName,input, index...(index + match_len))
2486
- @index += match_len
2393
+ if has_terminal?('sep', false, index)
2394
+ r9 = instantiate_node(MonthName,input, index...(index + 3))
2395
+ @index += 3
2487
2396
  else
2488
- terminal_parse_failure('\'sep\'')
2397
+ terminal_parse_failure('sep')
2489
2398
  r9 = nil
2490
2399
  end
2491
2400
  if r9
2492
- r9 = SyntaxNode.new(input, (index-1)...index) if r9 == true
2493
2401
  r0 = r9
2494
2402
  else
2495
- if (match_len = has_terminal?('oct', false, index))
2496
- r10 = instantiate_node(MonthName,input, index...(index + match_len))
2497
- @index += match_len
2403
+ if has_terminal?('oct', false, index)
2404
+ r10 = instantiate_node(MonthName,input, index...(index + 3))
2405
+ @index += 3
2498
2406
  else
2499
- terminal_parse_failure('\'oct\'')
2407
+ terminal_parse_failure('oct')
2500
2408
  r10 = nil
2501
2409
  end
2502
2410
  if r10
2503
- r10 = SyntaxNode.new(input, (index-1)...index) if r10 == true
2504
2411
  r0 = r10
2505
2412
  else
2506
- if (match_len = has_terminal?('nov', false, index))
2507
- r11 = instantiate_node(MonthName,input, index...(index + match_len))
2508
- @index += match_len
2413
+ if has_terminal?('nov', false, index)
2414
+ r11 = instantiate_node(MonthName,input, index...(index + 3))
2415
+ @index += 3
2509
2416
  else
2510
- terminal_parse_failure('\'nov\'')
2417
+ terminal_parse_failure('nov')
2511
2418
  r11 = nil
2512
2419
  end
2513
2420
  if r11
2514
- r11 = SyntaxNode.new(input, (index-1)...index) if r11 == true
2515
2421
  r0 = r11
2516
2422
  else
2517
- if (match_len = has_terminal?('dec', false, index))
2518
- r12 = instantiate_node(MonthName,input, index...(index + match_len))
2519
- @index += match_len
2423
+ if has_terminal?('dec', false, index)
2424
+ r12 = instantiate_node(MonthName,input, index...(index + 3))
2425
+ @index += 3
2520
2426
  else
2521
- terminal_parse_failure('\'dec\'')
2427
+ terminal_parse_failure('dec')
2522
2428
  r12 = nil
2523
2429
  end
2524
2430
  if r12
2525
- r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
2526
2431
  r0 = r12
2527
2432
  else
2528
2433
  @index = i0
@@ -2553,29 +2458,27 @@ module Timing
2553
2458
  if node_cache[:zone_offset].has_key?(index)
2554
2459
  cached = node_cache[:zone_offset][index]
2555
2460
  if cached
2556
- node_cache[:zone_offset][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2461
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2557
2462
  @index = cached.interval.end
2558
2463
  end
2559
2464
  return cached
2560
2465
  end
2561
2466
 
2562
2467
  i0, s0 = index, []
2563
- if has_terminal?(@regexps[gr = '\A[+-]'] ||= Regexp.new(gr), :regexp, index)
2468
+ if has_terminal?('\G[+-]', true, index)
2564
2469
  r1 = true
2565
2470
  @index += 1
2566
2471
  else
2567
- terminal_parse_failure('[+-]')
2568
2472
  r1 = nil
2569
2473
  end
2570
2474
  s0 << r1
2571
2475
  if r1
2572
2476
  s2, i2 = [], index
2573
2477
  loop do
2574
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
2478
+ if has_terminal?('\G[\\d]', true, index)
2575
2479
  r3 = true
2576
2480
  @index += 1
2577
2481
  else
2578
- terminal_parse_failure('[\\d]')
2579
2482
  r3 = nil
2580
2483
  end
2581
2484
  if r3
@@ -2591,18 +2494,15 @@ module Timing
2591
2494
  @index = i2
2592
2495
  r2 = nil
2593
2496
  else
2594
- if s2.size < 2
2595
- @terminal_failures.pop
2596
- end
2597
2497
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2598
2498
  end
2599
2499
  s0 << r2
2600
2500
  if r2
2601
- if (match_len = has_terminal?(':', false, index))
2602
- r5 = true
2603
- @index += match_len
2501
+ if has_terminal?(':', false, index)
2502
+ r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
2503
+ @index += 1
2604
2504
  else
2605
- terminal_parse_failure('\':\'')
2505
+ terminal_parse_failure(':')
2606
2506
  r5 = nil
2607
2507
  end
2608
2508
  if r5
@@ -2614,11 +2514,10 @@ module Timing
2614
2514
  if r4
2615
2515
  s6, i6 = [], index
2616
2516
  loop do
2617
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
2517
+ if has_terminal?('\G[\\d]', true, index)
2618
2518
  r7 = true
2619
2519
  @index += 1
2620
2520
  else
2621
- terminal_parse_failure('[\\d]')
2622
2521
  r7 = nil
2623
2522
  end
2624
2523
  if r7
@@ -2634,9 +2533,6 @@ module Timing
2634
2533
  @index = i6
2635
2534
  r6 = nil
2636
2535
  else
2637
- if s6.size < 2
2638
- @terminal_failures.pop
2639
- end
2640
2536
  r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
2641
2537
  end
2642
2538
  s0 << r6
@@ -2661,17 +2557,17 @@ module Timing
2661
2557
  if node_cache[:zone_name].has_key?(index)
2662
2558
  cached = node_cache[:zone_name][index]
2663
2559
  if cached
2664
- node_cache[:zone_name][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2560
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2665
2561
  @index = cached.interval.end
2666
2562
  end
2667
2563
  return cached
2668
2564
  end
2669
2565
 
2670
- if (match_len = has_terminal?('utc', false, index))
2671
- r0 = instantiate_node(ZoneName,input, index...(index + match_len))
2672
- @index += match_len
2566
+ if has_terminal?('utc', false, index)
2567
+ r0 = instantiate_node(ZoneName,input, index...(index + 3))
2568
+ @index += 3
2673
2569
  else
2674
- terminal_parse_failure('\'utc\'')
2570
+ terminal_parse_failure('utc')
2675
2571
  r0 = nil
2676
2572
  end
2677
2573
 
@@ -2691,7 +2587,7 @@ module Timing
2691
2587
  if node_cache[:hour_minute_second].has_key?(index)
2692
2588
  cached = node_cache[:hour_minute_second][index]
2693
2589
  if cached
2694
- node_cache[:hour_minute_second][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2590
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2695
2591
  @index = cached.interval.end
2696
2592
  end
2697
2593
  return cached
@@ -2701,11 +2597,10 @@ module Timing
2701
2597
  i1, s1 = index, []
2702
2598
  s2, i2 = [], index
2703
2599
  loop do
2704
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
2600
+ if has_terminal?('\G[\\d]', true, index)
2705
2601
  r3 = true
2706
2602
  @index += 1
2707
2603
  else
2708
- terminal_parse_failure('[\\d]')
2709
2604
  r3 = nil
2710
2605
  end
2711
2606
  if r3
@@ -2721,29 +2616,25 @@ module Timing
2721
2616
  @index = i2
2722
2617
  r2 = nil
2723
2618
  else
2724
- if s2.size < 2
2725
- @terminal_failures.pop
2726
- end
2727
2619
  r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2728
2620
  end
2729
2621
  s1 << r2
2730
2622
  if r2
2731
- if (match_len = has_terminal?(':', false, index))
2732
- r4 = true
2733
- @index += match_len
2623
+ if has_terminal?(':', false, index)
2624
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2625
+ @index += 1
2734
2626
  else
2735
- terminal_parse_failure('\':\'')
2627
+ terminal_parse_failure(':')
2736
2628
  r4 = nil
2737
2629
  end
2738
2630
  s1 << r4
2739
2631
  if r4
2740
2632
  s5, i5 = [], index
2741
2633
  loop do
2742
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
2634
+ if has_terminal?('\G[\\d]', true, index)
2743
2635
  r6 = true
2744
2636
  @index += 1
2745
2637
  else
2746
- terminal_parse_failure('[\\d]')
2747
2638
  r6 = nil
2748
2639
  end
2749
2640
  if r6
@@ -2759,30 +2650,26 @@ module Timing
2759
2650
  @index = i5
2760
2651
  r5 = nil
2761
2652
  else
2762
- if s5.size < 2
2763
- @terminal_failures.pop
2764
- end
2765
2653
  r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
2766
2654
  end
2767
2655
  s1 << r5
2768
2656
  if r5
2769
2657
  i8, s8 = index, []
2770
- if (match_len = has_terminal?(':', false, index))
2771
- r9 = true
2772
- @index += match_len
2658
+ if has_terminal?(':', false, index)
2659
+ r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
2660
+ @index += 1
2773
2661
  else
2774
- terminal_parse_failure('\':\'')
2662
+ terminal_parse_failure(':')
2775
2663
  r9 = nil
2776
2664
  end
2777
2665
  s8 << r9
2778
2666
  if r9
2779
2667
  s10, i10 = [], index
2780
2668
  loop do
2781
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
2669
+ if has_terminal?('\G[\\d]', true, index)
2782
2670
  r11 = true
2783
2671
  @index += 1
2784
2672
  else
2785
- terminal_parse_failure('[\\d]')
2786
2673
  r11 = nil
2787
2674
  end
2788
2675
  if r11
@@ -2798,9 +2685,6 @@ module Timing
2798
2685
  @index = i10
2799
2686
  r10 = nil
2800
2687
  else
2801
- if s10.size < 2
2802
- @terminal_failures.pop
2803
- end
2804
2688
  r10 = instantiate_node(SyntaxNode,input, i10...index, s10)
2805
2689
  end
2806
2690
  s8 << r10
@@ -2829,29 +2713,26 @@ module Timing
2829
2713
  r1 = nil
2830
2714
  end
2831
2715
  if r1
2832
- r1 = SyntaxNode.new(input, (index-1)...index) if r1 == true
2833
2716
  r0 = r1
2834
2717
  else
2835
- if (match_len = has_terminal?('beginning', false, index))
2836
- r12 = instantiate_node(HourMinuteSecond,input, index...(index + match_len))
2837
- @index += match_len
2718
+ if has_terminal?('beginning', false, index)
2719
+ r12 = instantiate_node(HourMinuteSecond,input, index...(index + 9))
2720
+ @index += 9
2838
2721
  else
2839
- terminal_parse_failure('\'beginning\'')
2722
+ terminal_parse_failure('beginning')
2840
2723
  r12 = nil
2841
2724
  end
2842
2725
  if r12
2843
- r12 = SyntaxNode.new(input, (index-1)...index) if r12 == true
2844
2726
  r0 = r12
2845
2727
  else
2846
- if (match_len = has_terminal?('end', false, index))
2847
- r13 = instantiate_node(HourMinuteSecond,input, index...(index + match_len))
2848
- @index += match_len
2728
+ if has_terminal?('end', false, index)
2729
+ r13 = instantiate_node(HourMinuteSecond,input, index...(index + 3))
2730
+ @index += 3
2849
2731
  else
2850
- terminal_parse_failure('\'end\'')
2732
+ terminal_parse_failure('end')
2851
2733
  r13 = nil
2852
2734
  end
2853
2735
  if r13
2854
- r13 = SyntaxNode.new(input, (index-1)...index) if r13 == true
2855
2736
  r0 = r13
2856
2737
  else
2857
2738
  @index = i0
@@ -2870,7 +2751,7 @@ module Timing
2870
2751
  if node_cache[:integer].has_key?(index)
2871
2752
  cached = node_cache[:integer][index]
2872
2753
  if cached
2873
- node_cache[:integer][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2754
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2874
2755
  @index = cached.interval.end
2875
2756
  end
2876
2757
  return cached
@@ -2878,11 +2759,10 @@ module Timing
2878
2759
 
2879
2760
  s0, i0 = [], index
2880
2761
  loop do
2881
- if has_terminal?(@regexps[gr = '\A[\\d]'] ||= Regexp.new(gr), :regexp, index)
2762
+ if has_terminal?('\G[\\d]', true, index)
2882
2763
  r1 = true
2883
2764
  @index += 1
2884
2765
  else
2885
- terminal_parse_failure('[\\d]')
2886
2766
  r1 = nil
2887
2767
  end
2888
2768
  if r1
@@ -2908,17 +2788,16 @@ module Timing
2908
2788
  if node_cache[:space].has_key?(index)
2909
2789
  cached = node_cache[:space][index]
2910
2790
  if cached
2911
- node_cache[:space][index] = cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2791
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2912
2792
  @index = cached.interval.end
2913
2793
  end
2914
2794
  return cached
2915
2795
  end
2916
2796
 
2917
- if has_terminal?(@regexps[gr = '\A[\\s\\t\\n]'] ||= Regexp.new(gr), :regexp, index)
2797
+ if has_terminal?('\G[\\s\\t\\n]', true, index)
2918
2798
  r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
2919
2799
  @index += 1
2920
2800
  else
2921
- terminal_parse_failure('[\\s\\t\\n]')
2922
2801
  r0 = nil
2923
2802
  end
2924
2803