timing 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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