calcdate
Version:
Evalate a date expression calc`now + 3 days`)!
1,436 lines (1,408 loc) • 128 kB
JavaScript
/*
* Generated by PEG.js 0.10.0.
*
* http://pegjs.org/
*/
(function() {
"use strict";
function peg$subclass(child, parent) {
function ctor() { this.constructor = child; }
ctor.prototype = parent.prototype;
child.prototype = new ctor();
}
function peg$SyntaxError(message, expected, found, location) {
this.message = message;
this.expected = expected;
this.found = found;
this.location = location;
this.name = "SyntaxError";
if (typeof Error.captureStackTrace === "function") {
Error.captureStackTrace(this, peg$SyntaxError);
}
}
peg$subclass(peg$SyntaxError, Error);
peg$SyntaxError.buildMessage = function(expected, found) {
var DESCRIBE_EXPECTATION_FNS = {
literal: function(expectation) {
return "\"" + literalEscape(expectation.text) + "\"";
},
"class": function(expectation) {
var escapedParts = "",
i;
for (i = 0; i < expectation.parts.length; i++) {
escapedParts += expectation.parts[i] instanceof Array
? classEscape(expectation.parts[i][0]) + "-" + classEscape(expectation.parts[i][1])
: classEscape(expectation.parts[i]);
}
return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]";
},
any: function(expectation) {
return "any character";
},
end: function(expectation) {
return "end of input";
},
other: function(expectation) {
return expectation.description;
}
};
function hex(ch) {
return ch.charCodeAt(0).toString(16).toUpperCase();
}
function literalEscape(s) {
return s
.replace(/\\/g, '\\\\')
.replace(/"/g, '\\"')
.replace(/\0/g, '\\0')
.replace(/\t/g, '\\t')
.replace(/\n/g, '\\n')
.replace(/\r/g, '\\r')
.replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); })
.replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); });
}
function classEscape(s) {
return s
.replace(/\\/g, '\\\\')
.replace(/\]/g, '\\]')
.replace(/\^/g, '\\^')
.replace(/-/g, '\\-')
.replace(/\0/g, '\\0')
.replace(/\t/g, '\\t')
.replace(/\n/g, '\\n')
.replace(/\r/g, '\\r')
.replace(/[\x00-\x0F]/g, function(ch) { return '\\x0' + hex(ch); })
.replace(/[\x10-\x1F\x7F-\x9F]/g, function(ch) { return '\\x' + hex(ch); });
}
function describeExpectation(expectation) {
return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
}
function describeExpected(expected) {
var descriptions = new Array(expected.length),
i, j;
for (i = 0; i < expected.length; i++) {
descriptions[i] = describeExpectation(expected[i]);
}
descriptions.sort();
if (descriptions.length > 0) {
for (i = 1, j = 1; i < descriptions.length; i++) {
if (descriptions[i - 1] !== descriptions[i]) {
descriptions[j] = descriptions[i];
j++;
}
}
descriptions.length = j;
}
switch (descriptions.length) {
case 1:
return descriptions[0];
case 2:
return descriptions[0] + " or " + descriptions[1];
default:
return descriptions.slice(0, -1).join(", ")
+ ", or "
+ descriptions[descriptions.length - 1];
}
}
function describeFound(found) {
return found ? "\"" + literalEscape(found) + "\"" : "end of input";
}
return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
};
function peg$parse(input, options) {
options = options !== void 0 ? options : {};
var peg$FAILED = {},
peg$startRuleIndices = { Expression: 0 },
peg$startRuleIndex = 0,
peg$consts = [
function(t) { return t; },
"+",
peg$literalExpectation("+", false),
"-",
peg$literalExpectation("-", false),
function(head, tail) {
return tail.reduce(function(result, element) {
if (element[1] === "+") { return options.add(result, element[3]); }
if (element[1] === "-") { return options.subtract(result, element[3]) }
}, head);
},
"*",
peg$literalExpectation("*", false),
"/",
peg$literalExpectation("/", false),
function(head, tail) {
return tail.reduce(function(result, element) {
if (element[1] === "*") { return options.multiply(result, element[3]); }
if (element[1] === "/") { return options.divide(result, element[3]); }
}, head);
},
"(",
peg$literalExpectation("(", false),
")",
peg$literalExpectation(")", false),
function(expr) { return expr; },
peg$otherExpectation("intervalexpression"),
"~",
peg$literalExpectation("~", false),
/^[^~]/,
peg$classExpectation(["~"], true, false),
function(interval) { return options.makeInterval(interval.join(""), { type: INTERVALEXPRESION }) },
peg$otherExpectation("interval"),
function(from, to) { return options.makeInterval([from, to], {
type: INTERVALOBJECT,
raw: text()
}); },
peg$otherExpectation("duration"),
"P",
peg$literalExpectation("P", false),
"T",
peg$literalExpectation("T", false),
function(maybeminus, years, months, weeks, days, hours, minutes, seconds) {
return { hours, minutes, seconds };
},
"",
function(maybeminus, years, months, weeks, days) { return {} },
function(maybeminus, years, months, weeks, days, time) {
const t = Object.assign({}, time, {
years,
months,
weeks,
days,
});
if(maybeminus === "-") return options.makeDuration(Object.entries(t).reduce((p, [k, v]) => Object.assign(p, {
[k]: v * -1
}), {}), { type: DURATIONOBJECT });
return options.makeDuration(t, { type: DURATIONOBJECT });
},
peg$otherExpectation("isoduration"),
":",
peg$literalExpectation(":", false),
function(maybeminus, years, months, days, hours, minutes, seconds) {
return { hours, minutes, seconds };
},
function(maybeminus, years, months, days) { return {} },
function(maybeminus, years, months, days, time) {
const t = Object.assign({}, time, {
years,
months,
days,
});
if(maybeminus === "-") return options.makeDuration(Object.entries(t).reduce((p, [k, v]) => Object.assign(p, {
[k]: v * -1
}), {}), { type: DURATIONOBJECT });
return options.makeDuration(t, { type: DURATIONOBJECT });
},
/^[0-9,.]/,
peg$classExpectation([["0", "9"], ",", "."], false, false),
"h",
peg$literalExpectation("H", true),
function() { return parseFloat(text()) },
function() { return 0; },
/^[0-9]/,
peg$classExpectation([["0", "9"]], false, false),
"m",
peg$literalExpectation("M", true),
"s",
peg$literalExpectation("S", true),
"y",
peg$literalExpectation("Y", true),
"w",
peg$literalExpectation("W", true),
"d",
peg$literalExpectation("D", true),
peg$otherExpectation("optionalplusminus"),
peg$otherExpectation("now"),
"now",
peg$literalExpectation("now", true),
"today",
peg$literalExpectation("today", true),
"now()",
peg$literalExpectation("now()", true),
"today()",
peg$literalExpectation("today()", true),
function() { return options.makeDate(new Date(), { type: NATIVEDATE, parser: "now" }); },
peg$otherExpectation("interpoltion"),
"%",
peg$literalExpectation("%", false),
/^[^%]/,
peg$classExpectation(["%"], true, false),
function(inter) { return options.interpolation(inter.join("")) },
peg$otherExpectation("dateExpression"),
"{",
peg$literalExpectation("{", false),
/^[^}]/,
peg$classExpectation(["}"], true, false),
"}",
peg$literalExpectation("}", false),
function(date) { return options.makeDate(date.join(""), { type: DATEXPRESION }) },
peg$otherExpectation("durationExpression"),
"[",
peg$literalExpectation("[", false),
/^[^\]]/,
peg$classExpectation(["]"], true, false),
"]",
peg$literalExpectation("]", false),
function(duration) { return options.makeDuration(duration.join(""), { type: DURATIONEXPRESSION }) },
peg$otherExpectation("dateyear"),
"19",
peg$literalExpectation("19", false),
/^[7-9]/,
peg$classExpectation([["7", "9"]], false, false),
/^[2-9]/,
peg$classExpectation([["2", "9"]], false, false),
function() { return options.makeDate(new Date(parseInt(text(), 10)), { type: NATIVEDATE, parser: "dateyear" }); },
peg$otherExpectation("datemonth"),
function(year, month) { return options.makeDate(new Date(
parseInt(year.join(""), 10),
parseInt(month.join(""), 10) - 1
), { type: NATIVEDATE, parser: "datemonth" }); },
peg$otherExpectation("completedate"),
function(year, month, day) { return options.makeDate(new Date(
parseInt(year.join(""), 10),
parseInt(month.join(""), 10) - 1,
parseInt(day.join(""), 10)
), { type: NATIVEDATE, parser: "completedate" }); },
peg$otherExpectation("properiso"),
function(v) { return options.makeDate(v); },
function(date, time) { return options.makeDate(new Date(`${date.year}-${date.month}-${date.day}T${time[0].hours}:${time[0].minutes}:${time[0].seconds}.${time[0].milliseconds}${time[1]}`), { type: NATIVEDATE, parser: "properiso" }); },
/^[0-2]/,
peg$classExpectation([["0", "2"]], false, false),
/^[1-9]/,
peg$classExpectation([["1", "9"]], false, false),
"0",
peg$literalExpectation("0", false),
/^[1-2]/,
peg$classExpectation([["1", "2"]], false, false),
"3",
peg$literalExpectation("3", false),
/^[0-5]/,
peg$classExpectation([["0", "5"]], false, false),
/^[0-6]/,
peg$classExpectation([["0", "6"]], false, false),
function(year, days) { return { year, days: days.join("") }; },
"2",
peg$literalExpectation("2", false),
/^[0-3]/,
peg$classExpectation([["0", "3"]], false, false),
"1",
peg$literalExpectation("1", false),
".",
peg$literalExpectation(".", false),
function(hours, minutes, seconds, milliseconds) { return milliseconds.join("") || "000" },
function(hours, minutes, seconds, milliseconds) { return { seconds: seconds.join(""), milliseconds: milliseconds || "000" }; },
function(hours, minutes, seconds) { return { minutes: (minutes.join("")), seconds: seconds ? seconds.seconds : "00", milliseconds: seconds ? seconds.milliseconds : "000" }; },
function(hours, ms) { return Object.assign({ hours: (hours.join("")), minutes: "00", seconds: "00", milliseconds: "000" }, ms || {}); },
function(time) { return text(); },
function(time, timezone) { return [time || { hours: "00", minutes: "00", seconds: "00", milliseconds: "000" }, timezone || ""]; },
"z",
peg$literalExpectation("Z", true),
"t",
peg$literalExpectation("T", true),
" ",
peg$literalExpectation(" ", false),
function(year, month, day) { return { year, month, day }; },
"02",
peg$literalExpectation("02", false),
/^[0-1]/,
peg$classExpectation([["0", "1"]], false, false),
/^[0-8]/,
peg$classExpectation([["0", "8"]], false, false),
function(year, month, day) { return { year, month: "02", day: day.join("") }; },
function(o) { const tmp = new Date(parseInt(o.year, 10), 0); tmp.setDate(tmp.getDate() + parseInt(o.days, 10)); return { year: o.year, month: `${tmp.getMonth() + 1}`.padStart(2, "0"), day: `${tmp.getDate()}`.padStart(2, "0") }; },
function(year, month) { return { year, month: month.join(""), day: "01" } },
function(year) { return { year, month: "01", day: "01" }; },
function() { return (text()); },
"30",
peg$literalExpectation("30", false),
function() { return 30; },
"31",
peg$literalExpectation("31", false),
function() { return 31; },
"01",
peg$literalExpectation("01", false),
"03",
peg$literalExpectation("03", false),
"05",
peg$literalExpectation("05", false),
"08",
peg$literalExpectation("08", false),
"10",
peg$literalExpectation("10", false),
"12",
peg$literalExpectation("12", false),
"04",
peg$literalExpectation("04", false),
"06",
peg$literalExpectation("06", false),
"09",
peg$literalExpectation("09", false),
"11",
peg$literalExpectation("11", false),
"1972",
peg$literalExpectation("1972", false),
"23",
peg$literalExpectation("23", false),
"59",
peg$literalExpectation("59", false),
"60",
peg$literalExpectation("60", false),
"Z",
peg$literalExpectation("Z", false),
"1973",
peg$literalExpectation("1973", false),
"1974",
peg$literalExpectation("1974", false),
"1975",
peg$literalExpectation("1975", false),
"1976",
peg$literalExpectation("1976", false),
"1977",
peg$literalExpectation("1977", false),
"1978",
peg$literalExpectation("1978", false),
"1979",
peg$literalExpectation("1979", false),
"1981",
peg$literalExpectation("1981", false),
"1982",
peg$literalExpectation("1982", false),
"1983",
peg$literalExpectation("1983", false),
"1985",
peg$literalExpectation("1985", false),
"1987",
peg$literalExpectation("1987", false),
"1989",
peg$literalExpectation("1989", false),
"1990",
peg$literalExpectation("1990", false),
"1992",
peg$literalExpectation("1992", false),
"1993",
peg$literalExpectation("1993", false),
"1994",
peg$literalExpectation("1994", false),
"1995",
peg$literalExpectation("1995", false),
"1997",
peg$literalExpectation("1997", false),
"1998",
peg$literalExpectation("1998", false),
"2005",
peg$literalExpectation("2005", false),
"2008",
peg$literalExpectation("2008", false),
"2012",
peg$literalExpectation("2012", false),
"2015",
peg$literalExpectation("2015", false),
"2016",
peg$literalExpectation("2016", false),
function() { const d = new Date(`${text().slice(0, -3)}59Z`); d.leapSecond = true; return d; },
"4",
peg$literalExpectation("4", false),
"6",
peg$literalExpectation("6", false),
"8",
peg$literalExpectation("8", false),
"5",
peg$literalExpectation("5", false),
"7",
peg$literalExpectation("7", false),
"9",
peg$literalExpectation("9", false),
"0000",
peg$literalExpectation("0000", false),
"0020",
peg$literalExpectation("0020", false),
"0040",
peg$literalExpectation("0040", false),
"0052",
peg$literalExpectation("0052", false),
"0056",
peg$literalExpectation("0056", false),
"0060",
peg$literalExpectation("0060", false),
"0080",
peg$literalExpectation("0080", false),
"0120",
peg$literalExpectation("0120", false),
"0140",
peg$literalExpectation("0140", false),
"0152",
peg$literalExpectation("0152", false),
"0156",
peg$literalExpectation("0156", false),
"0160",
peg$literalExpectation("0160", false),
"0180",
peg$literalExpectation("0180", false),
"0220",
peg$literalExpectation("0220", false),
"0240",
peg$literalExpectation("0240", false),
"0252",
peg$literalExpectation("0252", false),
"0256",
peg$literalExpectation("0256", false),
"0260",
peg$literalExpectation("0260", false),
"0280",
peg$literalExpectation("0280", false),
"0320",
peg$literalExpectation("0320", false),
"0340",
peg$literalExpectation("0340", false),
"0352",
peg$literalExpectation("0352", false),
"0356",
peg$literalExpectation("0356", false),
"0360",
peg$literalExpectation("0360", false),
"0380",
peg$literalExpectation("0380", false),
"0400",
peg$literalExpectation("0400", false),
"0420",
peg$literalExpectation("0420", false),
"0440",
peg$literalExpectation("0440", false),
"0452",
peg$literalExpectation("0452", false),
"0456",
peg$literalExpectation("0456", false),
"0460",
peg$literalExpectation("0460", false),
"0480",
peg$literalExpectation("0480", false),
"0520",
peg$literalExpectation("0520", false),
"0540",
peg$literalExpectation("0540", false),
"0552",
peg$literalExpectation("0552", false),
"0556",
peg$literalExpectation("0556", false),
"0560",
peg$literalExpectation("0560", false),
"0580",
peg$literalExpectation("0580", false),
"0620",
peg$literalExpectation("0620", false),
"0640",
peg$literalExpectation("0640", false),
"0652",
peg$literalExpectation("0652", false),
"0656",
peg$literalExpectation("0656", false),
"0660",
peg$literalExpectation("0660", false),
"0680",
peg$literalExpectation("0680", false),
"0720",
peg$literalExpectation("0720", false),
"0740",
peg$literalExpectation("0740", false),
"0752",
peg$literalExpectation("0752", false),
"0756",
peg$literalExpectation("0756", false),
"0760",
peg$literalExpectation("0760", false),
"0780",
peg$literalExpectation("0780", false),
"0800",
peg$literalExpectation("0800", false),
"0820",
peg$literalExpectation("0820", false),
"0840",
peg$literalExpectation("0840", false),
"0852",
peg$literalExpectation("0852", false),
"0856",
peg$literalExpectation("0856", false),
"0860",
peg$literalExpectation("0860", false),
"0880",
peg$literalExpectation("0880", false),
"0920",
peg$literalExpectation("0920", false),
"0940",
peg$literalExpectation("0940", false),
"0952",
peg$literalExpectation("0952", false),
"0956",
peg$literalExpectation("0956", false),
"0960",
peg$literalExpectation("0960", false),
"0980",
peg$literalExpectation("0980", false),
"1020",
peg$literalExpectation("1020", false),
"1040",
peg$literalExpectation("1040", false),
"1052",
peg$literalExpectation("1052", false),
"1056",
peg$literalExpectation("1056", false),
"1060",
peg$literalExpectation("1060", false),
"1080",
peg$literalExpectation("1080", false),
"1120",
peg$literalExpectation("1120", false),
"1140",
peg$literalExpectation("1140", false),
"1152",
peg$literalExpectation("1152", false),
"1156",
peg$literalExpectation("1156", false),
"1160",
peg$literalExpectation("1160", false),
"1180",
peg$literalExpectation("1180", false),
"1200",
peg$literalExpectation("1200", false),
"1220",
peg$literalExpectation("1220", false),
"1240",
peg$literalExpectation("1240", false),
"1252",
peg$literalExpectation("1252", false),
"1256",
peg$literalExpectation("1256", false),
"1260",
peg$literalExpectation("1260", false),
"1280",
peg$literalExpectation("1280", false),
"1320",
peg$literalExpectation("1320", false),
"1340",
peg$literalExpectation("1340", false),
"1352",
peg$literalExpectation("1352", false),
"1356",
peg$literalExpectation("1356", false),
"1360",
peg$literalExpectation("1360", false),
"1380",
peg$literalExpectation("1380", false),
"1420",
peg$literalExpectation("1420", false),
"1440",
peg$literalExpectation("1440", false),
"1452",
peg$literalExpectation("1452", false),
"1456",
peg$literalExpectation("1456", false),
"1460",
peg$literalExpectation("1460", false),
"1480",
peg$literalExpectation("1480", false),
"1520",
peg$literalExpectation("1520", false),
"1540",
peg$literalExpectation("1540", false),
"1552",
peg$literalExpectation("1552", false),
"1556",
peg$literalExpectation("1556", false),
"1560",
peg$literalExpectation("1560", false),
"1580",
peg$literalExpectation("1580", false),
"1600",
peg$literalExpectation("1600", false),
"1620",
peg$literalExpectation("1620", false),
"1640",
peg$literalExpectation("1640", false),
"1652",
peg$literalExpectation("1652", false),
"1656",
peg$literalExpectation("1656", false),
"1660",
peg$literalExpectation("1660", false),
"1680",
peg$literalExpectation("1680", false),
"1720",
peg$literalExpectation("1720", false),
"1740",
peg$literalExpectation("1740", false),
"1752",
peg$literalExpectation("1752", false),
"1756",
peg$literalExpectation("1756", false),
"1760",
peg$literalExpectation("1760", false),
"1780",
peg$literalExpectation("1780", false),
"1820",
peg$literalExpectation("1820", false),
"1840",
peg$literalExpectation("1840", false),
"1852",
peg$literalExpectation("1852", false),
"1856",
peg$literalExpectation("1856", false),
"1860",
peg$literalExpectation("1860", false),
"1880",
peg$literalExpectation("1880", false),
"1920",
peg$literalExpectation("1920", false),
"1940",
peg$literalExpectation("1940", false),
"1952",
peg$literalExpectation("1952", false),
"1956",
peg$literalExpectation("1956", false),
"1960",
peg$literalExpectation("1960", false),
"1980",
peg$literalExpectation("1980", false),
"2000",
peg$literalExpectation("2000", false),
"2020",
peg$literalExpectation("2020", false),
"2040",
peg$literalExpectation("2040", false),
"2052",
peg$literalExpectation("2052", false),
"2056",
peg$literalExpectation("2056", false),
"2060",
peg$literalExpectation("2060", false),
"2080",
peg$literalExpectation("2080", false),
"2120",
peg$literalExpectation("2120", false),
"2140",
peg$literalExpectation("2140", false),
"2152",
peg$literalExpectation("2152", false),
"2156",
peg$literalExpectation("2156", false),
"2160",
peg$literalExpectation("2160", false),
"2180",
peg$literalExpectation("2180", false),
"2220",
peg$literalExpectation("2220", false),
"2240",
peg$literalExpectation("2240", false),
"2252",
peg$literalExpectation("2252", false),
"2256",
peg$literalExpectation("2256", false),
"2260",
peg$literalExpectation("2260", false),
"2280",
peg$literalExpectation("2280", false),
"2320",
peg$literalExpectation("2320", false),
"2340",
peg$literalExpectation("2340", false),
"2352",
peg$literalExpectation("2352", false),
"2356",
peg$literalExpectation("2356", false),
"2360",
peg$literalExpectation("2360", false),
"2380",
peg$literalExpectation("2380", false),
"2400",
peg$literalExpectation("2400", false),
"2420",
peg$literalExpectation("2420", false),
"2440",
peg$literalExpectation("2440", false),
"2452",
peg$literalExpectation("2452", false),
"2456",
peg$literalExpectation("2456", false),
"2460",
peg$literalExpectation("2460", false),
"2480",
peg$literalExpectation("2480", false),
"2520",
peg$literalExpectation("2520", false),
"2540",
peg$literalExpectation("2540", false),
"2552",
peg$literalExpectation("2552", false),
"2556",
peg$literalExpectation("2556", false),
"2560",
peg$literalExpectation("2560", false),
"2580",
peg$literalExpectation("2580", false),
"2620",
peg$literalExpectation("2620", false),
"2640",
peg$literalExpectation("2640", false),
"2652",
peg$literalExpectation("2652", false),
"2656",
peg$literalExpectation("2656", false),
"2660",
peg$literalExpectation("2660", false),
"2680",
peg$literalExpectation("2680", false),
"2720",
peg$literalExpectation("2720", false),
"2740",
peg$literalExpectation("2740", false),
"2752",
peg$literalExpectation("2752", false),
"2756",
peg$literalExpectation("2756", false),
"2760",
peg$literalExpectation("2760", false),
"2780",
peg$literalExpectation("2780", false),
"2800",
peg$literalExpectation("2800", false),
"2820",
peg$literalExpectation("2820", false),
"2840",
peg$literalExpectation("2840", false),
"2852",
peg$literalExpectation("2852", false),
"2856",
peg$literalExpectation("2856", false),
"2860",
peg$literalExpectation("2860", false),
"2880",
peg$literalExpectation("2880", false),
"2920",
peg$literalExpectation("2920", false),
"2940",
peg$literalExpectation("2940", false),
"2952",
peg$literalExpectation("2952", false),
"2956",
peg$literalExpectation("2956", false),
"2960",
peg$literalExpectation("2960", false),
"2980",
peg$literalExpectation("2980", false),
"3020",
peg$literalExpectation("3020", false),
"3040",
peg$literalExpectation("3040", false),
"3052",
peg$literalExpectation("3052", false),
"3056",
peg$literalExpectation("3056", false),
"3060",
peg$literalExpectation("3060", false),
"3080",
peg$literalExpectation("3080", false),
"3120",
peg$literalExpectation("3120", false),
"3140",
peg$literalExpectation("3140", false),
"3152",
peg$literalExpectation("3152", false),
"3156",
peg$literalExpectation("3156", false),
"3160",
peg$literalExpectation("3160", false),
"3180",
peg$literalExpectation("3180", false),
"3200",
peg$literalExpectation("3200", false),
"3220",
peg$literalExpectation("3220", false),
"3240",
peg$literalExpectation("3240", false),
"3252",
peg$literalExpectation("3252", false),
"3256",
peg$literalExpectation("3256", false),
"3260",
peg$literalExpectation("3260", false),
"3280",
peg$literalExpectation("3280", false),
"3320",
peg$literalExpectation("3320", false),
"3340",
peg$literalExpectation("3340", false),
"3352",
peg$literalExpectation("3352", false),
"3356",
peg$literalExpectation("3356", false),
"3360",
peg$literalExpectation("3360", false),
"3380",
peg$literalExpectation("3380", false),
"3420",
peg$literalExpectation("3420", false),
"3440",
peg$literalExpectation("3440", false),
"3452",
peg$literalExpectation("3452", false),
"3456",
peg$literalExpectation("3456", false),
"3460",
peg$literalExpectation("3460", false),
"3480",
peg$literalExpectation("3480", false),
"3520",
peg$literalExpectation("3520", false),
"3540",
peg$literalExpectation("3540", false),
"3552",
peg$literalExpectation("3552", false),
"3556",
peg$literalExpectation("3556", false),
"3560",
peg$literalExpectation("3560", false),
"3580",
peg$literalExpectation("3580", false),
"3600",
peg$literalExpectation("3600", false),
"3620",
peg$literalExpectation("3620", false),
"3640",
peg$literalExpectation("3640", false),
"3652",
peg$literalExpectation("3652", false),
"3656",
peg$literalExpectation("3656", false),
"3660",
peg$literalExpectation("3660", false),
"3680",
peg$literalExpectation("3680", false),
"3720",
peg$literalExpectation("3720", false),
"3740",
peg$literalExpectation("3740", false),
"3752",
peg$literalExpectation("3752", false),
"3756",
peg$literalExpectation("3756", false),
"3760",
peg$literalExpectation("3760", false),
"3780",
peg$literalExpectation("3780", false),
"3820",
peg$literalExpectation("3820", false),
"3840",
peg$literalExpectation("3840", false),
"3852",
peg$literalExpectation("3852", false),
"3856",
peg$literalExpectation("3856", false),
"3860",
peg$literalExpectation("3860", false),
"3880",
peg$literalExpectation("3880", false),
"3920",
peg$literalExpectation("3920", false),
"3940",
peg$literalExpectation("3940", false),
"3952",
peg$literalExpectation("3952", false),
"3956",
peg$literalExpectation("3956", false),
"3960",
peg$literalExpectation("3960", false),
"3980",
peg$literalExpectation("3980", false),
"4000",
peg$literalExpectation("4000", false),
"4020",
peg$literalExpectation("4020", false),
"4040",
peg$literalExpectation("4040", false),
"4052",
peg$literalExpectation("4052", false),
"4056",
peg$literalExpectation("4056", false),
"4060",
peg$literalExpectation("4060", false),
"4080",
peg$literalExpectation("4080", false),
"4120",
peg$literalExpectation("4120", false),
"4140",
peg$literalExpectation("4140", false),
"4152",
peg$literalExpectation("4152", false),
"4156",
peg$literalExpectation("4156", false),
"4160",
peg$literalExpectation("4160", false),
"4180",
peg$literalExpectation("4180", false),
"4220",
peg$literalExpectation("4220", false),
"4240",
peg$literalExpectation("4240", false),
"4252",
peg$literalExpectation("4252", false),
"4256",
peg$literalExpectation("4256", false),
"4260",
peg$literalExpectation("4260", false),
"4280",
peg$literalExpectation("4280", false),
"4320",
peg$literalExpectation("4320", false),
"4340",
peg$literalExpectation("4340", false),
"4352",
peg$literalExpectation("4352", false),
"4356",
peg$literalExpectation("4356", false),
"4360",
peg$literalExpectation("4360", false),
"4380",
peg$literalExpectation("4380", false),
"4400",
peg$literalExpectation("4400", false),
"4420",
peg$literalExpectation("4420", false),
"4440",
peg$literalExpectation("4440", false),
"4452",
peg$literalExpectation("4452", false),
"4456",
peg$literalExpectation("4456", false),
"4460",
peg$literalExpectation("4460", false),
"4480",
peg$literalExpectation("4480", false),
"4520",
peg$literalExpectation("4520", false),
"4540",
peg$literalExpectation("4540", false),
"4552",
peg$literalExpectation("4552", false),
"4556",
peg$literalExpectation("4556", false),
"4560",
peg$literalExpectation("4560", false),
"4580",
peg$literalExpectation("4580", false),
"4620",
peg$literalExpectation("4620", false),
"4640",
peg$literalExpectation("4640", false),
"4652",
peg$literalExpectation("4652", false),
"4656",
peg$literalExpectation("4656", false),
"4660",
peg$literalExpectation("4660", false),
"4680",
peg$literalExpectation("4680", false),
"4720",
peg$literalExpectation("4720", false),
"4740",
peg$literalExpectation("4740", false),
"4752",
peg$literalExpectation("4752", false),
"4756",
peg$literalExpectation("4756", false),
"4760",
peg$literalExpectation("4760", false),
"4780",
peg$literalExpectation("4780", false),
"4800",
peg$literalExpectation("4800", false),
"4820",
peg$literalExpectation("4820", false),
"4840",
peg$literalExpectation("4840", false),
"4852",
peg$literalExpectation("4852", false),
"4856",
peg$literalExpectation("4856", false),
"4860",
peg$literalExpectation("4860", false),
"4880",
peg$literalExpectation("4880", false),
"4920",
peg$literalExpectation("4920", false),
"4940",
peg$literalExpectation("4940", false),
"4952",
peg$literalExpectation("4952", false),
"4956",
peg$literalExpectation("4956", false),
"4960",
peg$literalExpectation("4960", false),
"4980",
peg$literalExpectation("4980", false),
"5020",
peg$literalExpectation("5020", false),
"5040",
peg$literalExpectation("5040", false),
"5052",
peg$literalExpectation("5052", false),
"5056",
peg$literalExpectation("5056", false),
"5060",
peg$literalExpectation("5060", false),
"5080",
peg$literalExpectation("5080", false),
"5120",
peg$literalExpectation("5120", false),
"5140",
peg$literalExpectation("5140", false),
"5152",
peg$literalExpectation("5152", false),
"5156",
peg$literalExpectation("5156", false),
"5160",
peg$literalExpectation("5160", false),
"5180",
peg$literalExpectation("5180", false),
"5200",
peg$literalExpectation("5200", false),
"5220",
peg$literalExpectation("5220", false),
"5240",
peg$literalExpectation("5240", false),
"5252",
peg$literalExpectation("5252", false),
"5256",
peg$literalExpectation("5256", false),
"5260",
peg$literalExpectation("5260", false),
"5280",
peg$literalExpectation("5280", false),
"5320",
peg$literalExpectation("5320", false),
"5340",
peg$literalExpectation("5340", false),
"5352",
peg$literalExpectation("5352", false),
"5356",
peg$literalExpectation("5356", false),
"5360",
peg$literalExpectation("5360", false),
"5380",
peg$literalExpectation("5380", false),
"5420",
peg$literalExpectation("5420", false),
"5440",
peg$literalExpectation("5440", false),
"5452",
peg$literalExpectation("5452", false),
"5456",
peg$literalExpectation("5456", false),
"5460",
peg$literalExpectation("5460", false),
"5480",
peg$literalExpectation("5480", false),
"5520",
peg$literalExpectation("5520", false),
"5540",
peg$literalExpectation("5540", false),
"5552",
peg$literalExpectation("5552", false),
"5556",
peg$literalExpectation("5556", false),
"5560",
peg$literalExpectation("5560", false),
"5580",
peg$literalExpectation("5580", false),
"5600",
peg$literalExpectation("5600", false),
"5620",
peg$literalExpectation("5620", false),
"5640",
peg$literalExpectation("5640", false),
"5652",
peg$literalExpectation("5652", false),
"5656",
peg$literalExpectation("5656", false),
"5660",
peg$literalExpectation("5660", false),
"5680",
peg$literalExpectation("5680", false),
"5720",
peg$literalExpectation("5720", false),
"5740",
peg$literalExpectation("5740", false),
"5752",
peg$literalExpectation("5752", false),
"5756",
peg$literalExpectation("5756", false),
"5760",
peg$literalExpectation("5760", false),
"5780",
peg$literalExpectation("5780", false),
"5820",
peg$literalExpectation("5820", false),
"5840",
peg$literalExpectation("5840", false),
"5852",
peg$literalExpectation("5852", false),
"5856",
peg$literalExpectation("5856", false),
"5860",
peg$literalExpectation("5860", false),
"5880",
peg$literalExpectation("5880", false),
"5920",
peg$literalExpectation("5920", false),
"5940",
peg$literalExpectation("5940", false),
"5952",
peg$literalExpectation("5952", false),
"5956",
peg$literalExpectation("5956", false),
"5960",
peg$literalExpectation("5960", false),
"5980",
peg$literalExpectation("5980", false),
"6000",
peg$literalExpectation("6000", false),
"6020",
peg$literalExpectation("6020", false),
"6040",
peg$literalExpectation("6040", false),
"6052",
peg$literalExpectation("6052", false),
"6056",
peg$literalExpectation("6056", false),
"6060",
peg$literalExpectation("6060", false),
"6080",
peg$literalExpectation("6080", false),
"6120",
peg$literalExpectation("6120", false),
"6140",
peg$literalExpectation("6140", false),
"6152",
peg$literalExpectation("6152", false),
"6156",
peg$literalExpectation("6156", false),
"6160",
peg$literalExpectation("6160", false),
"6180",
peg$literalExpectation("6180", false),
"6220",
peg$literalExpectation("6220", false),
"6240",
peg$literalExpectation("6240", false),
"6252",
peg$literalExpectation("6252", false),
"6256",
peg$literalExpectation("6256", false),
"6260",
peg$literalExpectation("6260", false),
"6280",
peg$literalExpectation("6280", false),
"6320",
peg$literalExpectation("6320", false),
"6340",
peg$literalExpectation("6340", false),
"6352",
peg$literalExpectation("6352", false),
"6356",
peg$literalExpectation("6356", false),
"6360",
peg$literalExpectation("6360", false),
"6380",
peg$literalExpectation("6380", false),
"6400",
peg$literalExpectation("6400", false),
"6420",
peg$literalExpectation("6420", false),
"6440",
peg$literalExpectation("6440", false),
"6452",
peg$literalExpectation("6452", false),
"6456",
peg$literalExpectation("6456", false),
"6460",
peg$literalExpectation("6460", false),
"6480",
peg$literalExpectation("6480", false),
"6520",
peg$literalExpectation("6520", false),
"6540",
peg$literalExpectation("6540", false),
"6552",
peg$literalExpectation("6552", false),
"6556",
peg$literalExpectation("6556", false),
"6560",
peg$literalExpectation("6560", false),
"6580",
peg$literalExpectation("6580", false),
"6620",
peg$literalExpectation("6620", false),
"6640",
peg$literalExpectation("6640", false),
"6652",
peg$literalExpectation("6652", false),
"6656",
peg$literalExpectation("6656", false),
"6660",
peg$literalExpectation("6660", false),
"6680",
peg$literalExpectation("6680", false),
"6720",
peg$literalExpectation("6720", false),
"6740",
peg$literalExpectation("6740", false),
"6752",
peg$literalExpectation("6752", false),
"6756",
peg$literalExpectation("6756", false),
"6760",
peg$literalExpectation("6760", false),
"6780",
peg$literalExpectation("6780", false),
"6800",
peg$literalExpectation("6800", false),
"6820",
peg$literalExpectation("6820", false),
"6840",
peg$literalExpectation("6840", false),
"6852",
peg$literalExpectation("6852", false),
"6856",
peg$literalExpectation("6856", false),
"6860",
peg$literalExpectation("6860", false),
"6880",
peg$literalExpectation("6880", false),
"6920",
peg$literalExpectation("6920", false),
"6940",
peg$literalExpectation("6940", false),
"6952",
peg$literalExpectation("6952", false),
"6956",
peg$literalExpectation("6956", false),
"6960",
peg$literalExpectation("6960", false),
"6980",
peg$literalExpectation("6980", false),
"7020",
peg$literalExpectation("7020", false),
"7040",
peg$literalExpectation("7040", false),
"7052",
peg$literalExpectation("7052", false),
"7056",
peg$literalExpectation("7056", false),
"7060",
peg$literalExpectation("7060", false),
"7080",
peg$literalExpectation("7080", false),
"7120",
peg$literalExpectation("7120", false),
"7140",
peg$literalExpectation("7140", false),
"7152",
peg$literalExpectation("7152", false),
"7156",
peg$literalExpectation("7156", false),
"7160",
peg$literalExpectation("7160", false),
"7180",
peg$literalExpectation("7180", false),
"7200",
peg$literalExpectation("7200", false),
"7220",
peg$literalExpectation("7220", false),
"7240",
peg$literalExpectation("7240", false),
"7252",
peg$literalExpectation("7252", false),
"7256",
peg$literalExpectation("7256", false),
"7260",
peg$literalExpectation("7260", false),
"7280",
peg$literalExpectation("7280", false),
"7320",
peg$literalExpectation("7320", false),
"7340",
peg$literalExpectation("7340", false),
"7352",
peg$literalExpectation("7352", false),
"7356",
peg$literalExpectation("7356", false),
"7360",
peg$literalExpectation("7360", false),
"7380",
peg$literalExpectation("7380", false),
"7420",
peg$literalExpectation("7420", false),
"7440",
peg$literalExpectation("7440", false),
"7452",
peg$literalExpectation("7452", false),
"7456",
peg$literalExpectation("7456", false),
"7460",
peg$literalExpectation("7460", false),
"7480",
peg$literalExpectation("7480", false),
"7520",
peg$literalExpectation("7520", false),
"7540",
peg$literalExpectation("7540", false),
"7552",
peg$literalExpectation("7552", false),
"7556",
peg$literalExpectation("7556", false),
"7560",
peg$literalExpectation("7560", false),
"7580",
peg$literalExpectation("7580", false),
"7600",
peg$literalExpectation("7600", false),
"7620",
peg$literalExpectation("7620", false),
"7640",
peg$literalExpectation("7640", false),
"7652",
peg$literalExpectation("7652", false),
"7656",
peg$literalExpectation("7656", false),
"7660",
peg$literalExpectation("7660", false),
"7680",
peg$literalExpectation("7680", false),
"7720",
peg$literalExpectation("7720", false),
"7740",
peg$literalExpectation("7740", false),
"7752",
peg$literalExpectation("7752", false),
"7756",
peg$literalExpectation("7756", false),
"7760",
peg$literalExpectation("7760", false),
"7780",
peg$literalExpectation("7780", false),
"7820",
peg$literalExpectation("7820", false),
"7840",
peg$literalExpectation("7840", false),
"7852",
peg$literalExpectation("7852", false),
"7856",
peg$literalExpectation("7856", false),
"7860",
peg$literalExpectation("7860", false),
"7880",
peg$literalExpectation("7880", false),
"7920",
peg$literalExpectation("7920", false),
"7940",
peg$literalExpectation("7940", false),
"7952",
peg$literalExpectation("7952", false),
"7956",
peg$literalExpectat