@malloydata/malloy-filter 0.0.350 → 0.0.351

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.
Files changed (46) hide show
  1. package/README.md +3 -3
  2. package/dist/clause_utils.d.ts +7 -62
  3. package/dist/clause_utils.js +0 -14
  4. package/dist/clause_utils.js.map +1 -1
  5. package/dist/filter_interface.d.ts +5 -5
  6. package/dist/filter_interface.js +13 -5
  7. package/dist/filter_interface.js.map +1 -1
  8. package/dist/lib/fexpr_number_parser.d.ts +9 -26
  9. package/dist/lib/fexpr_number_parser.js +1476 -83
  10. package/dist/lib/fexpr_number_parser.js.map +1 -1
  11. package/dist/lib/fexpr_string_parser.d.ts +9 -26
  12. package/dist/lib/fexpr_string_parser.js +709 -50
  13. package/dist/lib/fexpr_string_parser.js.map +1 -1
  14. package/dist/lib/ftemporal_parser.d.ts +9 -26
  15. package/dist/lib/ftemporal_parser.js +4095 -163
  16. package/dist/lib/ftemporal_parser.js.map +1 -1
  17. package/dist/number_filter_expression.js +3 -41
  18. package/dist/number_filter_expression.js.map +1 -1
  19. package/dist/{nearley_parse.d.ts → peggy_parse.d.ts} +1 -2
  20. package/dist/peggy_parse.js +40 -0
  21. package/dist/peggy_parse.js.map +1 -0
  22. package/dist/string_filter_expression.js +3 -46
  23. package/dist/string_filter_expression.js.map +1 -1
  24. package/dist/temporal_filter_expression.js +3 -41
  25. package/dist/temporal_filter_expression.js.map +1 -1
  26. package/femto-config.motly +19 -0
  27. package/package.json +9 -11
  28. package/src/clause_utils.ts +9 -23
  29. package/src/filter_interface.ts +14 -8
  30. package/src/grammars/fexpr_number.peggy +46 -0
  31. package/src/grammars/fexpr_string.peggy +32 -0
  32. package/src/grammars/ftemporal.peggy +112 -0
  33. package/src/lib/fexpr_number_parser.js +1411 -0
  34. package/src/lib/fexpr_string_parser.js +740 -0
  35. package/src/lib/ftemporal_parser.js +3641 -0
  36. package/src/number_filter_expression.ts +3 -7
  37. package/src/peggy_parse.ts +50 -0
  38. package/src/string_filter_expression.ts +3 -12
  39. package/src/temporal_filter_expression.ts +3 -7
  40. package/tsconfig.json +3 -2
  41. package/dist/nearley_parse.js +0 -51
  42. package/dist/nearley_parse.js.map +0 -1
  43. package/src/lib/fexpr_number_parser.ts +0 -126
  44. package/src/lib/fexpr_string_parser.ts +0 -84
  45. package/src/lib/ftemporal_parser.ts +0 -246
  46. package/src/nearley_parse.ts +0 -53
