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.
- checksums.yaml +5 -5
- data/lib/timing/natural_time_language.rb +379 -500
- data/lib/timing/version.rb +1 -1
- data/timing.gemspec +1 -1
- metadata +32 -32
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
331
|
-
r8 = instantiate_node(SyntaxNode,input, index...(index +
|
332
|
-
@index +=
|
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('
|
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
|
-
|
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
|
-
|
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
|
484
|
-
r2 =
|
485
|
-
@index +=
|
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
|
496
|
-
r4 =
|
497
|
-
@index +=
|
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
|
-
|
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
|
-
|
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
|
631
|
-
r7 = instantiate_node(SyntaxNode,input, index...(index +
|
632
|
-
@index +=
|
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('
|
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
|
-
|
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
|
693
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
694
|
-
@index +=
|
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('
|
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
|
-
|
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
|
-
|
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?(
|
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
|
873
|
-
r3 =
|
874
|
-
@index +=
|
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?(
|
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
|
911
|
-
r6 =
|
912
|
-
@index +=
|
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?(
|
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
|
961
|
-
r12 =
|
962
|
-
@index +=
|
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('
|
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?(
|
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
|
1016
|
-
r17 =
|
1017
|
-
@index +=
|
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?(
|
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
|
1054
|
-
r20 =
|
1055
|
-
@index +=
|
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?(
|
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
|
-
|
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
|
1127
|
-
r0 = instantiate_node(Now,input, index...(index +
|
1128
|
-
@index +=
|
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('
|
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
|
-
|
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
|
1151
|
-
r0 = instantiate_node(Today,input, index...(index +
|
1152
|
-
@index +=
|
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('
|
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
|
-
|
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
|
1175
|
-
r0 = instantiate_node(Tomorrow,input, index...(index +
|
1176
|
-
@index +=
|
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('
|
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
|
-
|
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
|
1199
|
-
r0 = instantiate_node(Yesterday,input, index...(index +
|
1200
|
-
@index +=
|
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('
|
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
|
-
|
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
|
-
|
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
|
1255
|
-
r0 = instantiate_node(LastNext,input, index...(index +
|
1256
|
-
@index +=
|
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('
|
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
|
-
|
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
|
1279
|
-
r0 = instantiate_node(LastNext,input, index...(index +
|
1280
|
-
@index +=
|
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('
|
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
|
-
|
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
|
-
|
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
|
1343
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
1344
|
-
@index +=
|
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('
|
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
|
1364
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
1365
|
-
@index +=
|
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('
|
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
|
-
|
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
|
1406
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
1407
|
-
@index +=
|
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('
|
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
|
1427
|
-
r4 = instantiate_node(SyntaxNode,input, index...(index +
|
1428
|
-
@index +=
|
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('
|
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
|
-
|
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
|
-
|
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
|
1493
|
-
r0 = instantiate_node(BeforeFrom,input, index...(index +
|
1494
|
-
@index +=
|
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('
|
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
|
-
|
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
|
1517
|
-
r0 = instantiate_node(BeforeFrom,input, index...(index +
|
1518
|
-
@index +=
|
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('
|
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
|
-
|
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
|
-
|
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
|
1607
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
1608
|
-
@index +=
|
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('
|
1557
|
+
terminal_parse_failure('second')
|
1611
1558
|
r1 = nil
|
1612
1559
|
end
|
1613
1560
|
s0 << r1
|
1614
1561
|
if r1
|
1615
|
-
if
|
1616
|
-
r3 =
|
1617
|
-
@index +=
|
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('
|
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
|
-
|
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
|
1658
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
1659
|
-
@index +=
|
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('
|
1608
|
+
terminal_parse_failure('minute')
|
1662
1609
|
r1 = nil
|
1663
1610
|
end
|
1664
1611
|
s0 << r1
|
1665
1612
|
if r1
|
1666
|
-
if
|
1667
|
-
r3 =
|
1668
|
-
@index +=
|
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('
|
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
|
-
|
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
|
1709
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
1710
|
-
@index +=
|
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('
|
1659
|
+
terminal_parse_failure('hour')
|
1713
1660
|
r1 = nil
|
1714
1661
|
end
|
1715
1662
|
s0 << r1
|
1716
1663
|
if r1
|
1717
|
-
if
|
1718
|
-
r3 =
|
1719
|
-
@index +=
|
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('
|
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
|
-
|
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
|
1760
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
1761
|
-
@index +=
|
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('
|
1710
|
+
terminal_parse_failure('day')
|
1764
1711
|
r1 = nil
|
1765
1712
|
end
|
1766
1713
|
s0 << r1
|
1767
1714
|
if r1
|
1768
|
-
if
|
1769
|
-
r3 =
|
1770
|
-
@index +=
|
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('
|
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
|
-
|
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
|
1811
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
1812
|
-
@index +=
|
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('
|
1761
|
+
terminal_parse_failure('week')
|
1815
1762
|
r1 = nil
|
1816
1763
|
end
|
1817
1764
|
s0 << r1
|
1818
1765
|
if r1
|
1819
|
-
if
|
1820
|
-
r3 =
|
1821
|
-
@index +=
|
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('
|
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
|
-
|
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
|
1862
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
1863
|
-
@index +=
|
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('
|
1812
|
+
terminal_parse_failure('month')
|
1866
1813
|
r1 = nil
|
1867
1814
|
end
|
1868
1815
|
s0 << r1
|
1869
1816
|
if r1
|
1870
|
-
if
|
1871
|
-
r3 =
|
1872
|
-
@index +=
|
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('
|
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
|
-
|
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
|
1913
|
-
r1 = instantiate_node(SyntaxNode,input, index...(index +
|
1914
|
-
@index +=
|
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('
|
1863
|
+
terminal_parse_failure('year')
|
1917
1864
|
r1 = nil
|
1918
1865
|
end
|
1919
1866
|
s0 << r1
|
1920
1867
|
if r1
|
1921
|
-
if
|
1922
|
-
r3 =
|
1923
|
-
@index +=
|
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('
|
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
|
-
|
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
|
-
|
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
|
1993
|
-
r1 = instantiate_node(DayName,input, index...(index +
|
1994
|
-
@index +=
|
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('
|
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
|
2004
|
-
r2 = instantiate_node(DayName,input, index...(index +
|
2005
|
-
@index +=
|
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('
|
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
|
2015
|
-
r3 = instantiate_node(DayName,input, index...(index +
|
2016
|
-
@index +=
|
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('
|
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
|
2026
|
-
r4 = instantiate_node(DayName,input, index...(index +
|
2027
|
-
@index +=
|
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('
|
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
|
2037
|
-
r5 = instantiate_node(DayName,input, index...(index +
|
2038
|
-
@index +=
|
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('
|
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
|
2048
|
-
r6 = instantiate_node(DayName,input, index...(index +
|
2049
|
-
@index +=
|
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('
|
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
|
2059
|
-
r7 = instantiate_node(DayName,input, index...(index +
|
2060
|
-
@index +=
|
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('
|
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
|
-
|
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
|
2097
|
-
r1 = instantiate_node(DayName,input, index...(index +
|
2098
|
-
@index +=
|
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('
|
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
|
2108
|
-
r2 = instantiate_node(DayName,input, index...(index +
|
2109
|
-
@index +=
|
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('
|
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
|
2119
|
-
r3 = instantiate_node(DayName,input, index...(index +
|
2120
|
-
@index +=
|
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('
|
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
|
2130
|
-
r4 = instantiate_node(DayName,input, index...(index +
|
2131
|
-
@index +=
|
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('
|
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
|
2141
|
-
r5 = instantiate_node(DayName,input, index...(index +
|
2142
|
-
@index +=
|
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('
|
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
|
2152
|
-
r6 = instantiate_node(DayName,input, index...(index +
|
2153
|
-
@index +=
|
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('
|
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
|
2163
|
-
r7 = instantiate_node(DayName,input, index...(index +
|
2164
|
-
@index +=
|
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('
|
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
|
-
|
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
|
-
|
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
|
2233
|
-
r1 = instantiate_node(MonthName,input, index...(index +
|
2234
|
-
@index +=
|
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('
|
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
|
2244
|
-
r2 = instantiate_node(MonthName,input, index...(index +
|
2245
|
-
@index +=
|
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('
|
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
|
2255
|
-
r3 = instantiate_node(MonthName,input, index...(index +
|
2256
|
-
@index +=
|
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('
|
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
|
2266
|
-
r4 = instantiate_node(MonthName,input, index...(index +
|
2267
|
-
@index +=
|
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('
|
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
|
2277
|
-
r5 = instantiate_node(MonthName,input, index...(index +
|
2278
|
-
@index +=
|
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('
|
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
|
2288
|
-
r6 = instantiate_node(MonthName,input, index...(index +
|
2289
|
-
@index +=
|
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('
|
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
|
2299
|
-
r7 = instantiate_node(MonthName,input, index...(index +
|
2300
|
-
@index +=
|
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('
|
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
|
2310
|
-
r8 = instantiate_node(MonthName,input, index...(index +
|
2311
|
-
@index +=
|
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('
|
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
|
2321
|
-
r9 = instantiate_node(MonthName,input, index...(index +
|
2322
|
-
@index +=
|
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('
|
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
|
2332
|
-
r10 = instantiate_node(MonthName,input, index...(index +
|
2333
|
-
@index +=
|
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('
|
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
|
2343
|
-
r11 = instantiate_node(MonthName,input, index...(index +
|
2344
|
-
@index +=
|
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('
|
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
|
2354
|
-
r12 = instantiate_node(MonthName,input, index...(index +
|
2355
|
-
@index +=
|
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('
|
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
|
-
|
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
|
2397
|
-
r1 = instantiate_node(MonthName,input, index...(index +
|
2398
|
-
@index +=
|
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('
|
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
|
2408
|
-
r2 = instantiate_node(MonthName,input, index...(index +
|
2409
|
-
@index +=
|
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('
|
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
|
2419
|
-
r3 = instantiate_node(MonthName,input, index...(index +
|
2420
|
-
@index +=
|
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('
|
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
|
2430
|
-
r4 = instantiate_node(MonthName,input, index...(index +
|
2431
|
-
@index +=
|
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('
|
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
|
2441
|
-
r5 = instantiate_node(MonthName,input, index...(index +
|
2442
|
-
@index +=
|
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('
|
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
|
2452
|
-
r6 = instantiate_node(MonthName,input, index...(index +
|
2453
|
-
@index +=
|
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('
|
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
|
2463
|
-
r7 = instantiate_node(MonthName,input, index...(index +
|
2464
|
-
@index +=
|
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('
|
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
|
2474
|
-
r8 = instantiate_node(MonthName,input, index...(index +
|
2475
|
-
@index +=
|
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('
|
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
|
2485
|
-
r9 = instantiate_node(MonthName,input, index...(index +
|
2486
|
-
@index +=
|
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('
|
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
|
2496
|
-
r10 = instantiate_node(MonthName,input, index...(index +
|
2497
|
-
@index +=
|
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('
|
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
|
2507
|
-
r11 = instantiate_node(MonthName,input, index...(index +
|
2508
|
-
@index +=
|
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('
|
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
|
2518
|
-
r12 = instantiate_node(MonthName,input, index...(index +
|
2519
|
-
@index +=
|
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('
|
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
|
-
|
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?(
|
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?(
|
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
|
2602
|
-
r5 =
|
2603
|
-
@index +=
|
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?(
|
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
|
-
|
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
|
2671
|
-
r0 = instantiate_node(ZoneName,input, index...(index +
|
2672
|
-
@index +=
|
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('
|
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
|
-
|
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?(
|
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
|
2732
|
-
r4 =
|
2733
|
-
@index +=
|
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?(
|
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
|
2771
|
-
r9 =
|
2772
|
-
@index +=
|
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?(
|
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
|
2836
|
-
r12 = instantiate_node(HourMinuteSecond,input, index...(index +
|
2837
|
-
@index +=
|
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('
|
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
|
2847
|
-
r13 = instantiate_node(HourMinuteSecond,input, index...(index +
|
2848
|
-
@index +=
|
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('
|
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
|
-
|
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?(
|
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
|
-
|
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?(
|
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
|
|