123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923 |
- // Do not edit the parser directly. This is a generated file created using a build script and the PEG grammar.
- module.exports = (function() {
- /*
- * Generated by PEG.js 0.8.0.
- *
- * http://pegjs.majda.cz/
- */
- function peg$subclass(child, parent) {
- function ctor() { this.constructor = child; }
- ctor.prototype = parent.prototype;
- child.prototype = new ctor();
- }
- function SyntaxError(message, expected, found, offset, line, column) {
- this.message = message;
- this.expected = expected;
- this.found = found;
- this.offset = offset;
- this.line = line;
- this.column = column;
- this.name = "SyntaxError";
- }
- peg$subclass(SyntaxError, Error);
- function parse(input) {
- var options = arguments.length > 1 ? arguments[1] : {},
- peg$FAILED = {},
- peg$startRuleFunctions = { start: peg$parsestart },
- peg$startRuleFunction = peg$parsestart,
- peg$c0 = [],
- peg$c1 = { type: "other", description: "buffer" },
- peg$c2 = peg$FAILED,
- peg$c3 = function(e, w) { return {"buffer": e + w.join('')} },
- peg$c4 = void 0,
- peg$c5 = function(c) { return c },
- peg$c6 = function(b) { return {"buffer": b.join('')} },
- peg$c7 = ":",
- peg$c8 = { type: "literal", value: ":", description: "\":\"" },
- peg$c9 = function(c) {return c},
- peg$c10 = function(c, e) { return {color: c, text: e.join('')}},
- peg$c11 = { type: "any", description: "any character" },
- peg$c12 = function(a) {return a},
- peg$c13 = "{",
- peg$c14 = { type: "literal", value: "{", description: "\"{\"" },
- peg$c15 = function(out) {return out},
- peg$c16 = "}",
- peg$c17 = { type: "literal", value: "}", description: "\"}\"" },
- peg$c18 = "\\",
- peg$c19 = { type: "literal", value: "\\", description: "\"\\\\\"" },
- peg$c20 = /^[a-zA-Z.]/,
- peg$c21 = { type: "class", value: "[a-zA-Z.]", description: "[a-zA-Z.]" },
- peg$c22 = function(c) { return c.join('') },
- peg$c23 = null,
- peg$c24 = function(r, e) {return {reset: true, text: e ? e.join('') : '' }},
- peg$c25 = function(after) {return after},
- peg$c26 = "\n",
- peg$c27 = { type: "literal", value: "\n", description: "\"\\n\"" },
- peg$c28 = "\r\n",
- peg$c29 = { type: "literal", value: "\r\n", description: "\"\\r\\n\"" },
- peg$c30 = "\r",
- peg$c31 = { type: "literal", value: "\r", description: "\"\\r\"" },
- peg$c32 = "\u2028",
- peg$c33 = { type: "literal", value: "\u2028", description: "\"\\u2028\"" },
- peg$c34 = "\u2029",
- peg$c35 = { type: "literal", value: "\u2029", description: "\"\\u2029\"" },
- peg$c36 = /^[\t\x0B\f \xA0\uFEFF]/,
- peg$c37 = { type: "class", value: "[\\t\\x0B\\f \\xA0\\uFEFF]", description: "[\\t\\x0B\\f \\xA0\\uFEFF]" },
- peg$currPos = 0,
- peg$reportedPos = 0,
- peg$cachedPos = 0,
- peg$cachedPosDetails = { line: 1, column: 1, seenCR: false },
- peg$maxFailPos = 0,
- peg$maxFailExpected = [],
- peg$silentFails = 0,
- peg$result;
- if ("startRule" in options) {
- if (!(options.startRule in peg$startRuleFunctions)) {
- throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
- }
- peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
- }
- function text() {
- return input.substring(peg$reportedPos, peg$currPos);
- }
- function offset() {
- return peg$reportedPos;
- }
- function line() {
- return peg$computePosDetails(peg$reportedPos).line;
- }
- function column() {
- return peg$computePosDetails(peg$reportedPos).column;
- }
- function expected(description) {
- throw peg$buildException(
- null,
- [{ type: "other", description: description }],
- peg$reportedPos
- );
- }
- function error(message) {
- throw peg$buildException(message, null, peg$reportedPos);
- }
- function peg$computePosDetails(pos) {
- function advance(details, startPos, endPos) {
- var p, ch;
- for (p = startPos; p < endPos; p++) {
- ch = input.charAt(p);
- if (ch === "\n") {
- if (!details.seenCR) { details.line++; }
- details.column = 1;
- details.seenCR = false;
- } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") {
- details.line++;
- details.column = 1;
- details.seenCR = true;
- } else {
- details.column++;
- details.seenCR = false;
- }
- }
- }
- if (peg$cachedPos !== pos) {
- if (peg$cachedPos > pos) {
- peg$cachedPos = 0;
- peg$cachedPosDetails = { line: 1, column: 1, seenCR: false };
- }
- advance(peg$cachedPosDetails, peg$cachedPos, pos);
- peg$cachedPos = pos;
- }
- return peg$cachedPosDetails;
- }
- function peg$fail(expected) {
- if (peg$currPos < peg$maxFailPos) { return; }
- if (peg$currPos > peg$maxFailPos) {
- peg$maxFailPos = peg$currPos;
- peg$maxFailExpected = [];
- }
- peg$maxFailExpected.push(expected);
- }
- function peg$buildException(message, expected, pos) {
- function cleanupExpected(expected) {
- var i = 1;
- expected.sort(function(a, b) {
- if (a.description < b.description) {
- return -1;
- } else if (a.description > b.description) {
- return 1;
- } else {
- return 0;
- }
- });
- while (i < expected.length) {
- if (expected[i - 1] === expected[i]) {
- expected.splice(i, 1);
- } else {
- i++;
- }
- }
- }
- function buildMessage(expected, found) {
- function stringEscape(s) {
- function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }
- return s
- .replace(/\\/g, '\\\\')
- .replace(/"/g, '\\"')
- .replace(/\x08/g, '\\b')
- .replace(/\t/g, '\\t')
- .replace(/\n/g, '\\n')
- .replace(/\f/g, '\\f')
- .replace(/\r/g, '\\r')
- .replace(/[\x00-\x07\x0B\x0E\x0F]/g, function(ch) { return '\\x0' + hex(ch); })
- .replace(/[\x10-\x1F\x80-\xFF]/g, function(ch) { return '\\x' + hex(ch); })
- .replace(/[\u0180-\u0FFF]/g, function(ch) { return '\\u0' + hex(ch); })
- .replace(/[\u1080-\uFFFF]/g, function(ch) { return '\\u' + hex(ch); });
- }
- var expectedDescs = new Array(expected.length),
- expectedDesc, foundDesc, i;
- for (i = 0; i < expected.length; i++) {
- expectedDescs[i] = expected[i].description;
- }
- expectedDesc = expected.length > 1
- ? expectedDescs.slice(0, -1).join(", ")
- + " or "
- + expectedDescs[expected.length - 1]
- : expectedDescs[0];
- foundDesc = found ? "\"" + stringEscape(found) + "\"" : "end of input";
- return "Expected " + expectedDesc + " but " + foundDesc + " found.";
- }
- var posDetails = peg$computePosDetails(pos),
- found = pos < input.length ? input.charAt(pos) : null;
- if (expected !== null) {
- cleanupExpected(expected);
- }
- return new SyntaxError(
- message !== null ? message : buildMessage(expected, found),
- expected,
- found,
- pos,
- posDetails.line,
- posDetails.column
- );
- }
- function peg$parsestart() {
- var s0;
- s0 = peg$parsebody();
- return s0;
- }
- function peg$parsebody() {
- var s0, s1;
- s0 = [];
- s1 = peg$parseitem();
- while (s1 !== peg$FAILED) {
- s0.push(s1);
- s1 = peg$parseitem();
- }
- return s0;
- }
- function peg$parseitem() {
- var s0;
- s0 = peg$parsetag();
- if (s0 === peg$FAILED) {
- s0 = peg$parsebuffer();
- if (s0 === peg$FAILED) {
- s0 = peg$parsereset();
- }
- }
- return s0;
- }
- function peg$parsebuffer() {
- var s0, s1, s2, s3, s4, s5;
- peg$silentFails++;
- s0 = peg$currPos;
- s1 = peg$parseeol();
- if (s1 !== peg$FAILED) {
- s2 = [];
- s3 = peg$parsews();
- while (s3 !== peg$FAILED) {
- s2.push(s3);
- s3 = peg$parsews();
- }
- if (s2 !== peg$FAILED) {
- peg$reportedPos = s0;
- s1 = peg$c3(s1, s2);
- s0 = s1;
- } else {
- peg$currPos = s0;
- s0 = peg$c2;
- }
- } else {
- peg$currPos = s0;
- s0 = peg$c2;
- }
- if (s0 === peg$FAILED) {
- s0 = peg$currPos;
- s1 = [];
- s2 = peg$currPos;
- s3 = peg$currPos;
- peg$silentFails++;
- s4 = peg$parsetag();
- peg$silentFails--;
- if (s4 === peg$FAILED) {
- s3 = peg$c4;
- } else {
- peg$currPos = s3;
- s3 = peg$c2;
- }
- if (s3 !== peg$FAILED) {
- s4 = peg$currPos;
- peg$silentFails++;
- s5 = peg$parsereset();
- peg$silentFails--;
- if (s5 === peg$FAILED) {
- s4 = peg$c4;
- } else {
- peg$currPos = s4;
- s4 = peg$c2;
- }
- if (s4 !== peg$FAILED) {
- s5 = peg$parseany();
- if (s5 !== peg$FAILED) {
- peg$reportedPos = s2;
- s3 = peg$c5(s5);
- s2 = s3;
- } else {
- peg$currPos = s2;
- s2 = peg$c2;
- }
- } else {
- peg$currPos = s2;
- s2 = peg$c2;
- }
- } else {
- peg$currPos = s2;
- s2 = peg$c2;
- }
- if (s2 !== peg$FAILED) {
- while (s2 !== peg$FAILED) {
- s1.push(s2);
- s2 = peg$currPos;
- s3 = peg$currPos;
- peg$silentFails++;
- s4 = peg$parsetag();
- peg$silentFails--;
- if (s4 === peg$FAILED) {
- s3 = peg$c4;
- } else {
- peg$currPos = s3;
- s3 = peg$c2;
- }
- if (s3 !== peg$FAILED) {
- s4 = peg$currPos;
- peg$silentFails++;
- s5 = peg$parsereset();
- peg$silentFails--;
- if (s5 === peg$FAILED) {
- s4 = peg$c4;
- } else {
- peg$currPos = s4;
- s4 = peg$c2;
- }
- if (s4 !== peg$FAILED) {
- s5 = peg$parseany();
- if (s5 !== peg$FAILED) {
- peg$reportedPos = s2;
- s3 = peg$c5(s5);
- s2 = s3;
- } else {
- peg$currPos = s2;
- s2 = peg$c2;
- }
- } else {
- peg$currPos = s2;
- s2 = peg$c2;
- }
- } else {
- peg$currPos = s2;
- s2 = peg$c2;
- }
- }
- } else {
- s1 = peg$c2;
- }
- if (s1 !== peg$FAILED) {
- peg$reportedPos = s0;
- s1 = peg$c6(s1);
- }
- s0 = s1;
- }
- peg$silentFails--;
- if (s0 === peg$FAILED) {
- s1 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c1); }
- }
- return s0;
- }
- function peg$parsetag() {
- var s0, s1, s2, s3, s4, s5, s6, s7, s8;
- s0 = peg$currPos;
- s1 = peg$parseld();
- if (s1 !== peg$FAILED) {
- s2 = peg$parsecolor();
- if (s2 !== peg$FAILED) {
- if (input.charCodeAt(peg$currPos) === 58) {
- s3 = peg$c7;
- peg$currPos++;
- } else {
- s3 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c8); }
- }
- if (s3 !== peg$FAILED) {
- s4 = [];
- s5 = peg$currPos;
- s6 = peg$currPos;
- peg$silentFails++;
- s7 = peg$parseld();
- peg$silentFails--;
- if (s7 === peg$FAILED) {
- s6 = peg$c4;
- } else {
- peg$currPos = s6;
- s6 = peg$c2;
- }
- if (s6 !== peg$FAILED) {
- s7 = peg$currPos;
- peg$silentFails++;
- s8 = peg$parserd();
- peg$silentFails--;
- if (s8 === peg$FAILED) {
- s7 = peg$c4;
- } else {
- peg$currPos = s7;
- s7 = peg$c2;
- }
- if (s7 !== peg$FAILED) {
- s8 = peg$parseany();
- if (s8 !== peg$FAILED) {
- peg$reportedPos = s5;
- s6 = peg$c9(s8);
- s5 = s6;
- } else {
- peg$currPos = s5;
- s5 = peg$c2;
- }
- } else {
- peg$currPos = s5;
- s5 = peg$c2;
- }
- } else {
- peg$currPos = s5;
- s5 = peg$c2;
- }
- if (s5 !== peg$FAILED) {
- while (s5 !== peg$FAILED) {
- s4.push(s5);
- s5 = peg$currPos;
- s6 = peg$currPos;
- peg$silentFails++;
- s7 = peg$parseld();
- peg$silentFails--;
- if (s7 === peg$FAILED) {
- s6 = peg$c4;
- } else {
- peg$currPos = s6;
- s6 = peg$c2;
- }
- if (s6 !== peg$FAILED) {
- s7 = peg$currPos;
- peg$silentFails++;
- s8 = peg$parserd();
- peg$silentFails--;
- if (s8 === peg$FAILED) {
- s7 = peg$c4;
- } else {
- peg$currPos = s7;
- s7 = peg$c2;
- }
- if (s7 !== peg$FAILED) {
- s8 = peg$parseany();
- if (s8 !== peg$FAILED) {
- peg$reportedPos = s5;
- s6 = peg$c9(s8);
- s5 = s6;
- } else {
- peg$currPos = s5;
- s5 = peg$c2;
- }
- } else {
- peg$currPos = s5;
- s5 = peg$c2;
- }
- } else {
- peg$currPos = s5;
- s5 = peg$c2;
- }
- }
- } else {
- s4 = peg$c2;
- }
- if (s4 !== peg$FAILED) {
- peg$reportedPos = s0;
- s1 = peg$c10(s2, s4);
- s0 = s1;
- } else {
- peg$currPos = s0;
- s0 = peg$c2;
- }
- } else {
- peg$currPos = s0;
- s0 = peg$c2;
- }
- } else {
- peg$currPos = s0;
- s0 = peg$c2;
- }
- } else {
- peg$currPos = s0;
- s0 = peg$c2;
- }
- return s0;
- }
- function peg$parseany() {
- var s0, s1;
- s0 = peg$parseesc_left();
- if (s0 === peg$FAILED) {
- s0 = peg$parseesc_right();
- if (s0 === peg$FAILED) {
- s0 = peg$currPos;
- if (input.length > peg$currPos) {
- s1 = input.charAt(peg$currPos);
- peg$currPos++;
- } else {
- s1 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c11); }
- }
- if (s1 !== peg$FAILED) {
- peg$reportedPos = s0;
- s1 = peg$c12(s1);
- }
- s0 = s1;
- }
- }
- return s0;
- }
- function peg$parseesc_left() {
- var s0, s1, s2;
- s0 = peg$currPos;
- s1 = peg$parseesc_seq();
- if (s1 !== peg$FAILED) {
- if (input.charCodeAt(peg$currPos) === 123) {
- s2 = peg$c13;
- peg$currPos++;
- } else {
- s2 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c14); }
- }
- if (s2 !== peg$FAILED) {
- peg$reportedPos = s0;
- s1 = peg$c15(s2);
- s0 = s1;
- } else {
- peg$currPos = s0;
- s0 = peg$c2;
- }
- } else {
- peg$currPos = s0;
- s0 = peg$c2;
- }
- return s0;
- }
- function peg$parseesc_right() {
- var s0, s1, s2;
- s0 = peg$currPos;
- s1 = peg$parseesc_seq();
- if (s1 !== peg$FAILED) {
- if (input.charCodeAt(peg$currPos) === 125) {
- s2 = peg$c16;
- peg$currPos++;
- } else {
- s2 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c17); }
- }
- if (s2 !== peg$FAILED) {
- peg$reportedPos = s0;
- s1 = peg$c15(s2);
- s0 = s1;
- } else {
- peg$currPos = s0;
- s0 = peg$c2;
- }
- } else {
- peg$currPos = s0;
- s0 = peg$c2;
- }
- return s0;
- }
- function peg$parseesc_seq() {
- var s0;
- if (input.charCodeAt(peg$currPos) === 92) {
- s0 = peg$c18;
- peg$currPos++;
- } else {
- s0 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c19); }
- }
- return s0;
- }
- function peg$parsecolor() {
- var s0, s1, s2;
- s0 = peg$currPos;
- s1 = [];
- if (peg$c20.test(input.charAt(peg$currPos))) {
- s2 = input.charAt(peg$currPos);
- peg$currPos++;
- } else {
- s2 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c21); }
- }
- if (s2 !== peg$FAILED) {
- while (s2 !== peg$FAILED) {
- s1.push(s2);
- if (peg$c20.test(input.charAt(peg$currPos))) {
- s2 = input.charAt(peg$currPos);
- peg$currPos++;
- } else {
- s2 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c21); }
- }
- }
- } else {
- s1 = peg$c2;
- }
- if (s1 !== peg$FAILED) {
- peg$reportedPos = s0;
- s1 = peg$c22(s1);
- }
- s0 = s1;
- return s0;
- }
- function peg$parsereset() {
- var s0, s1, s2, s3;
- s0 = peg$currPos;
- s1 = peg$currPos;
- s2 = peg$currPos;
- peg$silentFails++;
- s3 = peg$parseesc_right();
- peg$silentFails--;
- if (s3 === peg$FAILED) {
- s2 = peg$c4;
- } else {
- peg$currPos = s2;
- s2 = peg$c2;
- }
- if (s2 !== peg$FAILED) {
- s3 = peg$parserd();
- if (s3 !== peg$FAILED) {
- s2 = [s2, s3];
- s1 = s2;
- } else {
- peg$currPos = s1;
- s1 = peg$c2;
- }
- } else {
- peg$currPos = s1;
- s1 = peg$c2;
- }
- if (s1 !== peg$FAILED) {
- s2 = peg$parseafter();
- if (s2 === peg$FAILED) {
- s2 = peg$c23;
- }
- if (s2 !== peg$FAILED) {
- peg$reportedPos = s0;
- s1 = peg$c24(s1, s2);
- s0 = s1;
- } else {
- peg$currPos = s0;
- s0 = peg$c2;
- }
- } else {
- peg$currPos = s0;
- s0 = peg$c2;
- }
- return s0;
- }
- function peg$parseafter() {
- var s0, s1, s2, s3, s4;
- s0 = [];
- s1 = peg$currPos;
- s2 = peg$currPos;
- peg$silentFails++;
- s3 = peg$parseld();
- peg$silentFails--;
- if (s3 === peg$FAILED) {
- s2 = peg$c4;
- } else {
- peg$currPos = s2;
- s2 = peg$c2;
- }
- if (s2 !== peg$FAILED) {
- s3 = peg$currPos;
- peg$silentFails++;
- s4 = peg$parserd();
- peg$silentFails--;
- if (s4 === peg$FAILED) {
- s3 = peg$c4;
- } else {
- peg$currPos = s3;
- s3 = peg$c2;
- }
- if (s3 !== peg$FAILED) {
- s4 = peg$parseany();
- if (s4 !== peg$FAILED) {
- peg$reportedPos = s1;
- s2 = peg$c25(s4);
- s1 = s2;
- } else {
- peg$currPos = s1;
- s1 = peg$c2;
- }
- } else {
- peg$currPos = s1;
- s1 = peg$c2;
- }
- } else {
- peg$currPos = s1;
- s1 = peg$c2;
- }
- if (s1 !== peg$FAILED) {
- while (s1 !== peg$FAILED) {
- s0.push(s1);
- s1 = peg$currPos;
- s2 = peg$currPos;
- peg$silentFails++;
- s3 = peg$parseld();
- peg$silentFails--;
- if (s3 === peg$FAILED) {
- s2 = peg$c4;
- } else {
- peg$currPos = s2;
- s2 = peg$c2;
- }
- if (s2 !== peg$FAILED) {
- s3 = peg$currPos;
- peg$silentFails++;
- s4 = peg$parserd();
- peg$silentFails--;
- if (s4 === peg$FAILED) {
- s3 = peg$c4;
- } else {
- peg$currPos = s3;
- s3 = peg$c2;
- }
- if (s3 !== peg$FAILED) {
- s4 = peg$parseany();
- if (s4 !== peg$FAILED) {
- peg$reportedPos = s1;
- s2 = peg$c25(s4);
- s1 = s2;
- } else {
- peg$currPos = s1;
- s1 = peg$c2;
- }
- } else {
- peg$currPos = s1;
- s1 = peg$c2;
- }
- } else {
- peg$currPos = s1;
- s1 = peg$c2;
- }
- }
- } else {
- s0 = peg$c2;
- }
- return s0;
- }
- function peg$parseld() {
- var s0;
- if (input.charCodeAt(peg$currPos) === 123) {
- s0 = peg$c13;
- peg$currPos++;
- } else {
- s0 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c14); }
- }
- return s0;
- }
- function peg$parserd() {
- var s0;
- if (input.charCodeAt(peg$currPos) === 125) {
- s0 = peg$c16;
- peg$currPos++;
- } else {
- s0 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c17); }
- }
- return s0;
- }
- function peg$parseeol() {
- var s0;
- if (input.charCodeAt(peg$currPos) === 10) {
- s0 = peg$c26;
- peg$currPos++;
- } else {
- s0 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c27); }
- }
- if (s0 === peg$FAILED) {
- if (input.substr(peg$currPos, 2) === peg$c28) {
- s0 = peg$c28;
- peg$currPos += 2;
- } else {
- s0 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c29); }
- }
- if (s0 === peg$FAILED) {
- if (input.charCodeAt(peg$currPos) === 13) {
- s0 = peg$c30;
- peg$currPos++;
- } else {
- s0 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c31); }
- }
- if (s0 === peg$FAILED) {
- if (input.charCodeAt(peg$currPos) === 8232) {
- s0 = peg$c32;
- peg$currPos++;
- } else {
- s0 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c33); }
- }
- if (s0 === peg$FAILED) {
- if (input.charCodeAt(peg$currPos) === 8233) {
- s0 = peg$c34;
- peg$currPos++;
- } else {
- s0 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c35); }
- }
- }
- }
- }
- }
- return s0;
- }
- function peg$parsews() {
- var s0;
- if (peg$c36.test(input.charAt(peg$currPos))) {
- s0 = input.charAt(peg$currPos);
- peg$currPos++;
- } else {
- s0 = peg$FAILED;
- if (peg$silentFails === 0) { peg$fail(peg$c37); }
- }
- if (s0 === peg$FAILED) {
- s0 = peg$parseeol();
- }
- return s0;
- }
- peg$result = peg$startRuleFunction();
- if (peg$result !== peg$FAILED && peg$currPos === input.length) {
- return peg$result;
- } else {
- if (peg$result !== peg$FAILED && peg$currPos < input.length) {
- peg$fail({ type: "end", description: "end of input" });
- }
- throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);
- }
- }
- return {
- SyntaxError: SyntaxError,
- parse: parse
- };
- })()
|