@@ -0,0 +1,3641 @@
1
+ // @generated by Peggy 4.2.0.
2
+ //
3
+ // https://peggyjs.org/
4
+
5
+ "use strict";
6
+
7
+
8
+
9
+ const {temporalNot, joinTemporal, timeLiteral, mkUnits} = require('../clause_utils');
10
+
11
+ function peg$subclass(child, parent) {
12
+ function C() { this.constructor = child; }
13
+ C.prototype = parent.prototype;
14
+ child.prototype = new C();
15
+ }
16
+
17
+ function peg$SyntaxError(message, expected, found, location) {
18
+ var self = Error.call(this, message);
19
+ // istanbul ignore next Check is a necessary evil to support older environments
20
+ if (Object.setPrototypeOf) {
21
+ Object.setPrototypeOf(self, peg$SyntaxError.prototype);
22
+ }
23
+ self.expected = expected;
24
+ self.found = found;
25
+ self.location = location;
26
+ self.name = "SyntaxError";
27
+ return self;
28
+ }
29
+
30
+ peg$subclass(peg$SyntaxError, Error);
31
+
32
+ function peg$padEnd(str, targetLength, padString) {
33
+ padString = padString || " ";
34
+ if (str.length > targetLength) { return str; }
35
+ targetLength -= str.length;
36
+ padString += padString.repeat(targetLength);
37
+ return str + padString.slice(0, targetLength);
38
+ }
39
+
40
+ peg$SyntaxError.prototype.format = function(sources) {
41
+ var str = "Error: " + this.message;
42
+ if (this.location) {
43
+ var src = null;
44
+ var k;
45
+ for (k = 0; k < sources.length; k++) {
46
+ if (sources[k].source === this.location.source) {
47
+ src = sources[k].text.split(/\r\n|\n|\r/g);
48
+ break;
49
+ }
50
+ }
51
+ var s = this.location.start;
52
+ var offset_s = (this.location.source && (typeof this.location.source.offset === "function"))
53
+ ? this.location.source.offset(s)
54
+ : s;
55
+ var loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column;
56
+ if (src) {
57
+ var e = this.location.end;
58
+ var filler = peg$padEnd("", offset_s.line.toString().length, ' ');
59
+ var line = src[s.line - 1];
60
+ var last = s.line === e.line ? e.column : line.length + 1;
61
+ var hatLen = (last - s.column) || 1;
62
+ str += "\n --> " + loc + "\n"
63
+ + filler + " |\n"
64
+ + offset_s.line + " | " + line + "\n"
65
+ + filler + " | " + peg$padEnd("", s.column - 1, ' ')
66
+ + peg$padEnd("", hatLen, "^");
67
+ } else {
68
+ str += "\n at " + loc;
69
+ }
70
+ }
71
+ return str;
72
+ };
73
+
74
+ peg$SyntaxError.buildMessage = function(expected, found) {
75
+ var DESCRIBE_EXPECTATION_FNS = {
76
+ literal: function(expectation) {
77
+ return "\"" + literalEscape(expectation.text) + "\"";
78
+ },
79
+
80
+ class: function(expectation) {
81
+ var escapedParts = expectation.parts.map(function(part) {
82
+ return Array.isArray(part)
83
+ ? classEscape(part[0]) + "-" + classEscape(part[1])
84
+ : classEscape(part);
85
+ });
86
+
87
+ return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";
88
+ },
89
+
90
+ any: function() {
91
+ return "any character";
92
+ },
93
+
94
+ end: function() {
95
+ return "end of input";
96
+ },
97
+
98
+ other: function(expectation) {
99
+ return expectation.description;
100
+ }
101
+ };
102
+
103
+ function hex(ch) {
104
+ return ch.charCodeAt(0).toString(16).toUpperCase();
105
+ }
106
+
107
+ function literalEscape(s) {
108
+ return s
109
+ .replace(/\\/g, "\\\\")
110
+ .replace(/"/g, "\\\"")
111
+ .replace(/\0/g, "\\0")
112
+ .replace(/\t/g, "\\t")
113
+ .replace(/\n/g, "\\n")
114
+ .replace(/\r/g, "\\r")
115
+ .replace(/[\x00-\x0F]/g, function(ch) { return "\\x0" + hex(ch); })
116
+ .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return "\\x" + hex(ch); });
117
+ }
118
+
119
+ function classEscape(s) {
120
+ return s
121
+ .replace(/\\/g, "\\\\")
122
+ .replace(/\]/g, "\\]")
123
+ .replace(/\^/g, "\\^")
124
+ .replace(/-/g, "\\-")
125
+ .replace(/\0/g, "\\0")
126
+ .replace(/\t/g, "\\t")
127
+ .replace(/\n/g, "\\n")
128
+ .replace(/\r/g, "\\r")
129
+ .replace(/[\x00-\x0F]/g, function(ch) { return "\\x0" + hex(ch); })
130
+ .replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return "\\x" + hex(ch); });
131
+ }
132
+
133
+ function describeExpectation(expectation) {
134
+ return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
135
+ }
136
+
137
+ function describeExpected(expected) {
138
+ var descriptions = expected.map(describeExpectation);
139
+ var i, j;
140
+
141
+ descriptions.sort();
142
+
143
+ if (descriptions.length > 0) {
144
+ for (i = 1, j = 1; i < descriptions.length; i++) {
145
+ if (descriptions[i - 1] !== descriptions[i]) {
146
+ descriptions[j] = descriptions[i];
147
+ j++;
148
+ }
149
+ }
150
+ descriptions.length = j;
151
+ }
152
+
153
+ switch (descriptions.length) {
154
+ case 1:
155
+ return descriptions[0];
156
+
157
+ case 2:
158
+ return descriptions[0] + " or " + descriptions[1];
159
+
160
+ default:
161
+ return descriptions.slice(0, -1).join(", ")
162
+ + ", or "
163
+ + descriptions[descriptions.length - 1];
164
+ }
165
+ }
166
+
167
+ function describeFound(found) {
168
+ return found ? "\"" + literalEscape(found) + "\"" : "end of input";
169
+ }
170
+
171
+ return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
172
+ };
173
+
174
+ function peg$parse(input, options) {
175
+ options = options !== undefined ? options : {};
176
+
177
+ var peg$FAILED = {};
178
+ var peg$source = options.grammarSource;
179
+
180
+ var peg$startRuleFunctions = { temporalFilter: peg$parsetemporalFilter };
181
+ var peg$startRuleFunction = peg$parsetemporalFilter;
182
+
183
+ var peg$c0 = "(";
184
+ var peg$c1 = ")";
185
+ var peg$c2 = "second";
186
+ var peg$c3 = "minute";
187
+ var peg$c4 = "hour";
188
+ var peg$c5 = "day";
189
+ var peg$c6 = "week";
190
+ var peg$c7 = "month";
191
+ var peg$c8 = "quarter";
192
+ var peg$c9 = "year";
193
+ var peg$c10 = "s";
194
+ var peg$c11 = "-";
195
+ var peg$c12 = ":";
196
+ var peg$c13 = "not";
197
+ var peg$c14 = "null";
198
+ var peg$c15 = "to";
199
+ var peg$c16 = "now";
200
+ var peg$c17 = "last";
201
+ var peg$c18 = "this";
202
+ var peg$c19 = "next";
203
+ var peg$c20 = "ago";
204
+ var peg$c21 = "from";
205
+ var peg$c22 = "before";
206
+ var peg$c23 = "after";
207
+ var peg$c24 = "through";
208
+ var peg$c25 = "starting";
209
+ var peg$c26 = "for";
210
+ var peg$c27 = "today";
211
+ var peg$c28 = "yesterday";
212
+ var peg$c29 = "tomorrow";
213
+ var peg$c30 = "and";
214
+ var peg$c31 = "or";
215
+ var peg$c32 = "monday";
216
+ var peg$c33 = "tuesday";
217
+ var peg$c34 = "wednesday";
218
+ var peg$c35 = "thursday";
219
+ var peg$c36 = "friday";
220
+ var peg$c37 = "saturday";
221
+ var peg$c38 = "sunday";
222
+
223
+ var peg$r0 = /^[0-9]/;
224
+ var peg$r1 = /^[ Tt]/;
225
+ var peg$r2 = /^[.,]/;
226
+ var peg$r3 = /^[Ww]/;
227
+ var peg$r4 = /^[Kk]/;
228
+ var peg$r5 = /^[Qq]/;
229
+ var peg$r6 = /^[1234]/;
230
+ var peg$r7 = /^[a-zA-Z]/;
231
+ var peg$r8 = /^[ \t]/;
232
+
233
+ var peg$e0 = peg$literalExpectation("(", false);
234
+ var peg$e1 = peg$literalExpectation(")", false);
235
+ var peg$e2 = peg$classExpectation([["0", "9"]], false, false);
236
+ var peg$e3 = peg$literalExpectation("second", true);
237
+ var peg$e4 = peg$literalExpectation("minute", true);
238
+ var peg$e5 = peg$literalExpectation("hour", true);
239
+ var peg$e6 = peg$literalExpectation("day", true);
240
+ var peg$e7 = peg$literalExpectation("week", true);
241
+ var peg$e8 = peg$literalExpectation("month", true);
242
+ var peg$e9 = peg$literalExpectation("quarter", true);
243
+ var peg$e10 = peg$literalExpectation("year", true);
244
+ var peg$e11 = peg$literalExpectation("s", true);
245
+ var peg$e12 = peg$literalExpectation("-", false);
246
+ var peg$e13 = peg$classExpectation([" ", "T", "t"], false, false);
247
+ var peg$e14 = peg$literalExpectation(":", false);
248
+ var peg$e15 = peg$classExpectation([".", ","], false, false);
249
+ var peg$e16 = peg$classExpectation(["W", "w"], false, false);
250
+ var peg$e17 = peg$classExpectation(["K", "k"], false, false);
251
+ var peg$e18 = peg$classExpectation(["Q", "q"], false, false);
252
+ var peg$e19 = peg$classExpectation(["1", "2", "3", "4"], false, false);
253
+ var peg$e20 = peg$literalExpectation("not", true);
254
+ var peg$e21 = peg$literalExpectation("null", true);
255
+ var peg$e22 = peg$literalExpectation("to", true);
256
+ var peg$e23 = peg$literalExpectation("now", true);
257
+ var peg$e24 = peg$literalExpectation("last", true);
258
+ var peg$e25 = peg$literalExpectation("this", true);
259
+ var peg$e26 = peg$literalExpectation("next", true);
260
+ var peg$e27 = peg$literalExpectation("ago", true);
261
+ var peg$e28 = peg$literalExpectation("from", true);
262
+ var peg$e29 = peg$literalExpectation("before", true);
263
+ var peg$e30 = peg$literalExpectation("after", true);
264
+ var peg$e31 = peg$literalExpectation("through", true);
265
+ var peg$e32 = peg$literalExpectation("starting", true);
266
+ var peg$e33 = peg$literalExpectation("for", true);
267
+ var peg$e34 = peg$literalExpectation("today", true);
268
+ var peg$e35 = peg$literalExpectation("yesterday", true);
269
+ var peg$e36 = peg$literalExpectation("tomorrow", true);
270
+ var peg$e37 = peg$literalExpectation("and", true);
271
+ var peg$e38 = peg$literalExpectation("or", true);
272
+ var peg$e39 = peg$literalExpectation("monday", true);
273
+ var peg$e40 = peg$literalExpectation("tuesday", true);
274
+ var peg$e41 = peg$literalExpectation("wednesday", true);
275
+ var peg$e42 = peg$literalExpectation("thursday", true);
276
+ var peg$e43 = peg$literalExpectation("friday", true);
277
+ var peg$e44 = peg$literalExpectation("saturday", true);
278
+ var peg$e45 = peg$literalExpectation("sunday", true);
279
+ var peg$e46 = peg$classExpectation([["a", "z"], ["A", "Z"]], false, false);
280
+ var peg$e47 = peg$otherExpectation("optional whitespace");
281
+ var peg$e48 = peg$classExpectation([" ", "\t"], false, false);
282
+ var peg$e49 = peg$otherExpectation("whitespace");
283
+
284
+ var peg$f0 = function(head, tail) {
285
+ return tail.reduce((left, [, cop, , right]) => joinTemporal(left, cop, right), head);
286
+ };
287
+ var peg$f1 = function(clause) { return temporalNot(clause, true); };
288
+ var peg$f2 = function(clause) { return clause; };
289
+ var peg$f3 = function() { return {operator: 'null'}; };
290
+ var peg$f4 = function(expr) { return {operator: "()", expr}; };
291
+ var peg$f5 = function(m) { return {operator: 'before', before: m}; };
292
+ var peg$f6 = function(m) { return {operator: 'before', before: m, not: true}; };
293
+ var peg$f7 = function(m) { return {operator: 'after', after: m}; };
294
+ var peg$f8 = function(m) { return {operator: 'after', after: m, not: true}; };
295
+ var peg$f9 = function(ln, d) { return {operator: ln, ...d}; };
296
+ var peg$f10 = function(m, m2) { return {operator: 'to', fromMoment: m, toMoment: m2}; };
297
+ var peg$f11 = function(m, d) { return {...d, operator: 'for', begin: m}; };
298
+ var peg$f12 = function(m) { return {operator: 'in', in: m}; };
299
+ var peg$f13 = function(d) { return {operator: 'in_last', ...d}; };
300
+ var peg$f14 = function() { return 'last'; };
301
+ var peg$f15 = function() { return 'next'; };
302
+ var peg$f16 = function(n, u) { return {units: u, n}; };
303
+ var peg$f17 = function(n) { return n; };
304
+ var peg$f18 = function(u) { return mkUnits(u); };
305
+ var peg$f19 = function() { return {moment: 'now'}; };
306
+ var peg$f20 = function() { return {moment: 'today'}; };
307
+ var peg$f21 = function() { return {moment: 'yesterday'}; };
308
+ var peg$f22 = function() { return {moment: 'tomorrow'}; };
309
+ var peg$f23 = function(d) { return {moment: 'ago', ...d}; };
310
+ var peg$f24 = function(d) { return {moment: 'from_now', ...d}; };
311
+ var peg$f25 = function(dn) { return {moment: dn.toLowerCase(), which: 'next'}; };
312
+ var peg$f26 = function(dn) { return {moment: dn.toLowerCase(), which: 'last'}; };
313
+ var peg$f27 = function(lnt, u) { return {moment: lnt, units: u}; };
314
+ var peg$f28 = function(dn) { return {moment: dn.toLowerCase(), which: 'last'}; };
315
+ var peg$f29 = function(tl) { return tl; };
316
+ var peg$f30 = function() { return 'this'; };
317
+ var peg$f31 = function() { return 'next'; };
318
+ var peg$f32 = function() { return 'last'; };
319
+ var peg$f33 = function(l) { return timeLiteral(l); };
320
+ var peg$f34 = function(l) { return timeLiteral(l, 'week'); };
321
+ var peg$f35 = function(l) { return timeLiteral(l, 'quarter'); };
322
+ var peg$f36 = function(l) { return timeLiteral(l, 'minute'); };
323
+ var peg$f37 = function(l) { return timeLiteral(l, 'hour'); };
324
+ var peg$f38 = function(l) { return timeLiteral(l, 'day'); };
325
+ var peg$f39 = function(l) { return timeLiteral(l, 'month'); };
326
+ var peg$f40 = function(l) { return timeLiteral(l, 'year'); };
327
+ var peg$f41 = function(w) { return w; };
328
+ var peg$f42 = function() { return "or"; };
329
+ var peg$f43 = function() { return "and"; };
330
+ var peg$currPos = options.peg$currPos | 0;
331
+ var peg$savedPos = peg$currPos;
332
+ var peg$posDetailsCache = [{ line: 1, column: 1 }];
333
+ var peg$maxFailPos = peg$currPos;
334
+ var peg$maxFailExpected = options.peg$maxFailExpected || [];
335
+ var peg$silentFails = options.peg$silentFails | 0;
336
+
337
+ var peg$result;
338
+
339
+ if (options.startRule) {
340
+ if (!(options.startRule in peg$startRuleFunctions)) {
341
+ throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
342
+ }
343
+
344
+ peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
345
+ }
346
+
347
+ function text() {
348
+ return input.substring(peg$savedPos, peg$currPos);
349
+ }
350
+
351
+ function offset() {
352
+ return peg$savedPos;
353
+ }
354
+
355
+ function range() {
356
+ return {
357
+ source: peg$source,
358
+ start: peg$savedPos,
359
+ end: peg$currPos
360
+ };
361
+ }
362
+
363
+ function location() {
364
+ return peg$computeLocation(peg$savedPos, peg$currPos);
365
+ }
366
+
367
+ function expected(description, location) {
368
+ location = location !== undefined
369
+ ? location
370
+ : peg$computeLocation(peg$savedPos, peg$currPos);
371
+
372
+ throw peg$buildStructuredError(
373
+ [peg$otherExpectation(description)],
374
+ input.substring(peg$savedPos, peg$currPos),
375
+ location
376
+ );
377
+ }
378
+
379
+ function error(message, location) {
380
+ location = location !== undefined
381
+ ? location
382
+ : peg$computeLocation(peg$savedPos, peg$currPos);
383
+
384
+ throw peg$buildSimpleError(message, location);
385
+ }
386
+
387
+ function peg$literalExpectation(text, ignoreCase) {
388
+ return { type: "literal", text: text, ignoreCase: ignoreCase };
389
+ }
390
+
391
+ function peg$classExpectation(parts, inverted, ignoreCase) {
392
+ return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };
393
+ }
394
+
395
+ function peg$anyExpectation() {
396
+ return { type: "any" };
397
+ }
398
+
399
+ function peg$endExpectation() {
400
+ return { type: "end" };
401
+ }
402
+
403
+ function peg$otherExpectation(description) {
404
+ return { type: "other", description: description };
405
+ }
406
+
407
+ function peg$computePosDetails(pos) {
408
+ var details = peg$posDetailsCache[pos];
409
+ var p;
410
+
411
+ if (details) {
412
+ return details;
413
+ } else {
414
+ if (pos >= peg$posDetailsCache.length) {
415
+ p = peg$posDetailsCache.length - 1;
416
+ } else {
417
+ p = pos;
418
+ while (!peg$posDetailsCache[--p]) {}
419
+ }
420
+
421
+ details = peg$posDetailsCache[p];
422
+ details = {
423
+ line: details.line,
424
+ column: details.column
425
+ };
426
+
427
+ while (p < pos) {
428
+ if (input.charCodeAt(p) === 10) {
429
+ details.line++;
430
+ details.column = 1;
431
+ } else {
432
+ details.column++;
433
+ }
434
+
435
+ p++;
436
+ }
437
+
438
+ peg$posDetailsCache[pos] = details;
439
+
440
+ return details;
441
+ }
442
+ }
443
+
444
+ function peg$computeLocation(startPos, endPos, offset) {
445
+ var startPosDetails = peg$computePosDetails(startPos);
446
+ var endPosDetails = peg$computePosDetails(endPos);
447
+
448
+ var res = {
449
+ source: peg$source,
450
+ start: {
451
+ offset: startPos,
452
+ line: startPosDetails.line,
453
+ column: startPosDetails.column
454
+ },
455
+ end: {
456
+ offset: endPos,
457
+ line: endPosDetails.line,
458
+ column: endPosDetails.column
459
+ }
460
+ };
461
+ if (offset && peg$source && (typeof peg$source.offset === "function")) {
462
+ res.start = peg$source.offset(res.start);
463
+ res.end = peg$source.offset(res.end);
464
+ }
465
+ return res;
466
+ }
467
+
468
+ function peg$fail(expected) {
469
+ if (peg$currPos < peg$maxFailPos) { return; }
470
+
471
+ if (peg$currPos > peg$maxFailPos) {
472
+ peg$maxFailPos = peg$currPos;
473
+ peg$maxFailExpected = [];
474
+ }
475
+
476
+ peg$maxFailExpected.push(expected);
477
+ }
478
+
479
+ function peg$buildSimpleError(message, location) {
480
+ return new peg$SyntaxError(message, null, null, location);
481
+ }
482
+
483
+ function peg$buildStructuredError(expected, found, location) {
484
+ return new peg$SyntaxError(
485
+ peg$SyntaxError.buildMessage(expected, found),
486
+ expected,
487
+ found,
488
+ location
489
+ );
490
+ }
491
+
492
+ function peg$parsetemporalFilter() {
493
+ var s0, s1, s2, s3, s4, s5, s6, s7;
494
+
495
+ s0 = peg$currPos;
496
+ s1 = peg$parsetemporalUnary();
497
+ if (s1 !== peg$FAILED) {
498
+ s2 = [];
499
+ s3 = peg$currPos;
500
+ s4 = peg$parse_();
501
+ s5 = peg$parseconjunction();
502
+ if (s5 !== peg$FAILED) {
503
+ s6 = peg$parse_();
504
+ s7 = peg$parsetemporalUnary();
505
+ if (s7 !== peg$FAILED) {
506
+ s4 = [s4, s5, s6, s7];
507
+ s3 = s4;
508
+ } else {
509
+ peg$currPos = s3;
510
+ s3 = peg$FAILED;
511
+ }
512
+ } else {
513
+ peg$currPos = s3;
514
+ s3 = peg$FAILED;
515
+ }
516
+ while (s3 !== peg$FAILED) {
517
+ s2.push(s3);
518
+ s3 = peg$currPos;
519
+ s4 = peg$parse_();
520
+ s5 = peg$parseconjunction();
521
+ if (s5 !== peg$FAILED) {
522
+ s6 = peg$parse_();
523
+ s7 = peg$parsetemporalUnary();
524
+ if (s7 !== peg$FAILED) {
525
+ s4 = [s4, s5, s6, s7];
526
+ s3 = s4;
527
+ } else {
528
+ peg$currPos = s3;
529
+ s3 = peg$FAILED;
530
+ }
531
+ } else {
532
+ peg$currPos = s3;
533
+ s3 = peg$FAILED;
534
+ }
535
+ }
536
+ peg$savedPos = s0;
537
+ s0 = peg$f0(s1, s2);
538
+ } else {
539
+ peg$currPos = s0;
540
+ s0 = peg$FAILED;
541
+ }
542
+
543
+ return s0;
544
+ }
545
+
546
+ function peg$parsetemporalUnary() {
547
+ var s0, s1, s2, s3;
548
+
549
+ s0 = peg$currPos;
550
+ s1 = peg$parseNOT();
551
+ if (s1 !== peg$FAILED) {
552
+ s2 = peg$parse__();
553
+ if (s2 !== peg$FAILED) {
554
+ s3 = peg$parseclause();
555
+ if (s3 !== peg$FAILED) {
556
+ peg$savedPos = s0;
557
+ s0 = peg$f1(s3);
558
+ } else {
559
+ peg$currPos = s0;
560
+ s0 = peg$FAILED;
561
+ }
562
+ } else {
563
+ peg$currPos = s0;
564
+ s0 = peg$FAILED;
565
+ }
566
+ } else {
567
+ peg$currPos = s0;
568
+ s0 = peg$FAILED;
569
+ }
570
+ if (s0 === peg$FAILED) {
571
+ s0 = peg$currPos;
572
+ s1 = peg$parseclause();
573
+ if (s1 !== peg$FAILED) {
574
+ peg$savedPos = s0;
575
+ s1 = peg$f2(s1);
576
+ }
577
+ s0 = s1;
578
+ }
579
+
580
+ return s0;
581
+ }
582
+
583
+ function peg$parseclause() {
584
+ var s0, s1, s2, s3, s4, s5;
585
+
586
+ s0 = peg$currPos;
587
+ s1 = peg$parseNULL();
588
+ if (s1 !== peg$FAILED) {
589
+ peg$savedPos = s0;
590
+ s1 = peg$f3();
591
+ }
592
+ s0 = s1;
593
+ if (s0 === peg$FAILED) {
594
+ s0 = peg$currPos;
595
+ if (input.charCodeAt(peg$currPos) === 40) {
596
+ s1 = peg$c0;
597
+ peg$currPos++;
598
+ } else {
599
+ s1 = peg$FAILED;
600
+ if (peg$silentFails === 0) { peg$fail(peg$e0); }
601
+ }
602
+ if (s1 !== peg$FAILED) {
603
+ s2 = peg$parse_();
604
+ s3 = peg$parsetemporalFilter();
605
+ if (s3 !== peg$FAILED) {
606
+ s4 = peg$parse_();
607
+ if (input.charCodeAt(peg$currPos) === 41) {
608
+ s5 = peg$c1;
609
+ peg$currPos++;
610
+ } else {
611
+ s5 = peg$FAILED;
612
+ if (peg$silentFails === 0) { peg$fail(peg$e1); }
613
+ }
614
+ if (s5 !== peg$FAILED) {
615
+ peg$savedPos = s0;
616
+ s0 = peg$f4(s3);
617
+ } else {
618
+ peg$currPos = s0;
619
+ s0 = peg$FAILED;
620
+ }
621
+ } else {
622
+ peg$currPos = s0;
623
+ s0 = peg$FAILED;
624
+ }
625
+ } else {
626
+ peg$currPos = s0;
627
+ s0 = peg$FAILED;
628
+ }
629
+ if (s0 === peg$FAILED) {
630
+ s0 = peg$currPos;
631
+ s1 = peg$parseBEFORE();
632
+ if (s1 !== peg$FAILED) {
633
+ s2 = peg$parse__();
634
+ if (s2 !== peg$FAILED) {
635
+ s3 = peg$parsemoment();
636
+ if (s3 !== peg$FAILED) {
637
+ peg$savedPos = s0;
638
+ s0 = peg$f5(s3);
639
+ } else {
640
+ peg$currPos = s0;
641
+ s0 = peg$FAILED;
642
+ }
643
+ } else {
644
+ peg$currPos = s0;
645
+ s0 = peg$FAILED;
646
+ }
647
+ } else {
648
+ peg$currPos = s0;
649
+ s0 = peg$FAILED;
650
+ }
651
+ if (s0 === peg$FAILED) {
652
+ s0 = peg$currPos;
653
+ s1 = peg$parseSTARTING();
654
+ if (s1 !== peg$FAILED) {
655
+ s2 = peg$parse__();
656
+ if (s2 !== peg$FAILED) {
657
+ s3 = peg$parsemoment();
658
+ if (s3 !== peg$FAILED) {
659
+ peg$savedPos = s0;
660
+ s0 = peg$f6(s3);
661
+ } else {
662
+ peg$currPos = s0;
663
+ s0 = peg$FAILED;
664
+ }
665
+ } else {
666
+ peg$currPos = s0;
667
+ s0 = peg$FAILED;
668
+ }
669
+ } else {
670
+ peg$currPos = s0;
671
+ s0 = peg$FAILED;
672
+ }
673
+ if (s0 === peg$FAILED) {
674
+ s0 = peg$currPos;
675
+ s1 = peg$parseAFTER();
676
+ if (s1 !== peg$FAILED) {
677
+ s2 = peg$parse__();
678
+ if (s2 !== peg$FAILED) {
679
+ s3 = peg$parsemoment();
680
+ if (s3 !== peg$FAILED) {
681
+ peg$savedPos = s0;
682
+ s0 = peg$f7(s3);
683
+ } else {
684
+ peg$currPos = s0;
685
+ s0 = peg$FAILED;
686
+ }
687
+ } else {
688
+ peg$currPos = s0;
689
+ s0 = peg$FAILED;
690
+ }
691
+ } else {
692
+ peg$currPos = s0;
693
+ s0 = peg$FAILED;
694
+ }
695
+ if (s0 === peg$FAILED) {
696
+ s0 = peg$currPos;
697
+ s1 = peg$parseTHROUGH();
698
+ if (s1 !== peg$FAILED) {
699
+ s2 = peg$parse__();
700
+ if (s2 !== peg$FAILED) {
701
+ s3 = peg$parsemoment();
702
+ if (s3 !== peg$FAILED) {
703
+ peg$savedPos = s0;
704
+ s0 = peg$f8(s3);
705
+ } else {
706
+ peg$currPos = s0;
707
+ s0 = peg$FAILED;
708
+ }
709
+ } else {
710
+ peg$currPos = s0;
711
+ s0 = peg$FAILED;
712
+ }
713
+ } else {
714
+ peg$currPos = s0;
715
+ s0 = peg$FAILED;
716
+ }
717
+ if (s0 === peg$FAILED) {
718
+ s0 = peg$currPos;
719
+ s1 = peg$parselastOrNext();
720
+ if (s1 !== peg$FAILED) {
721
+ s2 = peg$parse__();
722
+ if (s2 !== peg$FAILED) {
723
+ s3 = peg$parseduration();
724
+ if (s3 !== peg$FAILED) {
725
+ peg$savedPos = s0;
726
+ s0 = peg$f9(s1, s3);
727
+ } else {
728
+ peg$currPos = s0;
729
+ s0 = peg$FAILED;
730
+ }
731
+ } else {
732
+ peg$currPos = s0;
733
+ s0 = peg$FAILED;
734
+ }
735
+ } else {
736
+ peg$currPos = s0;
737
+ s0 = peg$FAILED;
738
+ }
739
+ if (s0 === peg$FAILED) {
740
+ s0 = peg$currPos;
741
+ s1 = peg$parsemoment();
742
+ if (s1 !== peg$FAILED) {
743
+ s2 = peg$parse__();
744
+ if (s2 !== peg$FAILED) {
745
+ s3 = peg$parseTO();
746
+ if (s3 !== peg$FAILED) {
747
+ s4 = peg$parse__();
748
+ if (s4 !== peg$FAILED) {
749
+ s5 = peg$parsemoment();
750
+ if (s5 !== peg$FAILED) {
751
+ peg$savedPos = s0;
752
+ s0 = peg$f10(s1, s5);
753
+ } else {
754
+ peg$currPos = s0;
755
+ s0 = peg$FAILED;
756
+ }
757
+ } else {
758
+ peg$currPos = s0;
759
+ s0 = peg$FAILED;
760
+ }
761
+ } else {
762
+ peg$currPos = s0;
763
+ s0 = peg$FAILED;
764
+ }
765
+ } else {
766
+ peg$currPos = s0;
767
+ s0 = peg$FAILED;
768
+ }
769
+ } else {
770
+ peg$currPos = s0;
771
+ s0 = peg$FAILED;
772
+ }
773
+ if (s0 === peg$FAILED) {
774
+ s0 = peg$currPos;
775
+ s1 = peg$parsemoment();
776
+ if (s1 !== peg$FAILED) {
777
+ s2 = peg$parse__();
778
+ if (s2 !== peg$FAILED) {
779
+ s3 = peg$parseFOR();
780
+ if (s3 !== peg$FAILED) {
781
+ s4 = peg$parse__();
782
+ if (s4 !== peg$FAILED) {
783
+ s5 = peg$parseduration();
784
+ if (s5 !== peg$FAILED) {
785
+ peg$savedPos = s0;
786
+ s0 = peg$f11(s1, s5);
787
+ } else {
788
+ peg$currPos = s0;
789
+ s0 = peg$FAILED;
790
+ }
791
+ } else {
792
+ peg$currPos = s0;
793
+ s0 = peg$FAILED;
794
+ }
795
+ } else {
796
+ peg$currPos = s0;
797
+ s0 = peg$FAILED;
798
+ }
799
+ } else {
800
+ peg$currPos = s0;
801
+ s0 = peg$FAILED;
802
+ }
803
+ } else {
804
+ peg$currPos = s0;
805
+ s0 = peg$FAILED;
806
+ }
807
+ if (s0 === peg$FAILED) {
808
+ s0 = peg$currPos;
809
+ s1 = peg$parsemoment();
810
+ if (s1 !== peg$FAILED) {
811
+ peg$savedPos = s0;
812
+ s1 = peg$f12(s1);
813
+ }
814
+ s0 = s1;
815
+ if (s0 === peg$FAILED) {
816
+ s0 = peg$currPos;
817
+ s1 = peg$parseduration();
818
+ if (s1 !== peg$FAILED) {
819
+ peg$savedPos = s0;
820
+ s1 = peg$f13(s1);
821
+ }
822
+ s0 = s1;
823
+ }
824
+ }
825
+ }
826
+ }
827
+ }
828
+ }
829
+ }
830
+ }
831
+ }
832
+ }
833
+
834
+ return s0;
835
+ }
836
+
837
+ function peg$parselastOrNext() {
838
+ var s0, s1;
839
+
840
+ s0 = peg$currPos;
841
+ s1 = peg$parseLAST();
842
+ if (s1 !== peg$FAILED) {
843
+ peg$savedPos = s0;
844
+ s1 = peg$f14();
845
+ }
846
+ s0 = s1;
847
+ if (s0 === peg$FAILED) {
848
+ s0 = peg$currPos;
849
+ s1 = peg$parseNEXT();
850
+ if (s1 !== peg$FAILED) {
851
+ peg$savedPos = s0;
852
+ s1 = peg$f15();
853
+ }
854
+ s0 = s1;
855
+ }
856
+
857
+ return s0;
858
+ }
859
+
860
+ function peg$parseduration() {
861
+ var s0, s1, s2, s3;
862
+
863
+ s0 = peg$currPos;
864
+ s1 = peg$parseinteger();
865
+ if (s1 !== peg$FAILED) {
866
+ s2 = peg$parse__();
867
+ if (s2 !== peg$FAILED) {
868
+ s3 = peg$parseunit();
869
+ if (s3 !== peg$FAILED) {
870
+ peg$savedPos = s0;
871
+ s0 = peg$f16(s1, s3);
872
+ } else {
873
+ peg$currPos = s0;
874
+ s0 = peg$FAILED;
875
+ }
876
+ } else {
877
+ peg$currPos = s0;
878
+ s0 = peg$FAILED;
879
+ }
880
+ } else {
881
+ peg$currPos = s0;
882
+ s0 = peg$FAILED;
883
+ }
884
+
885
+ return s0;
886
+ }
887
+
888
+ function peg$parseinteger() {
889
+ var s0, s1, s2, s3;
890
+
891
+ s0 = peg$currPos;
892
+ s1 = peg$currPos;
893
+ s2 = [];
894
+ s3 = input.charAt(peg$currPos);
895
+ if (peg$r0.test(s3)) {
896
+ peg$currPos++;
897
+ } else {
898
+ s3 = peg$FAILED;
899
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
900
+ }
901
+ if (s3 !== peg$FAILED) {
902
+ while (s3 !== peg$FAILED) {
903
+ s2.push(s3);
904
+ s3 = input.charAt(peg$currPos);
905
+ if (peg$r0.test(s3)) {
906
+ peg$currPos++;
907
+ } else {
908
+ s3 = peg$FAILED;
909
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
910
+ }
911
+ }
912
+ } else {
913
+ s2 = peg$FAILED;
914
+ }
915
+ if (s2 !== peg$FAILED) {
916
+ s1 = input.substring(s1, peg$currPos);
917
+ } else {
918
+ s1 = s2;
919
+ }
920
+ if (s1 !== peg$FAILED) {
921
+ peg$savedPos = s0;
922
+ s1 = peg$f17(s1);
923
+ }
924
+ s0 = s1;
925
+
926
+ return s0;
927
+ }
928
+
929
+ function peg$parseunit() {
930
+ var s0, s1, s2, s3, s4;
931
+
932
+ s0 = peg$currPos;
933
+ s1 = peg$currPos;
934
+ s2 = input.substr(peg$currPos, 6);
935
+ if (s2.toLowerCase() === peg$c2) {
936
+ peg$currPos += 6;
937
+ } else {
938
+ s2 = peg$FAILED;
939
+ if (peg$silentFails === 0) { peg$fail(peg$e3); }
940
+ }
941
+ if (s2 === peg$FAILED) {
942
+ s2 = input.substr(peg$currPos, 6);
943
+ if (s2.toLowerCase() === peg$c3) {
944
+ peg$currPos += 6;
945
+ } else {
946
+ s2 = peg$FAILED;
947
+ if (peg$silentFails === 0) { peg$fail(peg$e4); }
948
+ }
949
+ if (s2 === peg$FAILED) {
950
+ s2 = input.substr(peg$currPos, 4);
951
+ if (s2.toLowerCase() === peg$c4) {
952
+ peg$currPos += 4;
953
+ } else {
954
+ s2 = peg$FAILED;
955
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
956
+ }
957
+ if (s2 === peg$FAILED) {
958
+ s2 = input.substr(peg$currPos, 3);
959
+ if (s2.toLowerCase() === peg$c5) {
960
+ peg$currPos += 3;
961
+ } else {
962
+ s2 = peg$FAILED;
963
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
964
+ }
965
+ if (s2 === peg$FAILED) {
966
+ s2 = input.substr(peg$currPos, 4);
967
+ if (s2.toLowerCase() === peg$c6) {
968
+ peg$currPos += 4;
969
+ } else {
970
+ s2 = peg$FAILED;
971
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
972
+ }
973
+ if (s2 === peg$FAILED) {
974
+ s2 = input.substr(peg$currPos, 5);
975
+ if (s2.toLowerCase() === peg$c7) {
976
+ peg$currPos += 5;
977
+ } else {
978
+ s2 = peg$FAILED;
979
+ if (peg$silentFails === 0) { peg$fail(peg$e8); }
980
+ }
981
+ if (s2 === peg$FAILED) {
982
+ s2 = input.substr(peg$currPos, 7);
983
+ if (s2.toLowerCase() === peg$c8) {
984
+ peg$currPos += 7;
985
+ } else {
986
+ s2 = peg$FAILED;
987
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
988
+ }
989
+ if (s2 === peg$FAILED) {
990
+ s2 = input.substr(peg$currPos, 4);
991
+ if (s2.toLowerCase() === peg$c9) {
992
+ peg$currPos += 4;
993
+ } else {
994
+ s2 = peg$FAILED;
995
+ if (peg$silentFails === 0) { peg$fail(peg$e10); }
996
+ }
997
+ }
998
+ }
999
+ }
1000
+ }
1001
+ }
1002
+ }
1003
+ }
1004
+ if (s2 !== peg$FAILED) {
1005
+ s1 = input.substring(s1, peg$currPos);
1006
+ } else {
1007
+ s1 = s2;
1008
+ }
1009
+ if (s1 !== peg$FAILED) {
1010
+ s2 = input.charAt(peg$currPos);
1011
+ if (s2.toLowerCase() === peg$c10) {
1012
+ peg$currPos++;
1013
+ } else {
1014
+ s2 = peg$FAILED;
1015
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
1016
+ }
1017
+ if (s2 === peg$FAILED) {
1018
+ s2 = null;
1019
+ }
1020
+ s3 = peg$currPos;
1021
+ peg$silentFails++;
1022
+ s4 = peg$parseidChar();
1023
+ peg$silentFails--;
1024
+ if (s4 === peg$FAILED) {
1025
+ s3 = undefined;
1026
+ } else {
1027
+ peg$currPos = s3;
1028
+ s3 = peg$FAILED;
1029
+ }
1030
+ if (s3 !== peg$FAILED) {
1031
+ peg$savedPos = s0;
1032
+ s0 = peg$f18(s1);
1033
+ } else {
1034
+ peg$currPos = s0;
1035
+ s0 = peg$FAILED;
1036
+ }
1037
+ } else {
1038
+ peg$currPos = s0;
1039
+ s0 = peg$FAILED;
1040
+ }
1041
+
1042
+ return s0;
1043
+ }
1044
+
1045
+ function peg$parsemoment() {
1046
+ var s0, s1, s2, s3, s4, s5;
1047
+
1048
+ s0 = peg$currPos;
1049
+ s1 = peg$parseNOW();
1050
+ if (s1 !== peg$FAILED) {
1051
+ peg$savedPos = s0;
1052
+ s1 = peg$f19();
1053
+ }
1054
+ s0 = s1;
1055
+ if (s0 === peg$FAILED) {
1056
+ s0 = peg$currPos;
1057
+ s1 = peg$parseTODAY();
1058
+ if (s1 !== peg$FAILED) {
1059
+ peg$savedPos = s0;
1060
+ s1 = peg$f20();
1061
+ }
1062
+ s0 = s1;
1063
+ if (s0 === peg$FAILED) {
1064
+ s0 = peg$currPos;
1065
+ s1 = peg$parseYESTERDAY();
1066
+ if (s1 !== peg$FAILED) {
1067
+ peg$savedPos = s0;
1068
+ s1 = peg$f21();
1069
+ }
1070
+ s0 = s1;
1071
+ if (s0 === peg$FAILED) {
1072
+ s0 = peg$currPos;
1073
+ s1 = peg$parseTOMORROW();
1074
+ if (s1 !== peg$FAILED) {
1075
+ peg$savedPos = s0;
1076
+ s1 = peg$f22();
1077
+ }
1078
+ s0 = s1;
1079
+ if (s0 === peg$FAILED) {
1080
+ s0 = peg$currPos;
1081
+ s1 = peg$parseduration();
1082
+ if (s1 !== peg$FAILED) {
1083
+ s2 = peg$parse__();
1084
+ if (s2 !== peg$FAILED) {
1085
+ s3 = peg$parseAGO();
1086
+ if (s3 !== peg$FAILED) {
1087
+ peg$savedPos = s0;
1088
+ s0 = peg$f23(s1);
1089
+ } else {
1090
+ peg$currPos = s0;
1091
+ s0 = peg$FAILED;
1092
+ }
1093
+ } else {
1094
+ peg$currPos = s0;
1095
+ s0 = peg$FAILED;
1096
+ }
1097
+ } else {
1098
+ peg$currPos = s0;
1099
+ s0 = peg$FAILED;
1100
+ }
1101
+ if (s0 === peg$FAILED) {
1102
+ s0 = peg$currPos;
1103
+ s1 = peg$parseduration();
1104
+ if (s1 !== peg$FAILED) {
1105
+ s2 = peg$parse__();
1106
+ if (s2 !== peg$FAILED) {
1107
+ s3 = peg$parseFROM();
1108
+ if (s3 !== peg$FAILED) {
1109
+ s4 = peg$parse__();
1110
+ if (s4 !== peg$FAILED) {
1111
+ s5 = peg$parseNOW();
1112
+ if (s5 !== peg$FAILED) {
1113
+ peg$savedPos = s0;
1114
+ s0 = peg$f24(s1);
1115
+ } else {
1116
+ peg$currPos = s0;
1117
+ s0 = peg$FAILED;
1118
+ }
1119
+ } else {
1120
+ peg$currPos = s0;
1121
+ s0 = peg$FAILED;
1122
+ }
1123
+ } else {
1124
+ peg$currPos = s0;
1125
+ s0 = peg$FAILED;
1126
+ }
1127
+ } else {
1128
+ peg$currPos = s0;
1129
+ s0 = peg$FAILED;
1130
+ }
1131
+ } else {
1132
+ peg$currPos = s0;
1133
+ s0 = peg$FAILED;
1134
+ }
1135
+ if (s0 === peg$FAILED) {
1136
+ s0 = peg$currPos;
1137
+ s1 = peg$parseNEXT();
1138
+ if (s1 !== peg$FAILED) {
1139
+ s2 = peg$parse__();
1140
+ if (s2 !== peg$FAILED) {
1141
+ s3 = peg$parseweekday();
1142
+ if (s3 !== peg$FAILED) {
1143
+ peg$savedPos = s0;
1144
+ s0 = peg$f25(s3);
1145
+ } else {
1146
+ peg$currPos = s0;
1147
+ s0 = peg$FAILED;
1148
+ }
1149
+ } else {
1150
+ peg$currPos = s0;
1151
+ s0 = peg$FAILED;
1152
+ }
1153
+ } else {
1154
+ peg$currPos = s0;
1155
+ s0 = peg$FAILED;
1156
+ }
1157
+ if (s0 === peg$FAILED) {
1158
+ s0 = peg$currPos;
1159
+ s1 = peg$parseLAST();
1160
+ if (s1 !== peg$FAILED) {
1161
+ s2 = peg$parse__();
1162
+ if (s2 !== peg$FAILED) {
1163
+ s3 = peg$parseweekday();
1164
+ if (s3 !== peg$FAILED) {
1165
+ peg$savedPos = s0;
1166
+ s0 = peg$f26(s3);
1167
+ } else {
1168
+ peg$currPos = s0;
1169
+ s0 = peg$FAILED;
1170
+ }
1171
+ } else {
1172
+ peg$currPos = s0;
1173
+ s0 = peg$FAILED;
1174
+ }
1175
+ } else {
1176
+ peg$currPos = s0;
1177
+ s0 = peg$FAILED;
1178
+ }
1179
+ if (s0 === peg$FAILED) {
1180
+ s0 = peg$currPos;
1181
+ s1 = peg$parselastNextThis();
1182
+ if (s1 !== peg$FAILED) {
1183
+ s2 = peg$parse__();
1184
+ if (s2 !== peg$FAILED) {
1185
+ s3 = peg$parseunit();
1186
+ if (s3 !== peg$FAILED) {
1187
+ peg$savedPos = s0;
1188
+ s0 = peg$f27(s1, s3);
1189
+ } else {
1190
+ peg$currPos = s0;
1191
+ s0 = peg$FAILED;
1192
+ }
1193
+ } else {
1194
+ peg$currPos = s0;
1195
+ s0 = peg$FAILED;
1196
+ }
1197
+ } else {
1198
+ peg$currPos = s0;
1199
+ s0 = peg$FAILED;
1200
+ }
1201
+ if (s0 === peg$FAILED) {
1202
+ s0 = peg$currPos;
1203
+ s1 = peg$parseweekday();
1204
+ if (s1 !== peg$FAILED) {
1205
+ peg$savedPos = s0;
1206
+ s1 = peg$f28(s1);
1207
+ }
1208
+ s0 = s1;
1209
+ if (s0 === peg$FAILED) {
1210
+ s0 = peg$currPos;
1211
+ s1 = peg$parsetimeLiteral();
1212
+ if (s1 !== peg$FAILED) {
1213
+ peg$savedPos = s0;
1214
+ s1 = peg$f29(s1);
1215
+ }
1216
+ s0 = s1;
1217
+ }
1218
+ }
1219
+ }
1220
+ }
1221
+ }
1222
+ }
1223
+ }
1224
+ }
1225
+ }
1226
+ }
1227
+
1228
+ return s0;
1229
+ }
1230
+
1231
+ function peg$parselastNextThis() {
1232
+ var s0, s1;
1233
+
1234
+ s0 = peg$currPos;
1235
+ s1 = peg$parseTHIS();
1236
+ if (s1 !== peg$FAILED) {
1237
+ peg$savedPos = s0;
1238
+ s1 = peg$f30();
1239
+ }
1240
+ s0 = s1;
1241
+ if (s0 === peg$FAILED) {
1242
+ s0 = peg$currPos;
1243
+ s1 = peg$parseNEXT();
1244
+ if (s1 !== peg$FAILED) {
1245
+ peg$savedPos = s0;
1246
+ s1 = peg$f31();
1247
+ }
1248
+ s0 = s1;
1249
+ if (s0 === peg$FAILED) {
1250
+ s0 = peg$currPos;
1251
+ s1 = peg$parseLAST();
1252
+ if (s1 !== peg$FAILED) {
1253
+ peg$savedPos = s0;
1254
+ s1 = peg$f32();
1255
+ }
1256
+ s0 = s1;
1257
+ }
1258
+ }
1259
+
1260
+ return s0;
1261
+ }
1262
+
1263
+ function peg$parsetimeLiteral() {
1264
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22, s23, s24, s25;
1265
+
1266
+ s0 = peg$currPos;
1267
+ s1 = peg$currPos;
1268
+ s2 = peg$currPos;
1269
+ s3 = input.charAt(peg$currPos);
1270
+ if (peg$r0.test(s3)) {
1271
+ peg$currPos++;
1272
+ } else {
1273
+ s3 = peg$FAILED;
1274
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1275
+ }
1276
+ if (s3 !== peg$FAILED) {
1277
+ s4 = input.charAt(peg$currPos);
1278
+ if (peg$r0.test(s4)) {
1279
+ peg$currPos++;
1280
+ } else {
1281
+ s4 = peg$FAILED;
1282
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1283
+ }
1284
+ if (s4 !== peg$FAILED) {
1285
+ s5 = input.charAt(peg$currPos);
1286
+ if (peg$r0.test(s5)) {
1287
+ peg$currPos++;
1288
+ } else {
1289
+ s5 = peg$FAILED;
1290
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1291
+ }
1292
+ if (s5 !== peg$FAILED) {
1293
+ s6 = input.charAt(peg$currPos);
1294
+ if (peg$r0.test(s6)) {
1295
+ peg$currPos++;
1296
+ } else {
1297
+ s6 = peg$FAILED;
1298
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1299
+ }
1300
+ if (s6 !== peg$FAILED) {
1301
+ if (input.charCodeAt(peg$currPos) === 45) {
1302
+ s7 = peg$c11;
1303
+ peg$currPos++;
1304
+ } else {
1305
+ s7 = peg$FAILED;
1306
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
1307
+ }
1308
+ if (s7 !== peg$FAILED) {
1309
+ s8 = input.charAt(peg$currPos);
1310
+ if (peg$r0.test(s8)) {
1311
+ peg$currPos++;
1312
+ } else {
1313
+ s8 = peg$FAILED;
1314
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1315
+ }
1316
+ if (s8 !== peg$FAILED) {
1317
+ s9 = input.charAt(peg$currPos);
1318
+ if (peg$r0.test(s9)) {
1319
+ peg$currPos++;
1320
+ } else {
1321
+ s9 = peg$FAILED;
1322
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1323
+ }
1324
+ if (s9 !== peg$FAILED) {
1325
+ if (input.charCodeAt(peg$currPos) === 45) {
1326
+ s10 = peg$c11;
1327
+ peg$currPos++;
1328
+ } else {
1329
+ s10 = peg$FAILED;
1330
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
1331
+ }
1332
+ if (s10 !== peg$FAILED) {
1333
+ s11 = input.charAt(peg$currPos);
1334
+ if (peg$r0.test(s11)) {
1335
+ peg$currPos++;
1336
+ } else {
1337
+ s11 = peg$FAILED;
1338
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1339
+ }
1340
+ if (s11 !== peg$FAILED) {
1341
+ s12 = input.charAt(peg$currPos);
1342
+ if (peg$r0.test(s12)) {
1343
+ peg$currPos++;
1344
+ } else {
1345
+ s12 = peg$FAILED;
1346
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1347
+ }
1348
+ if (s12 !== peg$FAILED) {
1349
+ s13 = input.charAt(peg$currPos);
1350
+ if (peg$r1.test(s13)) {
1351
+ peg$currPos++;
1352
+ } else {
1353
+ s13 = peg$FAILED;
1354
+ if (peg$silentFails === 0) { peg$fail(peg$e13); }
1355
+ }
1356
+ if (s13 !== peg$FAILED) {
1357
+ s14 = input.charAt(peg$currPos);
1358
+ if (peg$r0.test(s14)) {
1359
+ peg$currPos++;
1360
+ } else {
1361
+ s14 = peg$FAILED;
1362
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1363
+ }
1364
+ if (s14 !== peg$FAILED) {
1365
+ s15 = input.charAt(peg$currPos);
1366
+ if (peg$r0.test(s15)) {
1367
+ peg$currPos++;
1368
+ } else {
1369
+ s15 = peg$FAILED;
1370
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1371
+ }
1372
+ if (s15 !== peg$FAILED) {
1373
+ if (input.charCodeAt(peg$currPos) === 58) {
1374
+ s16 = peg$c12;
1375
+ peg$currPos++;
1376
+ } else {
1377
+ s16 = peg$FAILED;
1378
+ if (peg$silentFails === 0) { peg$fail(peg$e14); }
1379
+ }
1380
+ if (s16 !== peg$FAILED) {
1381
+ s17 = input.charAt(peg$currPos);
1382
+ if (peg$r0.test(s17)) {
1383
+ peg$currPos++;
1384
+ } else {
1385
+ s17 = peg$FAILED;
1386
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1387
+ }
1388
+ if (s17 !== peg$FAILED) {
1389
+ s18 = input.charAt(peg$currPos);
1390
+ if (peg$r0.test(s18)) {
1391
+ peg$currPos++;
1392
+ } else {
1393
+ s18 = peg$FAILED;
1394
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1395
+ }
1396
+ if (s18 !== peg$FAILED) {
1397
+ if (input.charCodeAt(peg$currPos) === 58) {
1398
+ s19 = peg$c12;
1399
+ peg$currPos++;
1400
+ } else {
1401
+ s19 = peg$FAILED;
1402
+ if (peg$silentFails === 0) { peg$fail(peg$e14); }
1403
+ }
1404
+ if (s19 !== peg$FAILED) {
1405
+ s20 = input.charAt(peg$currPos);
1406
+ if (peg$r0.test(s20)) {
1407
+ peg$currPos++;
1408
+ } else {
1409
+ s20 = peg$FAILED;
1410
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1411
+ }
1412
+ if (s20 !== peg$FAILED) {
1413
+ s21 = input.charAt(peg$currPos);
1414
+ if (peg$r0.test(s21)) {
1415
+ peg$currPos++;
1416
+ } else {
1417
+ s21 = peg$FAILED;
1418
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1419
+ }
1420
+ if (s21 !== peg$FAILED) {
1421
+ s22 = peg$currPos;
1422
+ s23 = input.charAt(peg$currPos);
1423
+ if (peg$r2.test(s23)) {
1424
+ peg$currPos++;
1425
+ } else {
1426
+ s23 = peg$FAILED;
1427
+ if (peg$silentFails === 0) { peg$fail(peg$e15); }
1428
+ }
1429
+ if (s23 !== peg$FAILED) {
1430
+ s24 = [];
1431
+ s25 = input.charAt(peg$currPos);
1432
+ if (peg$r0.test(s25)) {
1433
+ peg$currPos++;
1434
+ } else {
1435
+ s25 = peg$FAILED;
1436
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1437
+ }
1438
+ while (s25 !== peg$FAILED) {
1439
+ s24.push(s25);
1440
+ s25 = input.charAt(peg$currPos);
1441
+ if (peg$r0.test(s25)) {
1442
+ peg$currPos++;
1443
+ } else {
1444
+ s25 = peg$FAILED;
1445
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1446
+ }
1447
+ }
1448
+ s23 = [s23, s24];
1449
+ s22 = s23;
1450
+ } else {
1451
+ peg$currPos = s22;
1452
+ s22 = peg$FAILED;
1453
+ }
1454
+ if (s22 === peg$FAILED) {
1455
+ s22 = null;
1456
+ }
1457
+ s3 = [s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22];
1458
+ s2 = s3;
1459
+ } else {
1460
+ peg$currPos = s2;
1461
+ s2 = peg$FAILED;
1462
+ }
1463
+ } else {
1464
+ peg$currPos = s2;
1465
+ s2 = peg$FAILED;
1466
+ }
1467
+ } else {
1468
+ peg$currPos = s2;
1469
+ s2 = peg$FAILED;
1470
+ }
1471
+ } else {
1472
+ peg$currPos = s2;
1473
+ s2 = peg$FAILED;
1474
+ }
1475
+ } else {
1476
+ peg$currPos = s2;
1477
+ s2 = peg$FAILED;
1478
+ }
1479
+ } else {
1480
+ peg$currPos = s2;
1481
+ s2 = peg$FAILED;
1482
+ }
1483
+ } else {
1484
+ peg$currPos = s2;
1485
+ s2 = peg$FAILED;
1486
+ }
1487
+ } else {
1488
+ peg$currPos = s2;
1489
+ s2 = peg$FAILED;
1490
+ }
1491
+ } else {
1492
+ peg$currPos = s2;
1493
+ s2 = peg$FAILED;
1494
+ }
1495
+ } else {
1496
+ peg$currPos = s2;
1497
+ s2 = peg$FAILED;
1498
+ }
1499
+ } else {
1500
+ peg$currPos = s2;
1501
+ s2 = peg$FAILED;
1502
+ }
1503
+ } else {
1504
+ peg$currPos = s2;
1505
+ s2 = peg$FAILED;
1506
+ }
1507
+ } else {
1508
+ peg$currPos = s2;
1509
+ s2 = peg$FAILED;
1510
+ }
1511
+ } else {
1512
+ peg$currPos = s2;
1513
+ s2 = peg$FAILED;
1514
+ }
1515
+ } else {
1516
+ peg$currPos = s2;
1517
+ s2 = peg$FAILED;
1518
+ }
1519
+ } else {
1520
+ peg$currPos = s2;
1521
+ s2 = peg$FAILED;
1522
+ }
1523
+ } else {
1524
+ peg$currPos = s2;
1525
+ s2 = peg$FAILED;
1526
+ }
1527
+ } else {
1528
+ peg$currPos = s2;
1529
+ s2 = peg$FAILED;
1530
+ }
1531
+ } else {
1532
+ peg$currPos = s2;
1533
+ s2 = peg$FAILED;
1534
+ }
1535
+ if (s2 !== peg$FAILED) {
1536
+ s1 = input.substring(s1, peg$currPos);
1537
+ } else {
1538
+ s1 = s2;
1539
+ }
1540
+ if (s1 !== peg$FAILED) {
1541
+ peg$savedPos = s0;
1542
+ s1 = peg$f33(s1);
1543
+ }
1544
+ s0 = s1;
1545
+ if (s0 === peg$FAILED) {
1546
+ s0 = peg$currPos;
1547
+ s1 = peg$currPos;
1548
+ s2 = peg$currPos;
1549
+ s3 = input.charAt(peg$currPos);
1550
+ if (peg$r0.test(s3)) {
1551
+ peg$currPos++;
1552
+ } else {
1553
+ s3 = peg$FAILED;
1554
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1555
+ }
1556
+ if (s3 !== peg$FAILED) {
1557
+ s4 = input.charAt(peg$currPos);
1558
+ if (peg$r0.test(s4)) {
1559
+ peg$currPos++;
1560
+ } else {
1561
+ s4 = peg$FAILED;
1562
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1563
+ }
1564
+ if (s4 !== peg$FAILED) {
1565
+ s5 = input.charAt(peg$currPos);
1566
+ if (peg$r0.test(s5)) {
1567
+ peg$currPos++;
1568
+ } else {
1569
+ s5 = peg$FAILED;
1570
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1571
+ }
1572
+ if (s5 !== peg$FAILED) {
1573
+ s6 = input.charAt(peg$currPos);
1574
+ if (peg$r0.test(s6)) {
1575
+ peg$currPos++;
1576
+ } else {
1577
+ s6 = peg$FAILED;
1578
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1579
+ }
1580
+ if (s6 !== peg$FAILED) {
1581
+ if (input.charCodeAt(peg$currPos) === 45) {
1582
+ s7 = peg$c11;
1583
+ peg$currPos++;
1584
+ } else {
1585
+ s7 = peg$FAILED;
1586
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
1587
+ }
1588
+ if (s7 !== peg$FAILED) {
1589
+ s8 = input.charAt(peg$currPos);
1590
+ if (peg$r0.test(s8)) {
1591
+ peg$currPos++;
1592
+ } else {
1593
+ s8 = peg$FAILED;
1594
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1595
+ }
1596
+ if (s8 !== peg$FAILED) {
1597
+ s9 = input.charAt(peg$currPos);
1598
+ if (peg$r0.test(s9)) {
1599
+ peg$currPos++;
1600
+ } else {
1601
+ s9 = peg$FAILED;
1602
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1603
+ }
1604
+ if (s9 !== peg$FAILED) {
1605
+ if (input.charCodeAt(peg$currPos) === 45) {
1606
+ s10 = peg$c11;
1607
+ peg$currPos++;
1608
+ } else {
1609
+ s10 = peg$FAILED;
1610
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
1611
+ }
1612
+ if (s10 !== peg$FAILED) {
1613
+ s11 = input.charAt(peg$currPos);
1614
+ if (peg$r0.test(s11)) {
1615
+ peg$currPos++;
1616
+ } else {
1617
+ s11 = peg$FAILED;
1618
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1619
+ }
1620
+ if (s11 !== peg$FAILED) {
1621
+ s12 = input.charAt(peg$currPos);
1622
+ if (peg$r0.test(s12)) {
1623
+ peg$currPos++;
1624
+ } else {
1625
+ s12 = peg$FAILED;
1626
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1627
+ }
1628
+ if (s12 !== peg$FAILED) {
1629
+ if (input.charCodeAt(peg$currPos) === 45) {
1630
+ s13 = peg$c11;
1631
+ peg$currPos++;
1632
+ } else {
1633
+ s13 = peg$FAILED;
1634
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
1635
+ }
1636
+ if (s13 !== peg$FAILED) {
1637
+ s14 = input.charAt(peg$currPos);
1638
+ if (peg$r3.test(s14)) {
1639
+ peg$currPos++;
1640
+ } else {
1641
+ s14 = peg$FAILED;
1642
+ if (peg$silentFails === 0) { peg$fail(peg$e16); }
1643
+ }
1644
+ if (s14 !== peg$FAILED) {
1645
+ s15 = input.charAt(peg$currPos);
1646
+ if (peg$r4.test(s15)) {
1647
+ peg$currPos++;
1648
+ } else {
1649
+ s15 = peg$FAILED;
1650
+ if (peg$silentFails === 0) { peg$fail(peg$e17); }
1651
+ }
1652
+ if (s15 !== peg$FAILED) {
1653
+ s3 = [s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15];
1654
+ s2 = s3;
1655
+ } else {
1656
+ peg$currPos = s2;
1657
+ s2 = peg$FAILED;
1658
+ }
1659
+ } else {
1660
+ peg$currPos = s2;
1661
+ s2 = peg$FAILED;
1662
+ }
1663
+ } else {
1664
+ peg$currPos = s2;
1665
+ s2 = peg$FAILED;
1666
+ }
1667
+ } else {
1668
+ peg$currPos = s2;
1669
+ s2 = peg$FAILED;
1670
+ }
1671
+ } else {
1672
+ peg$currPos = s2;
1673
+ s2 = peg$FAILED;
1674
+ }
1675
+ } else {
1676
+ peg$currPos = s2;
1677
+ s2 = peg$FAILED;
1678
+ }
1679
+ } else {
1680
+ peg$currPos = s2;
1681
+ s2 = peg$FAILED;
1682
+ }
1683
+ } else {
1684
+ peg$currPos = s2;
1685
+ s2 = peg$FAILED;
1686
+ }
1687
+ } else {
1688
+ peg$currPos = s2;
1689
+ s2 = peg$FAILED;
1690
+ }
1691
+ } else {
1692
+ peg$currPos = s2;
1693
+ s2 = peg$FAILED;
1694
+ }
1695
+ } else {
1696
+ peg$currPos = s2;
1697
+ s2 = peg$FAILED;
1698
+ }
1699
+ } else {
1700
+ peg$currPos = s2;
1701
+ s2 = peg$FAILED;
1702
+ }
1703
+ } else {
1704
+ peg$currPos = s2;
1705
+ s2 = peg$FAILED;
1706
+ }
1707
+ if (s2 !== peg$FAILED) {
1708
+ s1 = input.substring(s1, peg$currPos);
1709
+ } else {
1710
+ s1 = s2;
1711
+ }
1712
+ if (s1 !== peg$FAILED) {
1713
+ peg$savedPos = s0;
1714
+ s1 = peg$f34(s1);
1715
+ }
1716
+ s0 = s1;
1717
+ if (s0 === peg$FAILED) {
1718
+ s0 = peg$currPos;
1719
+ s1 = peg$currPos;
1720
+ s2 = peg$currPos;
1721
+ s3 = input.charAt(peg$currPos);
1722
+ if (peg$r0.test(s3)) {
1723
+ peg$currPos++;
1724
+ } else {
1725
+ s3 = peg$FAILED;
1726
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1727
+ }
1728
+ if (s3 !== peg$FAILED) {
1729
+ s4 = input.charAt(peg$currPos);
1730
+ if (peg$r0.test(s4)) {
1731
+ peg$currPos++;
1732
+ } else {
1733
+ s4 = peg$FAILED;
1734
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1735
+ }
1736
+ if (s4 !== peg$FAILED) {
1737
+ s5 = input.charAt(peg$currPos);
1738
+ if (peg$r0.test(s5)) {
1739
+ peg$currPos++;
1740
+ } else {
1741
+ s5 = peg$FAILED;
1742
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1743
+ }
1744
+ if (s5 !== peg$FAILED) {
1745
+ s6 = input.charAt(peg$currPos);
1746
+ if (peg$r0.test(s6)) {
1747
+ peg$currPos++;
1748
+ } else {
1749
+ s6 = peg$FAILED;
1750
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1751
+ }
1752
+ if (s6 !== peg$FAILED) {
1753
+ if (input.charCodeAt(peg$currPos) === 45) {
1754
+ s7 = peg$c11;
1755
+ peg$currPos++;
1756
+ } else {
1757
+ s7 = peg$FAILED;
1758
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
1759
+ }
1760
+ if (s7 !== peg$FAILED) {
1761
+ s8 = input.charAt(peg$currPos);
1762
+ if (peg$r5.test(s8)) {
1763
+ peg$currPos++;
1764
+ } else {
1765
+ s8 = peg$FAILED;
1766
+ if (peg$silentFails === 0) { peg$fail(peg$e18); }
1767
+ }
1768
+ if (s8 !== peg$FAILED) {
1769
+ s9 = input.charAt(peg$currPos);
1770
+ if (peg$r6.test(s9)) {
1771
+ peg$currPos++;
1772
+ } else {
1773
+ s9 = peg$FAILED;
1774
+ if (peg$silentFails === 0) { peg$fail(peg$e19); }
1775
+ }
1776
+ if (s9 !== peg$FAILED) {
1777
+ s3 = [s3, s4, s5, s6, s7, s8, s9];
1778
+ s2 = s3;
1779
+ } else {
1780
+ peg$currPos = s2;
1781
+ s2 = peg$FAILED;
1782
+ }
1783
+ } else {
1784
+ peg$currPos = s2;
1785
+ s2 = peg$FAILED;
1786
+ }
1787
+ } else {
1788
+ peg$currPos = s2;
1789
+ s2 = peg$FAILED;
1790
+ }
1791
+ } else {
1792
+ peg$currPos = s2;
1793
+ s2 = peg$FAILED;
1794
+ }
1795
+ } else {
1796
+ peg$currPos = s2;
1797
+ s2 = peg$FAILED;
1798
+ }
1799
+ } else {
1800
+ peg$currPos = s2;
1801
+ s2 = peg$FAILED;
1802
+ }
1803
+ } else {
1804
+ peg$currPos = s2;
1805
+ s2 = peg$FAILED;
1806
+ }
1807
+ if (s2 !== peg$FAILED) {
1808
+ s1 = input.substring(s1, peg$currPos);
1809
+ } else {
1810
+ s1 = s2;
1811
+ }
1812
+ if (s1 !== peg$FAILED) {
1813
+ peg$savedPos = s0;
1814
+ s1 = peg$f35(s1);
1815
+ }
1816
+ s0 = s1;
1817
+ if (s0 === peg$FAILED) {
1818
+ s0 = peg$currPos;
1819
+ s1 = peg$currPos;
1820
+ s2 = peg$currPos;
1821
+ s3 = input.charAt(peg$currPos);
1822
+ if (peg$r0.test(s3)) {
1823
+ peg$currPos++;
1824
+ } else {
1825
+ s3 = peg$FAILED;
1826
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1827
+ }
1828
+ if (s3 !== peg$FAILED) {
1829
+ s4 = input.charAt(peg$currPos);
1830
+ if (peg$r0.test(s4)) {
1831
+ peg$currPos++;
1832
+ } else {
1833
+ s4 = peg$FAILED;
1834
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1835
+ }
1836
+ if (s4 !== peg$FAILED) {
1837
+ s5 = input.charAt(peg$currPos);
1838
+ if (peg$r0.test(s5)) {
1839
+ peg$currPos++;
1840
+ } else {
1841
+ s5 = peg$FAILED;
1842
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1843
+ }
1844
+ if (s5 !== peg$FAILED) {
1845
+ s6 = input.charAt(peg$currPos);
1846
+ if (peg$r0.test(s6)) {
1847
+ peg$currPos++;
1848
+ } else {
1849
+ s6 = peg$FAILED;
1850
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1851
+ }
1852
+ if (s6 !== peg$FAILED) {
1853
+ if (input.charCodeAt(peg$currPos) === 45) {
1854
+ s7 = peg$c11;
1855
+ peg$currPos++;
1856
+ } else {
1857
+ s7 = peg$FAILED;
1858
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
1859
+ }
1860
+ if (s7 !== peg$FAILED) {
1861
+ s8 = input.charAt(peg$currPos);
1862
+ if (peg$r0.test(s8)) {
1863
+ peg$currPos++;
1864
+ } else {
1865
+ s8 = peg$FAILED;
1866
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1867
+ }
1868
+ if (s8 !== peg$FAILED) {
1869
+ s9 = input.charAt(peg$currPos);
1870
+ if (peg$r0.test(s9)) {
1871
+ peg$currPos++;
1872
+ } else {
1873
+ s9 = peg$FAILED;
1874
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1875
+ }
1876
+ if (s9 !== peg$FAILED) {
1877
+ if (input.charCodeAt(peg$currPos) === 45) {
1878
+ s10 = peg$c11;
1879
+ peg$currPos++;
1880
+ } else {
1881
+ s10 = peg$FAILED;
1882
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
1883
+ }
1884
+ if (s10 !== peg$FAILED) {
1885
+ s11 = input.charAt(peg$currPos);
1886
+ if (peg$r0.test(s11)) {
1887
+ peg$currPos++;
1888
+ } else {
1889
+ s11 = peg$FAILED;
1890
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1891
+ }
1892
+ if (s11 !== peg$FAILED) {
1893
+ s12 = input.charAt(peg$currPos);
1894
+ if (peg$r0.test(s12)) {
1895
+ peg$currPos++;
1896
+ } else {
1897
+ s12 = peg$FAILED;
1898
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1899
+ }
1900
+ if (s12 !== peg$FAILED) {
1901
+ s13 = input.charAt(peg$currPos);
1902
+ if (peg$r1.test(s13)) {
1903
+ peg$currPos++;
1904
+ } else {
1905
+ s13 = peg$FAILED;
1906
+ if (peg$silentFails === 0) { peg$fail(peg$e13); }
1907
+ }
1908
+ if (s13 !== peg$FAILED) {
1909
+ s14 = input.charAt(peg$currPos);
1910
+ if (peg$r0.test(s14)) {
1911
+ peg$currPos++;
1912
+ } else {
1913
+ s14 = peg$FAILED;
1914
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1915
+ }
1916
+ if (s14 !== peg$FAILED) {
1917
+ s15 = input.charAt(peg$currPos);
1918
+ if (peg$r0.test(s15)) {
1919
+ peg$currPos++;
1920
+ } else {
1921
+ s15 = peg$FAILED;
1922
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1923
+ }
1924
+ if (s15 !== peg$FAILED) {
1925
+ if (input.charCodeAt(peg$currPos) === 58) {
1926
+ s16 = peg$c12;
1927
+ peg$currPos++;
1928
+ } else {
1929
+ s16 = peg$FAILED;
1930
+ if (peg$silentFails === 0) { peg$fail(peg$e14); }
1931
+ }
1932
+ if (s16 !== peg$FAILED) {
1933
+ s17 = input.charAt(peg$currPos);
1934
+ if (peg$r0.test(s17)) {
1935
+ peg$currPos++;
1936
+ } else {
1937
+ s17 = peg$FAILED;
1938
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1939
+ }
1940
+ if (s17 !== peg$FAILED) {
1941
+ s18 = input.charAt(peg$currPos);
1942
+ if (peg$r0.test(s18)) {
1943
+ peg$currPos++;
1944
+ } else {
1945
+ s18 = peg$FAILED;
1946
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
1947
+ }
1948
+ if (s18 !== peg$FAILED) {
1949
+ s3 = [s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18];
1950
+ s2 = s3;
1951
+ } else {
1952
+ peg$currPos = s2;
1953
+ s2 = peg$FAILED;
1954
+ }
1955
+ } else {
1956
+ peg$currPos = s2;
1957
+ s2 = peg$FAILED;
1958
+ }
1959
+ } else {
1960
+ peg$currPos = s2;
1961
+ s2 = peg$FAILED;
1962
+ }
1963
+ } else {
1964
+ peg$currPos = s2;
1965
+ s2 = peg$FAILED;
1966
+ }
1967
+ } else {
1968
+ peg$currPos = s2;
1969
+ s2 = peg$FAILED;
1970
+ }
1971
+ } else {
1972
+ peg$currPos = s2;
1973
+ s2 = peg$FAILED;
1974
+ }
1975
+ } else {
1976
+ peg$currPos = s2;
1977
+ s2 = peg$FAILED;
1978
+ }
1979
+ } else {
1980
+ peg$currPos = s2;
1981
+ s2 = peg$FAILED;
1982
+ }
1983
+ } else {
1984
+ peg$currPos = s2;
1985
+ s2 = peg$FAILED;
1986
+ }
1987
+ } else {
1988
+ peg$currPos = s2;
1989
+ s2 = peg$FAILED;
1990
+ }
1991
+ } else {
1992
+ peg$currPos = s2;
1993
+ s2 = peg$FAILED;
1994
+ }
1995
+ } else {
1996
+ peg$currPos = s2;
1997
+ s2 = peg$FAILED;
1998
+ }
1999
+ } else {
2000
+ peg$currPos = s2;
2001
+ s2 = peg$FAILED;
2002
+ }
2003
+ } else {
2004
+ peg$currPos = s2;
2005
+ s2 = peg$FAILED;
2006
+ }
2007
+ } else {
2008
+ peg$currPos = s2;
2009
+ s2 = peg$FAILED;
2010
+ }
2011
+ } else {
2012
+ peg$currPos = s2;
2013
+ s2 = peg$FAILED;
2014
+ }
2015
+ if (s2 !== peg$FAILED) {
2016
+ s1 = input.substring(s1, peg$currPos);
2017
+ } else {
2018
+ s1 = s2;
2019
+ }
2020
+ if (s1 !== peg$FAILED) {
2021
+ peg$savedPos = s0;
2022
+ s1 = peg$f36(s1);
2023
+ }
2024
+ s0 = s1;
2025
+ if (s0 === peg$FAILED) {
2026
+ s0 = peg$currPos;
2027
+ s1 = peg$currPos;
2028
+ s2 = peg$currPos;
2029
+ s3 = input.charAt(peg$currPos);
2030
+ if (peg$r0.test(s3)) {
2031
+ peg$currPos++;
2032
+ } else {
2033
+ s3 = peg$FAILED;
2034
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2035
+ }
2036
+ if (s3 !== peg$FAILED) {
2037
+ s4 = input.charAt(peg$currPos);
2038
+ if (peg$r0.test(s4)) {
2039
+ peg$currPos++;
2040
+ } else {
2041
+ s4 = peg$FAILED;
2042
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2043
+ }
2044
+ if (s4 !== peg$FAILED) {
2045
+ s5 = input.charAt(peg$currPos);
2046
+ if (peg$r0.test(s5)) {
2047
+ peg$currPos++;
2048
+ } else {
2049
+ s5 = peg$FAILED;
2050
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2051
+ }
2052
+ if (s5 !== peg$FAILED) {
2053
+ s6 = input.charAt(peg$currPos);
2054
+ if (peg$r0.test(s6)) {
2055
+ peg$currPos++;
2056
+ } else {
2057
+ s6 = peg$FAILED;
2058
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2059
+ }
2060
+ if (s6 !== peg$FAILED) {
2061
+ if (input.charCodeAt(peg$currPos) === 45) {
2062
+ s7 = peg$c11;
2063
+ peg$currPos++;
2064
+ } else {
2065
+ s7 = peg$FAILED;
2066
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
2067
+ }
2068
+ if (s7 !== peg$FAILED) {
2069
+ s8 = input.charAt(peg$currPos);
2070
+ if (peg$r0.test(s8)) {
2071
+ peg$currPos++;
2072
+ } else {
2073
+ s8 = peg$FAILED;
2074
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2075
+ }
2076
+ if (s8 !== peg$FAILED) {
2077
+ s9 = input.charAt(peg$currPos);
2078
+ if (peg$r0.test(s9)) {
2079
+ peg$currPos++;
2080
+ } else {
2081
+ s9 = peg$FAILED;
2082
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2083
+ }
2084
+ if (s9 !== peg$FAILED) {
2085
+ if (input.charCodeAt(peg$currPos) === 45) {
2086
+ s10 = peg$c11;
2087
+ peg$currPos++;
2088
+ } else {
2089
+ s10 = peg$FAILED;
2090
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
2091
+ }
2092
+ if (s10 !== peg$FAILED) {
2093
+ s11 = input.charAt(peg$currPos);
2094
+ if (peg$r0.test(s11)) {
2095
+ peg$currPos++;
2096
+ } else {
2097
+ s11 = peg$FAILED;
2098
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2099
+ }
2100
+ if (s11 !== peg$FAILED) {
2101
+ s12 = input.charAt(peg$currPos);
2102
+ if (peg$r0.test(s12)) {
2103
+ peg$currPos++;
2104
+ } else {
2105
+ s12 = peg$FAILED;
2106
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2107
+ }
2108
+ if (s12 !== peg$FAILED) {
2109
+ s13 = input.charAt(peg$currPos);
2110
+ if (peg$r1.test(s13)) {
2111
+ peg$currPos++;
2112
+ } else {
2113
+ s13 = peg$FAILED;
2114
+ if (peg$silentFails === 0) { peg$fail(peg$e13); }
2115
+ }
2116
+ if (s13 !== peg$FAILED) {
2117
+ s14 = input.charAt(peg$currPos);
2118
+ if (peg$r0.test(s14)) {
2119
+ peg$currPos++;
2120
+ } else {
2121
+ s14 = peg$FAILED;
2122
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2123
+ }
2124
+ if (s14 !== peg$FAILED) {
2125
+ s15 = input.charAt(peg$currPos);
2126
+ if (peg$r0.test(s15)) {
2127
+ peg$currPos++;
2128
+ } else {
2129
+ s15 = peg$FAILED;
2130
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2131
+ }
2132
+ if (s15 !== peg$FAILED) {
2133
+ s3 = [s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15];
2134
+ s2 = s3;
2135
+ } else {
2136
+ peg$currPos = s2;
2137
+ s2 = peg$FAILED;
2138
+ }
2139
+ } else {
2140
+ peg$currPos = s2;
2141
+ s2 = peg$FAILED;
2142
+ }
2143
+ } else {
2144
+ peg$currPos = s2;
2145
+ s2 = peg$FAILED;
2146
+ }
2147
+ } else {
2148
+ peg$currPos = s2;
2149
+ s2 = peg$FAILED;
2150
+ }
2151
+ } else {
2152
+ peg$currPos = s2;
2153
+ s2 = peg$FAILED;
2154
+ }
2155
+ } else {
2156
+ peg$currPos = s2;
2157
+ s2 = peg$FAILED;
2158
+ }
2159
+ } else {
2160
+ peg$currPos = s2;
2161
+ s2 = peg$FAILED;
2162
+ }
2163
+ } else {
2164
+ peg$currPos = s2;
2165
+ s2 = peg$FAILED;
2166
+ }
2167
+ } else {
2168
+ peg$currPos = s2;
2169
+ s2 = peg$FAILED;
2170
+ }
2171
+ } else {
2172
+ peg$currPos = s2;
2173
+ s2 = peg$FAILED;
2174
+ }
2175
+ } else {
2176
+ peg$currPos = s2;
2177
+ s2 = peg$FAILED;
2178
+ }
2179
+ } else {
2180
+ peg$currPos = s2;
2181
+ s2 = peg$FAILED;
2182
+ }
2183
+ } else {
2184
+ peg$currPos = s2;
2185
+ s2 = peg$FAILED;
2186
+ }
2187
+ if (s2 !== peg$FAILED) {
2188
+ s1 = input.substring(s1, peg$currPos);
2189
+ } else {
2190
+ s1 = s2;
2191
+ }
2192
+ if (s1 !== peg$FAILED) {
2193
+ peg$savedPos = s0;
2194
+ s1 = peg$f37(s1);
2195
+ }
2196
+ s0 = s1;
2197
+ if (s0 === peg$FAILED) {
2198
+ s0 = peg$currPos;
2199
+ s1 = peg$currPos;
2200
+ s2 = peg$currPos;
2201
+ s3 = input.charAt(peg$currPos);
2202
+ if (peg$r0.test(s3)) {
2203
+ peg$currPos++;
2204
+ } else {
2205
+ s3 = peg$FAILED;
2206
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2207
+ }
2208
+ if (s3 !== peg$FAILED) {
2209
+ s4 = input.charAt(peg$currPos);
2210
+ if (peg$r0.test(s4)) {
2211
+ peg$currPos++;
2212
+ } else {
2213
+ s4 = peg$FAILED;
2214
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2215
+ }
2216
+ if (s4 !== peg$FAILED) {
2217
+ s5 = input.charAt(peg$currPos);
2218
+ if (peg$r0.test(s5)) {
2219
+ peg$currPos++;
2220
+ } else {
2221
+ s5 = peg$FAILED;
2222
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2223
+ }
2224
+ if (s5 !== peg$FAILED) {
2225
+ s6 = input.charAt(peg$currPos);
2226
+ if (peg$r0.test(s6)) {
2227
+ peg$currPos++;
2228
+ } else {
2229
+ s6 = peg$FAILED;
2230
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2231
+ }
2232
+ if (s6 !== peg$FAILED) {
2233
+ if (input.charCodeAt(peg$currPos) === 45) {
2234
+ s7 = peg$c11;
2235
+ peg$currPos++;
2236
+ } else {
2237
+ s7 = peg$FAILED;
2238
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
2239
+ }
2240
+ if (s7 !== peg$FAILED) {
2241
+ s8 = input.charAt(peg$currPos);
2242
+ if (peg$r0.test(s8)) {
2243
+ peg$currPos++;
2244
+ } else {
2245
+ s8 = peg$FAILED;
2246
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2247
+ }
2248
+ if (s8 !== peg$FAILED) {
2249
+ s9 = input.charAt(peg$currPos);
2250
+ if (peg$r0.test(s9)) {
2251
+ peg$currPos++;
2252
+ } else {
2253
+ s9 = peg$FAILED;
2254
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2255
+ }
2256
+ if (s9 !== peg$FAILED) {
2257
+ if (input.charCodeAt(peg$currPos) === 45) {
2258
+ s10 = peg$c11;
2259
+ peg$currPos++;
2260
+ } else {
2261
+ s10 = peg$FAILED;
2262
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
2263
+ }
2264
+ if (s10 !== peg$FAILED) {
2265
+ s11 = input.charAt(peg$currPos);
2266
+ if (peg$r0.test(s11)) {
2267
+ peg$currPos++;
2268
+ } else {
2269
+ s11 = peg$FAILED;
2270
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2271
+ }
2272
+ if (s11 !== peg$FAILED) {
2273
+ s12 = input.charAt(peg$currPos);
2274
+ if (peg$r0.test(s12)) {
2275
+ peg$currPos++;
2276
+ } else {
2277
+ s12 = peg$FAILED;
2278
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2279
+ }
2280
+ if (s12 !== peg$FAILED) {
2281
+ s3 = [s3, s4, s5, s6, s7, s8, s9, s10, s11, s12];
2282
+ s2 = s3;
2283
+ } else {
2284
+ peg$currPos = s2;
2285
+ s2 = peg$FAILED;
2286
+ }
2287
+ } else {
2288
+ peg$currPos = s2;
2289
+ s2 = peg$FAILED;
2290
+ }
2291
+ } else {
2292
+ peg$currPos = s2;
2293
+ s2 = peg$FAILED;
2294
+ }
2295
+ } else {
2296
+ peg$currPos = s2;
2297
+ s2 = peg$FAILED;
2298
+ }
2299
+ } else {
2300
+ peg$currPos = s2;
2301
+ s2 = peg$FAILED;
2302
+ }
2303
+ } else {
2304
+ peg$currPos = s2;
2305
+ s2 = peg$FAILED;
2306
+ }
2307
+ } else {
2308
+ peg$currPos = s2;
2309
+ s2 = peg$FAILED;
2310
+ }
2311
+ } else {
2312
+ peg$currPos = s2;
2313
+ s2 = peg$FAILED;
2314
+ }
2315
+ } else {
2316
+ peg$currPos = s2;
2317
+ s2 = peg$FAILED;
2318
+ }
2319
+ } else {
2320
+ peg$currPos = s2;
2321
+ s2 = peg$FAILED;
2322
+ }
2323
+ if (s2 !== peg$FAILED) {
2324
+ s1 = input.substring(s1, peg$currPos);
2325
+ } else {
2326
+ s1 = s2;
2327
+ }
2328
+ if (s1 !== peg$FAILED) {
2329
+ peg$savedPos = s0;
2330
+ s1 = peg$f38(s1);
2331
+ }
2332
+ s0 = s1;
2333
+ if (s0 === peg$FAILED) {
2334
+ s0 = peg$currPos;
2335
+ s1 = peg$currPos;
2336
+ s2 = peg$currPos;
2337
+ s3 = input.charAt(peg$currPos);
2338
+ if (peg$r0.test(s3)) {
2339
+ peg$currPos++;
2340
+ } else {
2341
+ s3 = peg$FAILED;
2342
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2343
+ }
2344
+ if (s3 !== peg$FAILED) {
2345
+ s4 = input.charAt(peg$currPos);
2346
+ if (peg$r0.test(s4)) {
2347
+ peg$currPos++;
2348
+ } else {
2349
+ s4 = peg$FAILED;
2350
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2351
+ }
2352
+ if (s4 !== peg$FAILED) {
2353
+ s5 = input.charAt(peg$currPos);
2354
+ if (peg$r0.test(s5)) {
2355
+ peg$currPos++;
2356
+ } else {
2357
+ s5 = peg$FAILED;
2358
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2359
+ }
2360
+ if (s5 !== peg$FAILED) {
2361
+ s6 = input.charAt(peg$currPos);
2362
+ if (peg$r0.test(s6)) {
2363
+ peg$currPos++;
2364
+ } else {
2365
+ s6 = peg$FAILED;
2366
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2367
+ }
2368
+ if (s6 !== peg$FAILED) {
2369
+ if (input.charCodeAt(peg$currPos) === 45) {
2370
+ s7 = peg$c11;
2371
+ peg$currPos++;
2372
+ } else {
2373
+ s7 = peg$FAILED;
2374
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
2375
+ }
2376
+ if (s7 !== peg$FAILED) {
2377
+ s8 = input.charAt(peg$currPos);
2378
+ if (peg$r0.test(s8)) {
2379
+ peg$currPos++;
2380
+ } else {
2381
+ s8 = peg$FAILED;
2382
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2383
+ }
2384
+ if (s8 !== peg$FAILED) {
2385
+ s9 = input.charAt(peg$currPos);
2386
+ if (peg$r0.test(s9)) {
2387
+ peg$currPos++;
2388
+ } else {
2389
+ s9 = peg$FAILED;
2390
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2391
+ }
2392
+ if (s9 !== peg$FAILED) {
2393
+ s3 = [s3, s4, s5, s6, s7, s8, s9];
2394
+ s2 = s3;
2395
+ } else {
2396
+ peg$currPos = s2;
2397
+ s2 = peg$FAILED;
2398
+ }
2399
+ } else {
2400
+ peg$currPos = s2;
2401
+ s2 = peg$FAILED;
2402
+ }
2403
+ } else {
2404
+ peg$currPos = s2;
2405
+ s2 = peg$FAILED;
2406
+ }
2407
+ } else {
2408
+ peg$currPos = s2;
2409
+ s2 = peg$FAILED;
2410
+ }
2411
+ } else {
2412
+ peg$currPos = s2;
2413
+ s2 = peg$FAILED;
2414
+ }
2415
+ } else {
2416
+ peg$currPos = s2;
2417
+ s2 = peg$FAILED;
2418
+ }
2419
+ } else {
2420
+ peg$currPos = s2;
2421
+ s2 = peg$FAILED;
2422
+ }
2423
+ if (s2 !== peg$FAILED) {
2424
+ s1 = input.substring(s1, peg$currPos);
2425
+ } else {
2426
+ s1 = s2;
2427
+ }
2428
+ if (s1 !== peg$FAILED) {
2429
+ peg$savedPos = s0;
2430
+ s1 = peg$f39(s1);
2431
+ }
2432
+ s0 = s1;
2433
+ if (s0 === peg$FAILED) {
2434
+ s0 = peg$currPos;
2435
+ s1 = peg$currPos;
2436
+ s2 = peg$currPos;
2437
+ s3 = input.charAt(peg$currPos);
2438
+ if (peg$r0.test(s3)) {
2439
+ peg$currPos++;
2440
+ } else {
2441
+ s3 = peg$FAILED;
2442
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2443
+ }
2444
+ if (s3 !== peg$FAILED) {
2445
+ s4 = input.charAt(peg$currPos);
2446
+ if (peg$r0.test(s4)) {
2447
+ peg$currPos++;
2448
+ } else {
2449
+ s4 = peg$FAILED;
2450
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2451
+ }
2452
+ if (s4 !== peg$FAILED) {
2453
+ s5 = input.charAt(peg$currPos);
2454
+ if (peg$r0.test(s5)) {
2455
+ peg$currPos++;
2456
+ } else {
2457
+ s5 = peg$FAILED;
2458
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2459
+ }
2460
+ if (s5 !== peg$FAILED) {
2461
+ s6 = input.charAt(peg$currPos);
2462
+ if (peg$r0.test(s6)) {
2463
+ peg$currPos++;
2464
+ } else {
2465
+ s6 = peg$FAILED;
2466
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
2467
+ }
2468
+ if (s6 !== peg$FAILED) {
2469
+ s3 = [s3, s4, s5, s6];
2470
+ s2 = s3;
2471
+ } else {
2472
+ peg$currPos = s2;
2473
+ s2 = peg$FAILED;
2474
+ }
2475
+ } else {
2476
+ peg$currPos = s2;
2477
+ s2 = peg$FAILED;
2478
+ }
2479
+ } else {
2480
+ peg$currPos = s2;
2481
+ s2 = peg$FAILED;
2482
+ }
2483
+ } else {
2484
+ peg$currPos = s2;
2485
+ s2 = peg$FAILED;
2486
+ }
2487
+ if (s2 !== peg$FAILED) {
2488
+ s1 = input.substring(s1, peg$currPos);
2489
+ } else {
2490
+ s1 = s2;
2491
+ }
2492
+ if (s1 !== peg$FAILED) {
2493
+ peg$savedPos = s0;
2494
+ s1 = peg$f40(s1);
2495
+ }
2496
+ s0 = s1;
2497
+ }
2498
+ }
2499
+ }
2500
+ }
2501
+ }
2502
+ }
2503
+ }
2504
+
2505
+ return s0;
2506
+ }
2507
+
2508
+ function peg$parseweekday() {
2509
+ var s0, s1, s2;
2510
+
2511
+ s0 = peg$currPos;
2512
+ s1 = peg$currPos;
2513
+ s2 = peg$parseMONDAY();
2514
+ if (s2 === peg$FAILED) {
2515
+ s2 = peg$parseTUESDAY();
2516
+ if (s2 === peg$FAILED) {
2517
+ s2 = peg$parseWEDNESDAY();
2518
+ if (s2 === peg$FAILED) {
2519
+ s2 = peg$parseTHURSDAY();
2520
+ if (s2 === peg$FAILED) {
2521
+ s2 = peg$parseFRIDAY();
2522
+ if (s2 === peg$FAILED) {
2523
+ s2 = peg$parseSATURDAY();
2524
+ if (s2 === peg$FAILED) {
2525
+ s2 = peg$parseSUNDAY();
2526
+ }
2527
+ }
2528
+ }
2529
+ }
2530
+ }
2531
+ }
2532
+ if (s2 !== peg$FAILED) {
2533
+ s1 = input.substring(s1, peg$currPos);
2534
+ } else {
2535
+ s1 = s2;
2536
+ }
2537
+ if (s1 !== peg$FAILED) {
2538
+ peg$savedPos = s0;
2539
+ s1 = peg$f41(s1);
2540
+ }
2541
+ s0 = s1;
2542
+
2543
+ return s0;
2544
+ }
2545
+
2546
+ function peg$parseconjunction() {
2547
+ var s0, s1;
2548
+
2549
+ s0 = peg$currPos;
2550
+ s1 = peg$parseOR();
2551
+ if (s1 !== peg$FAILED) {
2552
+ peg$savedPos = s0;
2553
+ s1 = peg$f42();
2554
+ }
2555
+ s0 = s1;
2556
+ if (s0 === peg$FAILED) {
2557
+ s0 = peg$currPos;
2558
+ s1 = peg$parseAND();
2559
+ if (s1 !== peg$FAILED) {
2560
+ peg$savedPos = s0;
2561
+ s1 = peg$f43();
2562
+ }
2563
+ s0 = s1;
2564
+ }
2565
+
2566
+ return s0;
2567
+ }
2568
+
2569
+ function peg$parseNOT() {
2570
+ var s0, s1, s2, s3;
2571
+
2572
+ s0 = peg$currPos;
2573
+ s1 = input.substr(peg$currPos, 3);
2574
+ if (s1.toLowerCase() === peg$c13) {
2575
+ peg$currPos += 3;
2576
+ } else {
2577
+ s1 = peg$FAILED;
2578
+ if (peg$silentFails === 0) { peg$fail(peg$e20); }
2579
+ }
2580
+ if (s1 !== peg$FAILED) {
2581
+ s2 = peg$currPos;
2582
+ peg$silentFails++;
2583
+ s3 = peg$parseidChar();
2584
+ peg$silentFails--;
2585
+ if (s3 === peg$FAILED) {
2586
+ s2 = undefined;
2587
+ } else {
2588
+ peg$currPos = s2;
2589
+ s2 = peg$FAILED;
2590
+ }
2591
+ if (s2 !== peg$FAILED) {
2592
+ s1 = [s1, s2];
2593
+ s0 = s1;
2594
+ } else {
2595
+ peg$currPos = s0;
2596
+ s0 = peg$FAILED;
2597
+ }
2598
+ } else {
2599
+ peg$currPos = s0;
2600
+ s0 = peg$FAILED;
2601
+ }
2602
+
2603
+ return s0;
2604
+ }
2605
+
2606
+ function peg$parseNULL() {
2607
+ var s0, s1, s2, s3;
2608
+
2609
+ s0 = peg$currPos;
2610
+ s1 = input.substr(peg$currPos, 4);
2611
+ if (s1.toLowerCase() === peg$c14) {
2612
+ peg$currPos += 4;
2613
+ } else {
2614
+ s1 = peg$FAILED;
2615
+ if (peg$silentFails === 0) { peg$fail(peg$e21); }
2616
+ }
2617
+ if (s1 !== peg$FAILED) {
2618
+ s2 = peg$currPos;
2619
+ peg$silentFails++;
2620
+ s3 = peg$parseidChar();
2621
+ peg$silentFails--;
2622
+ if (s3 === peg$FAILED) {
2623
+ s2 = undefined;
2624
+ } else {
2625
+ peg$currPos = s2;
2626
+ s2 = peg$FAILED;
2627
+ }
2628
+ if (s2 !== peg$FAILED) {
2629
+ s1 = [s1, s2];
2630
+ s0 = s1;
2631
+ } else {
2632
+ peg$currPos = s0;
2633
+ s0 = peg$FAILED;
2634
+ }
2635
+ } else {
2636
+ peg$currPos = s0;
2637
+ s0 = peg$FAILED;
2638
+ }
2639
+
2640
+ return s0;
2641
+ }
2642
+
2643
+ function peg$parseTO() {
2644
+ var s0, s1, s2, s3;
2645
+
2646
+ s0 = peg$currPos;
2647
+ s1 = input.substr(peg$currPos, 2);
2648
+ if (s1.toLowerCase() === peg$c15) {
2649
+ peg$currPos += 2;
2650
+ } else {
2651
+ s1 = peg$FAILED;
2652
+ if (peg$silentFails === 0) { peg$fail(peg$e22); }
2653
+ }
2654
+ if (s1 !== peg$FAILED) {
2655
+ s2 = peg$currPos;
2656
+ peg$silentFails++;
2657
+ s3 = peg$parseidChar();
2658
+ peg$silentFails--;
2659
+ if (s3 === peg$FAILED) {
2660
+ s2 = undefined;
2661
+ } else {
2662
+ peg$currPos = s2;
2663
+ s2 = peg$FAILED;
2664
+ }
2665
+ if (s2 !== peg$FAILED) {
2666
+ s1 = [s1, s2];
2667
+ s0 = s1;
2668
+ } else {
2669
+ peg$currPos = s0;
2670
+ s0 = peg$FAILED;
2671
+ }
2672
+ } else {
2673
+ peg$currPos = s0;
2674
+ s0 = peg$FAILED;
2675
+ }
2676
+
2677
+ return s0;
2678
+ }
2679
+
2680
+ function peg$parseNOW() {
2681
+ var s0, s1, s2, s3;
2682
+
2683
+ s0 = peg$currPos;
2684
+ s1 = input.substr(peg$currPos, 3);
2685
+ if (s1.toLowerCase() === peg$c16) {
2686
+ peg$currPos += 3;
2687
+ } else {
2688
+ s1 = peg$FAILED;
2689
+ if (peg$silentFails === 0) { peg$fail(peg$e23); }
2690
+ }
2691
+ if (s1 !== peg$FAILED) {
2692
+ s2 = peg$currPos;
2693
+ peg$silentFails++;
2694
+ s3 = peg$parseidChar();
2695
+ peg$silentFails--;
2696
+ if (s3 === peg$FAILED) {
2697
+ s2 = undefined;
2698
+ } else {
2699
+ peg$currPos = s2;
2700
+ s2 = peg$FAILED;
2701
+ }
2702
+ if (s2 !== peg$FAILED) {
2703
+ s1 = [s1, s2];
2704
+ s0 = s1;
2705
+ } else {
2706
+ peg$currPos = s0;
2707
+ s0 = peg$FAILED;
2708
+ }
2709
+ } else {
2710
+ peg$currPos = s0;
2711
+ s0 = peg$FAILED;
2712
+ }
2713
+
2714
+ return s0;
2715
+ }
2716
+
2717
+ function peg$parseLAST() {
2718
+ var s0, s1, s2, s3;
2719
+
2720
+ s0 = peg$currPos;
2721
+ s1 = input.substr(peg$currPos, 4);
2722
+ if (s1.toLowerCase() === peg$c17) {
2723
+ peg$currPos += 4;
2724
+ } else {
2725
+ s1 = peg$FAILED;
2726
+ if (peg$silentFails === 0) { peg$fail(peg$e24); }
2727
+ }
2728
+ if (s1 !== peg$FAILED) {
2729
+ s2 = peg$currPos;
2730
+ peg$silentFails++;
2731
+ s3 = peg$parseidChar();
2732
+ peg$silentFails--;
2733
+ if (s3 === peg$FAILED) {
2734
+ s2 = undefined;
2735
+ } else {
2736
+ peg$currPos = s2;
2737
+ s2 = peg$FAILED;
2738
+ }
2739
+ if (s2 !== peg$FAILED) {
2740
+ s1 = [s1, s2];
2741
+ s0 = s1;
2742
+ } else {
2743
+ peg$currPos = s0;
2744
+ s0 = peg$FAILED;
2745
+ }
2746
+ } else {
2747
+ peg$currPos = s0;
2748
+ s0 = peg$FAILED;
2749
+ }
2750
+
2751
+ return s0;
2752
+ }
2753
+
2754
+ function peg$parseTHIS() {
2755
+ var s0, s1, s2, s3;
2756
+
2757
+ s0 = peg$currPos;
2758
+ s1 = input.substr(peg$currPos, 4);
2759
+ if (s1.toLowerCase() === peg$c18) {
2760
+ peg$currPos += 4;
2761
+ } else {
2762
+ s1 = peg$FAILED;
2763
+ if (peg$silentFails === 0) { peg$fail(peg$e25); }
2764
+ }
2765
+ if (s1 !== peg$FAILED) {
2766
+ s2 = peg$currPos;
2767
+ peg$silentFails++;
2768
+ s3 = peg$parseidChar();
2769
+ peg$silentFails--;
2770
+ if (s3 === peg$FAILED) {
2771
+ s2 = undefined;
2772
+ } else {
2773
+ peg$currPos = s2;
2774
+ s2 = peg$FAILED;
2775
+ }
2776
+ if (s2 !== peg$FAILED) {
2777
+ s1 = [s1, s2];
2778
+ s0 = s1;
2779
+ } else {
2780
+ peg$currPos = s0;
2781
+ s0 = peg$FAILED;
2782
+ }
2783
+ } else {
2784
+ peg$currPos = s0;
2785
+ s0 = peg$FAILED;
2786
+ }
2787
+
2788
+ return s0;
2789
+ }
2790
+
2791
+ function peg$parseNEXT() {
2792
+ var s0, s1, s2, s3;
2793
+
2794
+ s0 = peg$currPos;
2795
+ s1 = input.substr(peg$currPos, 4);
2796
+ if (s1.toLowerCase() === peg$c19) {
2797
+ peg$currPos += 4;
2798
+ } else {
2799
+ s1 = peg$FAILED;
2800
+ if (peg$silentFails === 0) { peg$fail(peg$e26); }
2801
+ }
2802
+ if (s1 !== peg$FAILED) {
2803
+ s2 = peg$currPos;
2804
+ peg$silentFails++;
2805
+ s3 = peg$parseidChar();
2806
+ peg$silentFails--;
2807
+ if (s3 === peg$FAILED) {
2808
+ s2 = undefined;
2809
+ } else {
2810
+ peg$currPos = s2;
2811
+ s2 = peg$FAILED;
2812
+ }
2813
+ if (s2 !== peg$FAILED) {
2814
+ s1 = [s1, s2];
2815
+ s0 = s1;
2816
+ } else {
2817
+ peg$currPos = s0;
2818
+ s0 = peg$FAILED;
2819
+ }
2820
+ } else {
2821
+ peg$currPos = s0;
2822
+ s0 = peg$FAILED;
2823
+ }
2824
+
2825
+ return s0;
2826
+ }
2827
+
2828
+ function peg$parseAGO() {
2829
+ var s0, s1, s2, s3;
2830
+
2831
+ s0 = peg$currPos;
2832
+ s1 = input.substr(peg$currPos, 3);
2833
+ if (s1.toLowerCase() === peg$c20) {
2834
+ peg$currPos += 3;
2835
+ } else {
2836
+ s1 = peg$FAILED;
2837
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
2838
+ }
2839
+ if (s1 !== peg$FAILED) {
2840
+ s2 = peg$currPos;
2841
+ peg$silentFails++;
2842
+ s3 = peg$parseidChar();
2843
+ peg$silentFails--;
2844
+ if (s3 === peg$FAILED) {
2845
+ s2 = undefined;
2846
+ } else {
2847
+ peg$currPos = s2;
2848
+ s2 = peg$FAILED;
2849
+ }
2850
+ if (s2 !== peg$FAILED) {
2851
+ s1 = [s1, s2];
2852
+ s0 = s1;
2853
+ } else {
2854
+ peg$currPos = s0;
2855
+ s0 = peg$FAILED;
2856
+ }
2857
+ } else {
2858
+ peg$currPos = s0;
2859
+ s0 = peg$FAILED;
2860
+ }
2861
+
2862
+ return s0;
2863
+ }
2864
+
2865
+ function peg$parseFROM() {
2866
+ var s0, s1, s2, s3;
2867
+
2868
+ s0 = peg$currPos;
2869
+ s1 = input.substr(peg$currPos, 4);
2870
+ if (s1.toLowerCase() === peg$c21) {
2871
+ peg$currPos += 4;
2872
+ } else {
2873
+ s1 = peg$FAILED;
2874
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
2875
+ }
2876
+ if (s1 !== peg$FAILED) {
2877
+ s2 = peg$currPos;
2878
+ peg$silentFails++;
2879
+ s3 = peg$parseidChar();
2880
+ peg$silentFails--;
2881
+ if (s3 === peg$FAILED) {
2882
+ s2 = undefined;
2883
+ } else {
2884
+ peg$currPos = s2;
2885
+ s2 = peg$FAILED;
2886
+ }
2887
+ if (s2 !== peg$FAILED) {
2888
+ s1 = [s1, s2];
2889
+ s0 = s1;
2890
+ } else {
2891
+ peg$currPos = s0;
2892
+ s0 = peg$FAILED;
2893
+ }
2894
+ } else {
2895
+ peg$currPos = s0;
2896
+ s0 = peg$FAILED;
2897
+ }
2898
+
2899
+ return s0;
2900
+ }
2901
+
2902
+ function peg$parseBEFORE() {
2903
+ var s0, s1, s2, s3;
2904
+
2905
+ s0 = peg$currPos;
2906
+ s1 = input.substr(peg$currPos, 6);
2907
+ if (s1.toLowerCase() === peg$c22) {
2908
+ peg$currPos += 6;
2909
+ } else {
2910
+ s1 = peg$FAILED;
2911
+ if (peg$silentFails === 0) { peg$fail(peg$e29); }
2912
+ }
2913
+ if (s1 !== peg$FAILED) {
2914
+ s2 = peg$currPos;
2915
+ peg$silentFails++;
2916
+ s3 = peg$parseidChar();
2917
+ peg$silentFails--;
2918
+ if (s3 === peg$FAILED) {
2919
+ s2 = undefined;
2920
+ } else {
2921
+ peg$currPos = s2;
2922
+ s2 = peg$FAILED;
2923
+ }
2924
+ if (s2 !== peg$FAILED) {
2925
+ s1 = [s1, s2];
2926
+ s0 = s1;
2927
+ } else {
2928
+ peg$currPos = s0;
2929
+ s0 = peg$FAILED;
2930
+ }
2931
+ } else {
2932
+ peg$currPos = s0;
2933
+ s0 = peg$FAILED;
2934
+ }
2935
+
2936
+ return s0;
2937
+ }
2938
+
2939
+ function peg$parseAFTER() {
2940
+ var s0, s1, s2, s3;
2941
+
2942
+ s0 = peg$currPos;
2943
+ s1 = input.substr(peg$currPos, 5);
2944
+ if (s1.toLowerCase() === peg$c23) {
2945
+ peg$currPos += 5;
2946
+ } else {
2947
+ s1 = peg$FAILED;
2948
+ if (peg$silentFails === 0) { peg$fail(peg$e30); }
2949
+ }
2950
+ if (s1 !== peg$FAILED) {
2951
+ s2 = peg$currPos;
2952
+ peg$silentFails++;
2953
+ s3 = peg$parseidChar();
2954
+ peg$silentFails--;
2955
+ if (s3 === peg$FAILED) {
2956
+ s2 = undefined;
2957
+ } else {
2958
+ peg$currPos = s2;
2959
+ s2 = peg$FAILED;
2960
+ }
2961
+ if (s2 !== peg$FAILED) {
2962
+ s1 = [s1, s2];
2963
+ s0 = s1;
2964
+ } else {
2965
+ peg$currPos = s0;
2966
+ s0 = peg$FAILED;
2967
+ }
2968
+ } else {
2969
+ peg$currPos = s0;
2970
+ s0 = peg$FAILED;
2971
+ }
2972
+
2973
+ return s0;
2974
+ }
2975
+
2976
+ function peg$parseTHROUGH() {
2977
+ var s0, s1, s2, s3;
2978
+
2979
+ s0 = peg$currPos;
2980
+ s1 = input.substr(peg$currPos, 7);
2981
+ if (s1.toLowerCase() === peg$c24) {
2982
+ peg$currPos += 7;
2983
+ } else {
2984
+ s1 = peg$FAILED;
2985
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
2986
+ }
2987
+ if (s1 !== peg$FAILED) {
2988
+ s2 = peg$currPos;
2989
+ peg$silentFails++;
2990
+ s3 = peg$parseidChar();
2991
+ peg$silentFails--;
2992
+ if (s3 === peg$FAILED) {
2993
+ s2 = undefined;
2994
+ } else {
2995
+ peg$currPos = s2;
2996
+ s2 = peg$FAILED;
2997
+ }
2998
+ if (s2 !== peg$FAILED) {
2999
+ s1 = [s1, s2];
3000
+ s0 = s1;
3001
+ } else {
3002
+ peg$currPos = s0;
3003
+ s0 = peg$FAILED;
3004
+ }
3005
+ } else {
3006
+ peg$currPos = s0;
3007
+ s0 = peg$FAILED;
3008
+ }
3009
+
3010
+ return s0;
3011
+ }
3012
+
3013
+ function peg$parseSTARTING() {
3014
+ var s0, s1, s2, s3;
3015
+
3016
+ s0 = peg$currPos;
3017
+ s1 = input.substr(peg$currPos, 8);
3018
+ if (s1.toLowerCase() === peg$c25) {
3019
+ peg$currPos += 8;
3020
+ } else {
3021
+ s1 = peg$FAILED;
3022
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
3023
+ }
3024
+ if (s1 !== peg$FAILED) {
3025
+ s2 = peg$currPos;
3026
+ peg$silentFails++;
3027
+ s3 = peg$parseidChar();
3028
+ peg$silentFails--;
3029
+ if (s3 === peg$FAILED) {
3030
+ s2 = undefined;
3031
+ } else {
3032
+ peg$currPos = s2;
3033
+ s2 = peg$FAILED;
3034
+ }
3035
+ if (s2 !== peg$FAILED) {
3036
+ s1 = [s1, s2];
3037
+ s0 = s1;
3038
+ } else {
3039
+ peg$currPos = s0;
3040
+ s0 = peg$FAILED;
3041
+ }
3042
+ } else {
3043
+ peg$currPos = s0;
3044
+ s0 = peg$FAILED;
3045
+ }
3046
+
3047
+ return s0;
3048
+ }
3049
+
3050
+ function peg$parseFOR() {
3051
+ var s0, s1, s2, s3;
3052
+
3053
+ s0 = peg$currPos;
3054
+ s1 = input.substr(peg$currPos, 3);
3055
+ if (s1.toLowerCase() === peg$c26) {
3056
+ peg$currPos += 3;
3057
+ } else {
3058
+ s1 = peg$FAILED;
3059
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
3060
+ }
3061
+ if (s1 !== peg$FAILED) {
3062
+ s2 = peg$currPos;
3063
+ peg$silentFails++;
3064
+ s3 = peg$parseidChar();
3065
+ peg$silentFails--;
3066
+ if (s3 === peg$FAILED) {
3067
+ s2 = undefined;
3068
+ } else {
3069
+ peg$currPos = s2;
3070
+ s2 = peg$FAILED;
3071
+ }
3072
+ if (s2 !== peg$FAILED) {
3073
+ s1 = [s1, s2];
3074
+ s0 = s1;
3075
+ } else {
3076
+ peg$currPos = s0;
3077
+ s0 = peg$FAILED;
3078
+ }
3079
+ } else {
3080
+ peg$currPos = s0;
3081
+ s0 = peg$FAILED;
3082
+ }
3083
+
3084
+ return s0;
3085
+ }
3086
+
3087
+ function peg$parseTODAY() {
3088
+ var s0, s1, s2, s3;
3089
+
3090
+ s0 = peg$currPos;
3091
+ s1 = input.substr(peg$currPos, 5);
3092
+ if (s1.toLowerCase() === peg$c27) {
3093
+ peg$currPos += 5;
3094
+ } else {
3095
+ s1 = peg$FAILED;
3096
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
3097
+ }
3098
+ if (s1 !== peg$FAILED) {
3099
+ s2 = peg$currPos;
3100
+ peg$silentFails++;
3101
+ s3 = peg$parseidChar();
3102
+ peg$silentFails--;
3103
+ if (s3 === peg$FAILED) {
3104
+ s2 = undefined;
3105
+ } else {
3106
+ peg$currPos = s2;
3107
+ s2 = peg$FAILED;
3108
+ }
3109
+ if (s2 !== peg$FAILED) {
3110
+ s1 = [s1, s2];
3111
+ s0 = s1;
3112
+ } else {
3113
+ peg$currPos = s0;
3114
+ s0 = peg$FAILED;
3115
+ }
3116
+ } else {
3117
+ peg$currPos = s0;
3118
+ s0 = peg$FAILED;
3119
+ }
3120
+
3121
+ return s0;
3122
+ }
3123
+
3124
+ function peg$parseYESTERDAY() {
3125
+ var s0, s1, s2, s3;
3126
+
3127
+ s0 = peg$currPos;
3128
+ s1 = input.substr(peg$currPos, 9);
3129
+ if (s1.toLowerCase() === peg$c28) {
3130
+ peg$currPos += 9;
3131
+ } else {
3132
+ s1 = peg$FAILED;
3133
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
3134
+ }
3135
+ if (s1 !== peg$FAILED) {
3136
+ s2 = peg$currPos;
3137
+ peg$silentFails++;
3138
+ s3 = peg$parseidChar();
3139
+ peg$silentFails--;
3140
+ if (s3 === peg$FAILED) {
3141
+ s2 = undefined;
3142
+ } else {
3143
+ peg$currPos = s2;
3144
+ s2 = peg$FAILED;
3145
+ }
3146
+ if (s2 !== peg$FAILED) {
3147
+ s1 = [s1, s2];
3148
+ s0 = s1;
3149
+ } else {
3150
+ peg$currPos = s0;
3151
+ s0 = peg$FAILED;
3152
+ }
3153
+ } else {
3154
+ peg$currPos = s0;
3155
+ s0 = peg$FAILED;
3156
+ }
3157
+
3158
+ return s0;
3159
+ }
3160
+
3161
+ function peg$parseTOMORROW() {
3162
+ var s0, s1, s2, s3;
3163
+
3164
+ s0 = peg$currPos;
3165
+ s1 = input.substr(peg$currPos, 8);
3166
+ if (s1.toLowerCase() === peg$c29) {
3167
+ peg$currPos += 8;
3168
+ } else {
3169
+ s1 = peg$FAILED;
3170
+ if (peg$silentFails === 0) { peg$fail(peg$e36); }
3171
+ }
3172
+ if (s1 !== peg$FAILED) {
3173
+ s2 = peg$currPos;
3174
+ peg$silentFails++;
3175
+ s3 = peg$parseidChar();
3176
+ peg$silentFails--;
3177
+ if (s3 === peg$FAILED) {
3178
+ s2 = undefined;
3179
+ } else {
3180
+ peg$currPos = s2;
3181
+ s2 = peg$FAILED;
3182
+ }
3183
+ if (s2 !== peg$FAILED) {
3184
+ s1 = [s1, s2];
3185
+ s0 = s1;
3186
+ } else {
3187
+ peg$currPos = s0;
3188
+ s0 = peg$FAILED;
3189
+ }
3190
+ } else {
3191
+ peg$currPos = s0;
3192
+ s0 = peg$FAILED;
3193
+ }
3194
+
3195
+ return s0;
3196
+ }
3197
+
3198
+ function peg$parseAND() {
3199
+ var s0, s1, s2, s3;
3200
+
3201
+ s0 = peg$currPos;
3202
+ s1 = input.substr(peg$currPos, 3);
3203
+ if (s1.toLowerCase() === peg$c30) {
3204
+ peg$currPos += 3;
3205
+ } else {
3206
+ s1 = peg$FAILED;
3207
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
3208
+ }
3209
+ if (s1 !== peg$FAILED) {
3210
+ s2 = peg$currPos;
3211
+ peg$silentFails++;
3212
+ s3 = peg$parseidChar();
3213
+ peg$silentFails--;
3214
+ if (s3 === peg$FAILED) {
3215
+ s2 = undefined;
3216
+ } else {
3217
+ peg$currPos = s2;
3218
+ s2 = peg$FAILED;
3219
+ }
3220
+ if (s2 !== peg$FAILED) {
3221
+ s1 = [s1, s2];
3222
+ s0 = s1;
3223
+ } else {
3224
+ peg$currPos = s0;
3225
+ s0 = peg$FAILED;
3226
+ }
3227
+ } else {
3228
+ peg$currPos = s0;
3229
+ s0 = peg$FAILED;
3230
+ }
3231
+
3232
+ return s0;
3233
+ }
3234
+
3235
+ function peg$parseOR() {
3236
+ var s0, s1, s2, s3;
3237
+
3238
+ s0 = peg$currPos;
3239
+ s1 = input.substr(peg$currPos, 2);
3240
+ if (s1.toLowerCase() === peg$c31) {
3241
+ peg$currPos += 2;
3242
+ } else {
3243
+ s1 = peg$FAILED;
3244
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
3245
+ }
3246
+ if (s1 !== peg$FAILED) {
3247
+ s2 = peg$currPos;
3248
+ peg$silentFails++;
3249
+ s3 = peg$parseidChar();
3250
+ peg$silentFails--;
3251
+ if (s3 === peg$FAILED) {
3252
+ s2 = undefined;
3253
+ } else {
3254
+ peg$currPos = s2;
3255
+ s2 = peg$FAILED;
3256
+ }
3257
+ if (s2 !== peg$FAILED) {
3258
+ s1 = [s1, s2];
3259
+ s0 = s1;
3260
+ } else {
3261
+ peg$currPos = s0;
3262
+ s0 = peg$FAILED;
3263
+ }
3264
+ } else {
3265
+ peg$currPos = s0;
3266
+ s0 = peg$FAILED;
3267
+ }
3268
+
3269
+ return s0;
3270
+ }
3271
+
3272
+ function peg$parseMONDAY() {
3273
+ var s0, s1, s2, s3;
3274
+
3275
+ s0 = peg$currPos;
3276
+ s1 = input.substr(peg$currPos, 6);
3277
+ if (s1.toLowerCase() === peg$c32) {
3278
+ peg$currPos += 6;
3279
+ } else {
3280
+ s1 = peg$FAILED;
3281
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
3282
+ }
3283
+ if (s1 !== peg$FAILED) {
3284
+ s2 = peg$currPos;
3285
+ peg$silentFails++;
3286
+ s3 = peg$parseidChar();
3287
+ peg$silentFails--;
3288
+ if (s3 === peg$FAILED) {
3289
+ s2 = undefined;
3290
+ } else {
3291
+ peg$currPos = s2;
3292
+ s2 = peg$FAILED;
3293
+ }
3294
+ if (s2 !== peg$FAILED) {
3295
+ s1 = [s1, s2];
3296
+ s0 = s1;
3297
+ } else {
3298
+ peg$currPos = s0;
3299
+ s0 = peg$FAILED;
3300
+ }
3301
+ } else {
3302
+ peg$currPos = s0;
3303
+ s0 = peg$FAILED;
3304
+ }
3305
+
3306
+ return s0;
3307
+ }
3308
+
3309
+ function peg$parseTUESDAY() {
3310
+ var s0, s1, s2, s3;
3311
+
3312
+ s0 = peg$currPos;
3313
+ s1 = input.substr(peg$currPos, 7);
3314
+ if (s1.toLowerCase() === peg$c33) {
3315
+ peg$currPos += 7;
3316
+ } else {
3317
+ s1 = peg$FAILED;
3318
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
3319
+ }
3320
+ if (s1 !== peg$FAILED) {
3321
+ s2 = peg$currPos;
3322
+ peg$silentFails++;
3323
+ s3 = peg$parseidChar();
3324
+ peg$silentFails--;
3325
+ if (s3 === peg$FAILED) {
3326
+ s2 = undefined;
3327
+ } else {
3328
+ peg$currPos = s2;
3329
+ s2 = peg$FAILED;
3330
+ }
3331
+ if (s2 !== peg$FAILED) {
3332
+ s1 = [s1, s2];
3333
+ s0 = s1;
3334
+ } else {
3335
+ peg$currPos = s0;
3336
+ s0 = peg$FAILED;
3337
+ }
3338
+ } else {
3339
+ peg$currPos = s0;
3340
+ s0 = peg$FAILED;
3341
+ }
3342
+
3343
+ return s0;
3344
+ }
3345
+
3346
+ function peg$parseWEDNESDAY() {
3347
+ var s0, s1, s2, s3;
3348
+
3349
+ s0 = peg$currPos;
3350
+ s1 = input.substr(peg$currPos, 9);
3351
+ if (s1.toLowerCase() === peg$c34) {
3352
+ peg$currPos += 9;
3353
+ } else {
3354
+ s1 = peg$FAILED;
3355
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
3356
+ }
3357
+ if (s1 !== peg$FAILED) {
3358
+ s2 = peg$currPos;
3359
+ peg$silentFails++;
3360
+ s3 = peg$parseidChar();
3361
+ peg$silentFails--;
3362
+ if (s3 === peg$FAILED) {
3363
+ s2 = undefined;
3364
+ } else {
3365
+ peg$currPos = s2;
3366
+ s2 = peg$FAILED;
3367
+ }
3368
+ if (s2 !== peg$FAILED) {
3369
+ s1 = [s1, s2];
3370
+ s0 = s1;
3371
+ } else {
3372
+ peg$currPos = s0;
3373
+ s0 = peg$FAILED;
3374
+ }
3375
+ } else {
3376
+ peg$currPos = s0;
3377
+ s0 = peg$FAILED;
3378
+ }
3379
+
3380
+ return s0;
3381
+ }
3382
+
3383
+ function peg$parseTHURSDAY() {
3384
+ var s0, s1, s2, s3;
3385
+
3386
+ s0 = peg$currPos;
3387
+ s1 = input.substr(peg$currPos, 8);
3388
+ if (s1.toLowerCase() === peg$c35) {
3389
+ peg$currPos += 8;
3390
+ } else {
3391
+ s1 = peg$FAILED;
3392
+ if (peg$silentFails === 0) { peg$fail(peg$e42); }
3393
+ }
3394
+ if (s1 !== peg$FAILED) {
3395
+ s2 = peg$currPos;
3396
+ peg$silentFails++;
3397
+ s3 = peg$parseidChar();
3398
+ peg$silentFails--;
3399
+ if (s3 === peg$FAILED) {
3400
+ s2 = undefined;
3401
+ } else {
3402
+ peg$currPos = s2;
3403
+ s2 = peg$FAILED;
3404
+ }
3405
+ if (s2 !== peg$FAILED) {
3406
+ s1 = [s1, s2];
3407
+ s0 = s1;
3408
+ } else {
3409
+ peg$currPos = s0;
3410
+ s0 = peg$FAILED;
3411
+ }
3412
+ } else {
3413
+ peg$currPos = s0;
3414
+ s0 = peg$FAILED;
3415
+ }
3416
+
3417
+ return s0;
3418
+ }
3419
+
3420
+ function peg$parseFRIDAY() {
3421
+ var s0, s1, s2, s3;
3422
+
3423
+ s0 = peg$currPos;
3424
+ s1 = input.substr(peg$currPos, 6);
3425
+ if (s1.toLowerCase() === peg$c36) {
3426
+ peg$currPos += 6;
3427
+ } else {
3428
+ s1 = peg$FAILED;
3429
+ if (peg$silentFails === 0) { peg$fail(peg$e43); }
3430
+ }
3431
+ if (s1 !== peg$FAILED) {
3432
+ s2 = peg$currPos;
3433
+ peg$silentFails++;
3434
+ s3 = peg$parseidChar();
3435
+ peg$silentFails--;
3436
+ if (s3 === peg$FAILED) {
3437
+ s2 = undefined;
3438
+ } else {
3439
+ peg$currPos = s2;
3440
+ s2 = peg$FAILED;
3441
+ }
3442
+ if (s2 !== peg$FAILED) {
3443
+ s1 = [s1, s2];
3444
+ s0 = s1;
3445
+ } else {
3446
+ peg$currPos = s0;
3447
+ s0 = peg$FAILED;
3448
+ }
3449
+ } else {
3450
+ peg$currPos = s0;
3451
+ s0 = peg$FAILED;
3452
+ }
3453
+
3454
+ return s0;
3455
+ }
3456
+
3457
+ function peg$parseSATURDAY() {
3458
+ var s0, s1, s2, s3;
3459
+
3460
+ s0 = peg$currPos;
3461
+ s1 = input.substr(peg$currPos, 8);
3462
+ if (s1.toLowerCase() === peg$c37) {
3463
+ peg$currPos += 8;
3464
+ } else {
3465
+ s1 = peg$FAILED;
3466
+ if (peg$silentFails === 0) { peg$fail(peg$e44); }
3467
+ }
3468
+ if (s1 !== peg$FAILED) {
3469
+ s2 = peg$currPos;
3470
+ peg$silentFails++;
3471
+ s3 = peg$parseidChar();
3472
+ peg$silentFails--;
3473
+ if (s3 === peg$FAILED) {
3474
+ s2 = undefined;
3475
+ } else {
3476
+ peg$currPos = s2;
3477
+ s2 = peg$FAILED;
3478
+ }
3479
+ if (s2 !== peg$FAILED) {
3480
+ s1 = [s1, s2];
3481
+ s0 = s1;
3482
+ } else {
3483
+ peg$currPos = s0;
3484
+ s0 = peg$FAILED;
3485
+ }
3486
+ } else {
3487
+ peg$currPos = s0;
3488
+ s0 = peg$FAILED;
3489
+ }
3490
+
3491
+ return s0;
3492
+ }
3493
+
3494
+ function peg$parseSUNDAY() {
3495
+ var s0, s1, s2, s3;
3496
+
3497
+ s0 = peg$currPos;
3498
+ s1 = input.substr(peg$currPos, 6);
3499
+ if (s1.toLowerCase() === peg$c38) {
3500
+ peg$currPos += 6;
3501
+ } else {
3502
+ s1 = peg$FAILED;
3503
+ if (peg$silentFails === 0) { peg$fail(peg$e45); }
3504
+ }
3505
+ if (s1 !== peg$FAILED) {
3506
+ s2 = peg$currPos;
3507
+ peg$silentFails++;
3508
+ s3 = peg$parseidChar();
3509
+ peg$silentFails--;
3510
+ if (s3 === peg$FAILED) {
3511
+ s2 = undefined;
3512
+ } else {
3513
+ peg$currPos = s2;
3514
+ s2 = peg$FAILED;
3515
+ }
3516
+ if (s2 !== peg$FAILED) {
3517
+ s1 = [s1, s2];
3518
+ s0 = s1;
3519
+ } else {
3520
+ peg$currPos = s0;
3521
+ s0 = peg$FAILED;
3522
+ }
3523
+ } else {
3524
+ peg$currPos = s0;
3525
+ s0 = peg$FAILED;
3526
+ }
3527
+
3528
+ return s0;
3529
+ }
3530
+
3531
+ function peg$parseidChar() {
3532
+ var s0;
3533
+
3534
+ s0 = input.charAt(peg$currPos);
3535
+ if (peg$r7.test(s0)) {
3536
+ peg$currPos++;
3537
+ } else {
3538
+ s0 = peg$FAILED;
3539
+ if (peg$silentFails === 0) { peg$fail(peg$e46); }
3540
+ }
3541
+
3542
+ return s0;
3543
+ }
3544
+
3545
+ function peg$parse_() {
3546
+ var s0, s1;
3547
+
3548
+ peg$silentFails++;
3549
+ s0 = [];
3550
+ s1 = input.charAt(peg$currPos);
3551
+ if (peg$r8.test(s1)) {
3552
+ peg$currPos++;
3553
+ } else {
3554
+ s1 = peg$FAILED;
3555
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
3556
+ }
3557
+ while (s1 !== peg$FAILED) {
3558
+ s0.push(s1);
3559
+ s1 = input.charAt(peg$currPos);
3560
+ if (peg$r8.test(s1)) {
3561
+ peg$currPos++;
3562
+ } else {
3563
+ s1 = peg$FAILED;
3564
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
3565
+ }
3566
+ }
3567
+ peg$silentFails--;
3568
+ s1 = peg$FAILED;
3569
+ if (peg$silentFails === 0) { peg$fail(peg$e47); }
3570
+
3571
+ return s0;
3572
+ }
3573
+
3574
+ function peg$parse__() {
3575
+ var s0, s1;
3576
+
3577
+ peg$silentFails++;
3578
+ s0 = [];
3579
+ s1 = input.charAt(peg$currPos);
3580
+ if (peg$r8.test(s1)) {
3581
+ peg$currPos++;
3582
+ } else {
3583
+ s1 = peg$FAILED;
3584
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
3585
+ }
3586
+ if (s1 !== peg$FAILED) {
3587
+ while (s1 !== peg$FAILED) {
3588
+ s0.push(s1);
3589
+ s1 = input.charAt(peg$currPos);
3590
+ if (peg$r8.test(s1)) {
3591
+ peg$currPos++;
3592
+ } else {
3593
+ s1 = peg$FAILED;
3594
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
3595
+ }
3596
+ }
3597
+ } else {
3598
+ s0 = peg$FAILED;
3599
+ }
3600
+ peg$silentFails--;
3601
+ if (s0 === peg$FAILED) {
3602
+ s1 = peg$FAILED;
3603
+ if (peg$silentFails === 0) { peg$fail(peg$e49); }
3604
+ }
3605
+
3606
+ return s0;
3607
+ }
3608
+
3609
+ peg$result = peg$startRuleFunction();
3610
+
3611
+ if (options.peg$library) {
3612
+ return /** @type {any} */ ({
3613
+ peg$result,
3614
+ peg$currPos,
3615
+ peg$FAILED,
3616
+ peg$maxFailExpected,
3617
+ peg$maxFailPos
3618
+ });
3619
+ }
3620
+ if (peg$result !== peg$FAILED && peg$currPos === input.length) {
3621
+ return peg$result;
3622
+ } else {
3623
+ if (peg$result !== peg$FAILED && peg$currPos < input.length) {
3624
+ peg$fail(peg$endExpectation());
3625
+ }
3626
+
3627
+ throw peg$buildStructuredError(
3628
+ peg$maxFailExpected,
3629
+ peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
3630
+ peg$maxFailPos < input.length
3631
+ ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
3632
+ : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)
3633
+ );
3634
+ }
3635
+ }
3636
+
3637
+ module.exports = {
3638
+ StartRules: ["temporalFilter"],
3639
+ SyntaxError: peg$SyntaxError,
3640
+ parse: peg$parse
3641
+ };