UNPKG

calcdate

Version:

Evalate a date expression calc`now + 3 days`)!

1,436 lines (1,408 loc) 128 kB
/* * 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