Skip to content

Instantly share code, notes, and snippets.

@shamansir
Last active December 27, 2015 05:29
Show Gist options
  • Select an option

  • Save shamansir/7274681 to your computer and use it in GitHub Desktop.

Select an option

Save shamansir/7274681 to your computer and use it in GitHub Desktop.
module.exports = (function() {
/*
* Generated by PEG.js 0.7.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(expected, found, offset, line, column) {
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 expectedDesc, foundDesc;
switch (expected.length) {
case 0:
expectedDesc = "end of input";
break;
case 1:
expectedDesc = expected[0];
break;
default:
expectedDesc = expected.slice(0, -1).join(", ")
+ " or "
+ expected[expected.length - 1];
}
foundDesc = found ? "\"" + stringEscape(found) + "\"" : "end of input";
return "Expected " + expectedDesc + " but " + foundDesc + " found.";
}
this.expected = expected;
this.found = found;
this.offset = offset;
this.line = line;
this.column = column;
this.name = "SyntaxError";
this.message = buildMessage(expected, found);
}
peg$subclass(SyntaxError, Error);
function parse(input) {
var options = arguments.length > 1 ? arguments[1] : {},
peg$startRuleFunctions = { start: peg$parsestart },
peg$startRuleFunction = peg$parsestart,
peg$c0 = null,
peg$c1 = [],
peg$c2 = function(stylesheet) { return stylesheet; },
peg$c3 = "",
peg$c4 = ";",
peg$c5 = "\";\"",
peg$c6 = function(charset, imports, rules) {
var importsConverted = [];
for (var i = 0; i < imports.length; i++) {
importsConverted.push(imports[i][0]);
}
var rulesConverted = [];
for (i = 0; i < rules.length; i++) {
rulesConverted.push(rules[i][0]);
}
return {
type: "stylesheet",
charset: charset !== "" ? charset[1] : null,
imports: importsConverted,
rules: rulesConverted
};
},
peg$c7 = function(href, media) {
return {
type: "import_rule",
href: href,
media: media !== "" ? media : []
};
},
peg$c8 = "{",
peg$c9 = "\"{\"",
peg$c10 = "}",
peg$c11 = "\"}\"",
peg$c12 = function(media, rules) {
return {
type: "media_rule",
media: media,
rules: rules
};
},
peg$c13 = ",",
peg$c14 = "\",\"",
peg$c15 = function(head, tail) {
var result = [head];
for (var i = 0; i < tail.length; i++) {
result.push(tail[i][2]);
}
return result;
},
peg$c16 = function(ident) { return ident; },
peg$c17 = function(qualifier, declarationsHead, declarationsTail) {
var declarations = declarationsHead !== "" ? [declarationsHead] : [];
for (var i = 0; i < declarationsTail.length; i++) {
if (declarationsTail[i][2] !== "") {
declarations.push(declarationsTail[i][2]);
}
}
return {
type: "page_rule",
qualifier: qualifier !== "" ? qualifier : null,
declarations: declarations
};
},
peg$c18 = ":",
peg$c19 = "\":\"",
peg$c20 = "/",
peg$c21 = "\"/\"",
peg$c22 = function() { return "/"; },
peg$c23 = function() { return ","; },
peg$c24 = "+",
peg$c25 = "\"+\"",
peg$c26 = function() { return "+"; },
peg$c27 = ">",
peg$c28 = "\">\"",
peg$c29 = function() { return ">"; },
peg$c30 = "-",
peg$c31 = "\"-\"",
peg$c32 = function(selectorsHead, selectorsTail, declarationsHead, declarationsTail) {
var selectors = [selectorsHead];
for (var i = 0; i < selectorsTail.length; i++) {
selectors.push(selectorsTail[i][2]);
}
var declarations = declarationsHead !== "" ? [declarationsHead] : [];
for (i = 0; i < declarationsTail.length; i++) {
if (declarationsTail[i][2] !== "") {
declarations.push(declarationsTail[i][2]);
}
}
return {
type: "ruleset",
selectors: selectors,
declarations: declarations
};
},
peg$c33 = function(left, combinator, right) {
return {
type: "selector",
combinator: combinator,
left: left,
right: right
};
},
peg$c34 = function(left, right) {
return {
type: "selector",
combinator: " ",
left: left,
right: right
};
},
peg$c35 = function(selector) { return selector; },
peg$c36 = function(id) { return { type: "ID selector", id: id.substr(1) }; },
peg$c37 = function(element, qualifiers) {
return {
type: "simple_selector",
element: element,
qualifiers: qualifiers
};
},
peg$c38 = function(qualifiers) {
return {
type: "simple_selector",
element: "*",
qualifiers: qualifiers
};
},
peg$c39 = ".",
peg$c40 = "\".\"",
peg$c41 = function(class_) { return { type: "class_selector", "class": class_ }; },
peg$c42 = "*",
peg$c43 = "\"*\"",
peg$c44 = "[",
peg$c45 = "\"[\"",
peg$c46 = "=",
peg$c47 = "\"=\"",
peg$c48 = "]",
peg$c49 = "\"]\"",
peg$c50 = function(attribute, operatorAndValue) {
return {
type: "attribute_selector",
attribute: attribute,
operator: operatorAndValue !== "" ? operatorAndValue[0] : null,
value: operatorAndValue !== "" ? operatorAndValue[2] : null
};
},
peg$c51 = ")",
peg$c52 = "\")\"",
peg$c53 = function(name, params) {
return {
type: "function",
name: name,
params: params !== "" ? [params[0]] : []
};
},
peg$c54 = function(value) {
/*
* The returned object has somewhat vague property names and values because
* the rule matches both pseudo-classes and pseudo-elements (they look the
* same at the syntactic level).
*/
return {
type: "pseudo_selector",
value: value
};
},
peg$c55 = function(property, expression, important) {
return {
type: "declaration",
property: property,
expression: expression,
important: important !== "" ? true : false
};
},
peg$c56 = function(head, tail) {
var result = head;
for (var i = 0; i < tail.length; i++) {
result = {
type: "expression",
operator: tail[i][0],
left: result,
right: tail[i][1]
};
}
return result;
},
peg$c57 = function(operator, value) { return { type: "value", value: operator + value[0] }; },
peg$c58 = function(value) { return { type: "uri", value: value }; },
peg$c59 = function(value) { return { type: "string", value: value }; },
peg$c60 = function(value) { return { type: "ident", value: value }; },
peg$c61 = function(name, params) {
return {
type: "function",
name: name,
params: params
};
},
peg$c62 = function(value) { return { type: "hexcolor", value: value}; },
peg$c63 = /^[0-9a-fA-F]/,
peg$c64 = "[0-9a-fA-F]",
peg$c65 = /^[\x80-\xFF]/,
peg$c66 = "[\\x80-\\xFF]",
peg$c67 = "\\",
peg$c68 = "\"\\\\\"",
peg$c69 = "\r\n",
peg$c70 = "\"\\r\\n\"",
peg$c71 = /^[ \t\r\n\f]/,
peg$c72 = "[ \\t\\r\\n\\f]",
peg$c73 = function(digits) {
return String.fromCharCode(parseInt("0x" + digits));
},
peg$c74 = /^[^\r\n\f0-9a-fA-F]/,
peg$c75 = "[^\\r\\n\\f0-9a-fA-F]",
peg$c76 = function(char_) { return char_; },
peg$c77 = /^[_a-zA-Z]/,
peg$c78 = "[_a-zA-Z]",
peg$c79 = /^[_a-zA-Z0-9\-]/,
peg$c80 = "[_a-zA-Z0-9\\-]",
peg$c81 = /^[0-9]/,
peg$c82 = "[0-9]",
peg$c83 = function(parts) { return parseInt(parts); },
peg$c84 = function(parts) { return parseFloat(parts); },
peg$c85 = "\"",
peg$c86 = "\"\\\"\"",
peg$c87 = /^[^\n\r\f\\"]/,
peg$c88 = "[^\\n\\r\\f\\\\\"]",
peg$c89 = function(nl) { return nl },
peg$c90 = function(chars) {
return chars.join("");
},
peg$c91 = "'",
peg$c92 = "\"'\"",
peg$c93 = /^[^\n\r\f\\']/,
peg$c94 = "[^\\n\\r\\f\\\\']",
peg$c95 = "/*",
peg$c96 = "\"/*\"",
peg$c97 = /^[^*]/,
peg$c98 = "[^*]",
peg$c99 = /^[^\/*]/,
peg$c100 = "[^\\/*]",
peg$c101 = function(dash, nmstart, nmchars) {
return dash + nmstart + nmchars.join("");
},
peg$c102 = function(nmchars) { return nmchars.join(""); },
peg$c103 = /^[!#$%&*-~]/,
peg$c104 = "[!#$%&*-~]",
peg$c105 = function(chars) { return chars.join(""); },
peg$c106 = "\n",
peg$c107 = "\"\\n\"",
peg$c108 = "\r",
peg$c109 = "\"\\r\"",
peg$c110 = "\f",
peg$c111 = "\"\\f\"",
peg$c112 = /^[aA]/,
peg$c113 = "[aA]",
peg$c114 = "0",
peg$c115 = "\"0\"",
peg$c116 = "41",
peg$c117 = "\"41\"",
peg$c118 = function() { return "A"; },
peg$c119 = "61",
peg$c120 = "\"61\"",
peg$c121 = function() { return "a"; },
peg$c122 = /^[cC]/,
peg$c123 = "[cC]",
peg$c124 = "43",
peg$c125 = "\"43\"",
peg$c126 = function() { return "C"; },
peg$c127 = "63",
peg$c128 = "\"63\"",
peg$c129 = function() { return "c"; },
peg$c130 = /^[dD]/,
peg$c131 = "[dD]",
peg$c132 = "44",
peg$c133 = "\"44\"",
peg$c134 = function() { return "D"; },
peg$c135 = "64",
peg$c136 = "\"64\"",
peg$c137 = function() { return "d"; },
peg$c138 = /^[eE]/,
peg$c139 = "[eE]",
peg$c140 = "45",
peg$c141 = "\"45\"",
peg$c142 = function() { return "E"; },
peg$c143 = "65",
peg$c144 = "\"65\"",
peg$c145 = function() { return "e"; },
peg$c146 = /^[gG]/,
peg$c147 = "[gG]",
peg$c148 = "47",
peg$c149 = "\"47\"",
peg$c150 = function() { return "G"; },
peg$c151 = "67",
peg$c152 = "\"67\"",
peg$c153 = function() { return "g"; },
peg$c154 = /^[hH]/,
peg$c155 = "[hH]",
peg$c156 = "48",
peg$c157 = "\"48\"",
peg$c158 = function() { return "H"; },
peg$c159 = "68",
peg$c160 = "\"68\"",
peg$c161 = function() { return "h"; },
peg$c162 = /^[iI]/,
peg$c163 = "[iI]",
peg$c164 = "49",
peg$c165 = "\"49\"",
peg$c166 = function() { return "I"; },
peg$c167 = "69",
peg$c168 = "\"69\"",
peg$c169 = function() { return "i"; },
peg$c170 = /^[kK]/,
peg$c171 = "[kK]",
peg$c172 = "4",
peg$c173 = "\"4\"",
peg$c174 = /^[bB]/,
peg$c175 = "[bB]",
peg$c176 = function() { return "K"; },
peg$c177 = "6",
peg$c178 = "\"6\"",
peg$c179 = function() { return "k"; },
peg$c180 = /^[lL]/,
peg$c181 = "[lL]",
peg$c182 = function() { return "L"; },
peg$c183 = function() { return "l"; },
peg$c184 = /^[mM]/,
peg$c185 = "[mM]",
peg$c186 = function() { return "M"; },
peg$c187 = function() { return "m"; },
peg$c188 = /^[nN]/,
peg$c189 = "[nN]",
peg$c190 = function() { return "N"; },
peg$c191 = function() { return "n"; },
peg$c192 = /^[oO]/,
peg$c193 = "[oO]",
peg$c194 = /^[fF]/,
peg$c195 = "[fF]",
peg$c196 = function() { return "O"; },
peg$c197 = function() { return "o"; },
peg$c198 = /^[pP]/,
peg$c199 = "[pP]",
peg$c200 = "50",
peg$c201 = "\"50\"",
peg$c202 = function() { return "P"; },
peg$c203 = "70",
peg$c204 = "\"70\"",
peg$c205 = function() { return "p"; },
peg$c206 = /^[rR]/,
peg$c207 = "[rR]",
peg$c208 = "52",
peg$c209 = "\"52\"",
peg$c210 = function() { return "R"; },
peg$c211 = "72",
peg$c212 = "\"72\"",
peg$c213 = function() { return "r"; },
peg$c214 = /^[sS]/,
peg$c215 = "[sS]",
peg$c216 = "53",
peg$c217 = "\"53\"",
peg$c218 = function() { return "S"; },
peg$c219 = "73",
peg$c220 = "\"73\"",
peg$c221 = function() { return "s"; },
peg$c222 = /^[tT]/,
peg$c223 = "[tT]",
peg$c224 = "54",
peg$c225 = "\"54\"",
peg$c226 = function() { return "T"; },
peg$c227 = "74",
peg$c228 = "\"74\"",
peg$c229 = function() { return "t"; },
peg$c230 = /^[uU]/,
peg$c231 = "[uU]",
peg$c232 = "55",
peg$c233 = "\"55\"",
peg$c234 = function() { return "U"; },
peg$c235 = "75",
peg$c236 = "\"75\"",
peg$c237 = function() { return "u"; },
peg$c238 = /^[xX]/,
peg$c239 = "[xX]",
peg$c240 = "58",
peg$c241 = "\"58\"",
peg$c242 = function() { return "X"; },
peg$c243 = "78",
peg$c244 = "\"78\"",
peg$c245 = function() { return "x"; },
peg$c246 = /^[zZ]/,
peg$c247 = "[zZ]",
peg$c248 = "5",
peg$c249 = "\"5\"",
peg$c250 = function() { return "Z"; },
peg$c251 = "7",
peg$c252 = "\"7\"",
peg$c253 = function() { return "z"; },
peg$c254 = "whitespace",
peg$c255 = "<!--",
peg$c256 = "\"<!--\"",
peg$c257 = "-->",
peg$c258 = "\"-->\"",
peg$c259 = "~=",
peg$c260 = "\"~=\"",
peg$c261 = "|=",
peg$c262 = "\"|=\"",
peg$c263 = "string",
peg$c264 = function(string) { return string; },
peg$c265 = "identifier",
peg$c266 = "hash",
peg$c267 = "#",
peg$c268 = "\"#\"",
peg$c269 = function(name) { return "#" + name; },
peg$c270 = "@import",
peg$c271 = "@",
peg$c272 = "\"@\"",
peg$c273 = "@page",
peg$c274 = "@media",
peg$c275 = "@charset",
peg$c276 = "@charset ",
peg$c277 = "\"@charset \"",
peg$c278 = "!important",
peg$c279 = "!",
peg$c280 = "\"!\"",
peg$c281 = function() { return "!important"; },
peg$c282 = "length",
peg$c283 = function(num, e, m) { return num + e + m; },
peg$c284 = function(num, e, x) { return num + e + x; },
peg$c285 = function(num, unit) {
return num + unit.join("");
},
peg$c286 = "angle",
peg$c287 = "time",
peg$c288 = function(m, s) { return m + s; },
peg$c289 = function(num, unit) {
return num + unit;
},
peg$c290 = "frequency",
peg$c291 = function(num, unit) { return num + unit.join(""); },
peg$c292 = "dimension",
peg$c293 = function(num, unit) { return num + unit; },
peg$c294 = "percentage",
peg$c295 = "%",
peg$c296 = "\"%\"",
peg$c297 = function(parts) { return parts; },
peg$c298 = "number",
peg$c299 = function(num) { return num; },
peg$c300 = "uri",
peg$c301 = "(",
peg$c302 = "\"(\"",
peg$c303 = function(value) { return value; },
peg$c304 = "function",
peg$c305 = function(name) { return name; },
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 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$cleanupExpected(expected) {
var i = 0;
expected.sort();
while (i < expected.length) {
if (expected[i - 1] === expected[i]) {
expected.splice(i, 1);
} else {
i++;
}
}
}
function peg$parsestart() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parsestylesheet();
if (s1 !== null) {
s2 = [];
s3 = peg$parsecomment();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parsecomment();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c2(s1);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parsestylesheet() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11;
s0 = peg$currPos;
s1 = peg$currPos;
s2 = peg$parseCHARSET_SYM();
if (s2 !== null) {
s3 = peg$parseSTRING();
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 59) {
s4 = peg$c4;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c5); }
}
if (s4 !== null) {
s2 = [s2, s3, s4];
s1 = s2;
} else {
peg$currPos = s1;
s1 = peg$c0;
}
} else {
peg$currPos = s1;
s1 = peg$c0;
}
} else {
peg$currPos = s1;
s1 = peg$c0;
}
if (s1 === null) {
s1 = peg$c3;
}
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
if (s3 === null) {
s3 = peg$parseCDO();
if (s3 === null) {
s3 = peg$parseCDC();
}
}
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
if (s3 === null) {
s3 = peg$parseCDO();
if (s3 === null) {
s3 = peg$parseCDC();
}
}
}
if (s2 !== null) {
s3 = [];
s4 = peg$currPos;
s5 = peg$parseimport();
if (s5 !== null) {
s6 = [];
s7 = peg$currPos;
s8 = peg$parseCDO();
if (s8 !== null) {
s9 = [];
s10 = peg$parseS();
while (s10 !== null) {
s9.push(s10);
s10 = peg$parseS();
}
if (s9 !== null) {
s8 = [s8, s9];
s7 = s8;
} else {
peg$currPos = s7;
s7 = peg$c0;
}
} else {
peg$currPos = s7;
s7 = peg$c0;
}
if (s7 === null) {
s7 = peg$currPos;
s8 = peg$parseCDC();
if (s8 !== null) {
s9 = [];
s10 = peg$parseS();
while (s10 !== null) {
s9.push(s10);
s10 = peg$parseS();
}
if (s9 !== null) {
s8 = [s8, s9];
s7 = s8;
} else {
peg$currPos = s7;
s7 = peg$c0;
}
} else {
peg$currPos = s7;
s7 = peg$c0;
}
}
while (s7 !== null) {
s6.push(s7);
s7 = peg$currPos;
s8 = peg$parseCDO();
if (s8 !== null) {
s9 = [];
s10 = peg$parseS();
while (s10 !== null) {
s9.push(s10);
s10 = peg$parseS();
}
if (s9 !== null) {
s8 = [s8, s9];
s7 = s8;
} else {
peg$currPos = s7;
s7 = peg$c0;
}
} else {
peg$currPos = s7;
s7 = peg$c0;
}
if (s7 === null) {
s7 = peg$currPos;
s8 = peg$parseCDC();
if (s8 !== null) {
s9 = [];
s10 = peg$parseS();
while (s10 !== null) {
s9.push(s10);
s10 = peg$parseS();
}
if (s9 !== null) {
s8 = [s8, s9];
s7 = s8;
} else {
peg$currPos = s7;
s7 = peg$c0;
}
} else {
peg$currPos = s7;
s7 = peg$c0;
}
}
}
if (s6 !== null) {
s5 = [s5, s6];
s4 = s5;
} else {
peg$currPos = s4;
s4 = peg$c0;
}
} else {
peg$currPos = s4;
s4 = peg$c0;
}
while (s4 !== null) {
s3.push(s4);
s4 = peg$currPos;
s5 = peg$parseimport();
if (s5 !== null) {
s6 = [];
s7 = peg$currPos;
s8 = peg$parseCDO();
if (s8 !== null) {
s9 = [];
s10 = peg$parseS();
while (s10 !== null) {
s9.push(s10);
s10 = peg$parseS();
}
if (s9 !== null) {
s8 = [s8, s9];
s7 = s8;
} else {
peg$currPos = s7;
s7 = peg$c0;
}
} else {
peg$currPos = s7;
s7 = peg$c0;
}
if (s7 === null) {
s7 = peg$currPos;
s8 = peg$parseCDC();
if (s8 !== null) {
s9 = [];
s10 = peg$parseS();
while (s10 !== null) {
s9.push(s10);
s10 = peg$parseS();
}
if (s9 !== null) {
s8 = [s8, s9];
s7 = s8;
} else {
peg$currPos = s7;
s7 = peg$c0;
}
} else {
peg$currPos = s7;
s7 = peg$c0;
}
}
while (s7 !== null) {
s6.push(s7);
s7 = peg$currPos;
s8 = peg$parseCDO();
if (s8 !== null) {
s9 = [];
s10 = peg$parseS();
while (s10 !== null) {
s9.push(s10);
s10 = peg$parseS();
}
if (s9 !== null) {
s8 = [s8, s9];
s7 = s8;
} else {
peg$currPos = s7;
s7 = peg$c0;
}
} else {
peg$currPos = s7;
s7 = peg$c0;
}
if (s7 === null) {
s7 = peg$currPos;
s8 = peg$parseCDC();
if (s8 !== null) {
s9 = [];
s10 = peg$parseS();
while (s10 !== null) {
s9.push(s10);
s10 = peg$parseS();
}
if (s9 !== null) {
s8 = [s8, s9];
s7 = s8;
} else {
peg$currPos = s7;
s7 = peg$c0;
}
} else {
peg$currPos = s7;
s7 = peg$c0;
}
}
}
if (s6 !== null) {
s5 = [s5, s6];
s4 = s5;
} else {
peg$currPos = s4;
s4 = peg$c0;
}
} else {
peg$currPos = s4;
s4 = peg$c0;
}
}
if (s3 !== null) {
s4 = [];
s5 = peg$currPos;
s6 = peg$parseruleset();
if (s6 === null) {
s6 = peg$parsemedia();
if (s6 === null) {
s6 = peg$parsepage();
}
}
if (s6 !== null) {
s7 = [];
s8 = peg$currPos;
s9 = peg$parseCDO();
if (s9 !== null) {
s10 = [];
s11 = peg$parseS();
while (s11 !== null) {
s10.push(s11);
s11 = peg$parseS();
}
if (s10 !== null) {
s9 = [s9, s10];
s8 = s9;
} else {
peg$currPos = s8;
s8 = peg$c0;
}
} else {
peg$currPos = s8;
s8 = peg$c0;
}
if (s8 === null) {
s8 = peg$currPos;
s9 = peg$parseCDC();
if (s9 !== null) {
s10 = [];
s11 = peg$parseS();
while (s11 !== null) {
s10.push(s11);
s11 = peg$parseS();
}
if (s10 !== null) {
s9 = [s9, s10];
s8 = s9;
} else {
peg$currPos = s8;
s8 = peg$c0;
}
} else {
peg$currPos = s8;
s8 = peg$c0;
}
}
while (s8 !== null) {
s7.push(s8);
s8 = peg$currPos;
s9 = peg$parseCDO();
if (s9 !== null) {
s10 = [];
s11 = peg$parseS();
while (s11 !== null) {
s10.push(s11);
s11 = peg$parseS();
}
if (s10 !== null) {
s9 = [s9, s10];
s8 = s9;
} else {
peg$currPos = s8;
s8 = peg$c0;
}
} else {
peg$currPos = s8;
s8 = peg$c0;
}
if (s8 === null) {
s8 = peg$currPos;
s9 = peg$parseCDC();
if (s9 !== null) {
s10 = [];
s11 = peg$parseS();
while (s11 !== null) {
s10.push(s11);
s11 = peg$parseS();
}
if (s10 !== null) {
s9 = [s9, s10];
s8 = s9;
} else {
peg$currPos = s8;
s8 = peg$c0;
}
} else {
peg$currPos = s8;
s8 = peg$c0;
}
}
}
if (s7 !== null) {
s6 = [s6, s7];
s5 = s6;
} else {
peg$currPos = s5;
s5 = peg$c0;
}
} else {
peg$currPos = s5;
s5 = peg$c0;
}
while (s5 !== null) {
s4.push(s5);
s5 = peg$currPos;
s6 = peg$parseruleset();
if (s6 === null) {
s6 = peg$parsemedia();
if (s6 === null) {
s6 = peg$parsepage();
}
}
if (s6 !== null) {
s7 = [];
s8 = peg$currPos;
s9 = peg$parseCDO();
if (s9 !== null) {
s10 = [];
s11 = peg$parseS();
while (s11 !== null) {
s10.push(s11);
s11 = peg$parseS();
}
if (s10 !== null) {
s9 = [s9, s10];
s8 = s9;
} else {
peg$currPos = s8;
s8 = peg$c0;
}
} else {
peg$currPos = s8;
s8 = peg$c0;
}
if (s8 === null) {
s8 = peg$currPos;
s9 = peg$parseCDC();
if (s9 !== null) {
s10 = [];
s11 = peg$parseS();
while (s11 !== null) {
s10.push(s11);
s11 = peg$parseS();
}
if (s10 !== null) {
s9 = [s9, s10];
s8 = s9;
} else {
peg$currPos = s8;
s8 = peg$c0;
}
} else {
peg$currPos = s8;
s8 = peg$c0;
}
}
while (s8 !== null) {
s7.push(s8);
s8 = peg$currPos;
s9 = peg$parseCDO();
if (s9 !== null) {
s10 = [];
s11 = peg$parseS();
while (s11 !== null) {
s10.push(s11);
s11 = peg$parseS();
}
if (s10 !== null) {
s9 = [s9, s10];
s8 = s9;
} else {
peg$currPos = s8;
s8 = peg$c0;
}
} else {
peg$currPos = s8;
s8 = peg$c0;
}
if (s8 === null) {
s8 = peg$currPos;
s9 = peg$parseCDC();
if (s9 !== null) {
s10 = [];
s11 = peg$parseS();
while (s11 !== null) {
s10.push(s11);
s11 = peg$parseS();
}
if (s10 !== null) {
s9 = [s9, s10];
s8 = s9;
} else {
peg$currPos = s8;
s8 = peg$c0;
}
} else {
peg$currPos = s8;
s8 = peg$c0;
}
}
}
if (s7 !== null) {
s6 = [s6, s7];
s5 = s6;
} else {
peg$currPos = s5;
s5 = peg$c0;
}
} else {
peg$currPos = s5;
s5 = peg$c0;
}
}
if (s4 !== null) {
peg$reportedPos = s0;
s1 = peg$c6(s1, s3, s4);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parseimport() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
s0 = peg$currPos;
s1 = peg$parseIMPORT_SYM();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
s3 = peg$parseSTRING();
if (s3 === null) {
s3 = peg$parseURI();
}
if (s3 !== null) {
s4 = [];
s5 = peg$parseS();
while (s5 !== null) {
s4.push(s5);
s5 = peg$parseS();
}
if (s4 !== null) {
s5 = peg$parsemedia_list();
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 59) {
s6 = peg$c4;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c5); }
}
if (s6 !== null) {
s7 = [];
s8 = peg$parseS();
while (s8 !== null) {
s7.push(s8);
s8 = peg$parseS();
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c7(s3, s5);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parsemedia() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
s0 = peg$currPos;
s1 = peg$parseMEDIA_SYM();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
s3 = peg$parsemedia_list();
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 123) {
s4 = peg$c8;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c9); }
}
if (s4 !== null) {
s5 = [];
s6 = peg$parseS();
while (s6 !== null) {
s5.push(s6);
s6 = peg$parseS();
}
if (s5 !== null) {
s6 = [];
s7 = peg$parseruleset();
while (s7 !== null) {
s6.push(s7);
s7 = peg$parseruleset();
}
if (s6 !== null) {
if (input.charCodeAt(peg$currPos) === 125) {
s7 = peg$c10;
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c11); }
}
if (s7 !== null) {
s8 = [];
s9 = peg$parseS();
while (s9 !== null) {
s8.push(s9);
s9 = peg$parseS();
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c12(s3, s6);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parsemedia_list() {
var s0, s1, s2, s3, s4, s5, s6;
s0 = peg$currPos;
s1 = peg$parsemedium();
if (s1 !== null) {
s2 = [];
s3 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 44) {
s4 = peg$c13;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c14); }
}
if (s4 !== null) {
s5 = [];
s6 = peg$parseS();
while (s6 !== null) {
s5.push(s6);
s6 = peg$parseS();
}
if (s5 !== null) {
s6 = peg$parsemedium();
if (s6 !== null) {
s4 = [s4, s5, s6];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
while (s3 !== null) {
s2.push(s3);
s3 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 44) {
s4 = peg$c13;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c14); }
}
if (s4 !== null) {
s5 = [];
s6 = peg$parseS();
while (s6 !== null) {
s5.push(s6);
s6 = peg$parseS();
}
if (s5 !== null) {
s6 = peg$parsemedium();
if (s6 !== null) {
s4 = [s4, s5, s6];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c15(s1, s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parsemedium() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseIDENT();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c16(s1);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parsepage() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11;
s0 = peg$currPos;
s1 = peg$parsePAGE_SYM();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
s3 = peg$parsepseudo_page();
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 123) {
s4 = peg$c8;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c9); }
}
if (s4 !== null) {
s5 = [];
s6 = peg$parseS();
while (s6 !== null) {
s5.push(s6);
s6 = peg$parseS();
}
if (s5 !== null) {
s6 = peg$parsedeclaration();
if (s6 === null) {
s6 = peg$c3;
}
if (s6 !== null) {
s7 = [];
s8 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 59) {
s9 = peg$c4;
peg$currPos++;
} else {
s9 = null;
if (peg$silentFails === 0) { peg$fail(peg$c5); }
}
if (s9 !== null) {
s10 = [];
s11 = peg$parseS();
while (s11 !== null) {
s10.push(s11);
s11 = peg$parseS();
}
if (s10 !== null) {
s11 = peg$parsedeclaration();
if (s11 === null) {
s11 = peg$c3;
}
if (s11 !== null) {
s9 = [s9, s10, s11];
s8 = s9;
} else {
peg$currPos = s8;
s8 = peg$c0;
}
} else {
peg$currPos = s8;
s8 = peg$c0;
}
} else {
peg$currPos = s8;
s8 = peg$c0;
}
while (s8 !== null) {
s7.push(s8);
s8 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 59) {
s9 = peg$c4;
peg$currPos++;
} else {
s9 = null;
if (peg$silentFails === 0) { peg$fail(peg$c5); }
}
if (s9 !== null) {
s10 = [];
s11 = peg$parseS();
while (s11 !== null) {
s10.push(s11);
s11 = peg$parseS();
}
if (s10 !== null) {
s11 = peg$parsedeclaration();
if (s11 === null) {
s11 = peg$c3;
}
if (s11 !== null) {
s9 = [s9, s10, s11];
s8 = s9;
} else {
peg$currPos = s8;
s8 = peg$c0;
}
} else {
peg$currPos = s8;
s8 = peg$c0;
}
} else {
peg$currPos = s8;
s8 = peg$c0;
}
}
if (s7 !== null) {
if (input.charCodeAt(peg$currPos) === 125) {
s8 = peg$c10;
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c11); }
}
if (s8 !== null) {
s9 = [];
s10 = peg$parseS();
while (s10 !== null) {
s9.push(s10);
s10 = peg$parseS();
}
if (s9 !== null) {
peg$reportedPos = s0;
s1 = peg$c17(s3, s6, s7);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parsepseudo_page() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 58) {
s1 = peg$c18;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c19); }
}
if (s1 !== null) {
s2 = peg$parseIDENT();
if (s2 !== null) {
s3 = [];
s4 = peg$parseS();
while (s4 !== null) {
s3.push(s4);
s4 = peg$parseS();
}
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c16(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parseoperator() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 47) {
s1 = peg$c20;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c21); }
}
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c22();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 44) {
s1 = peg$c13;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c14); }
}
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c23();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
return s0;
}
function peg$parsecombinator() {
var s0, s1, s2, s3;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 43) {
s1 = peg$c24;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c25); }
}
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c26();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 62) {
s1 = peg$c27;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c28); }
}
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c29();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
return s0;
}
function peg$parseunary_operator() {
var s0;
if (input.charCodeAt(peg$currPos) === 43) {
s0 = peg$c24;
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c25); }
}
if (s0 === null) {
if (input.charCodeAt(peg$currPos) === 45) {
s0 = peg$c30;
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c31); }
}
}
return s0;
}
function peg$parseproperty() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseIDENT();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c16(s1);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parseruleset() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
s0 = peg$currPos;
s1 = peg$parseselector();
if (s1 !== null) {
s2 = [];
s3 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 44) {
s4 = peg$c13;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c14); }
}
if (s4 !== null) {
s5 = [];
s6 = peg$parseS();
while (s6 !== null) {
s5.push(s6);
s6 = peg$parseS();
}
if (s5 !== null) {
s6 = peg$parseselector();
if (s6 !== null) {
s4 = [s4, s5, s6];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
while (s3 !== null) {
s2.push(s3);
s3 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 44) {
s4 = peg$c13;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c14); }
}
if (s4 !== null) {
s5 = [];
s6 = peg$parseS();
while (s6 !== null) {
s5.push(s6);
s6 = peg$parseS();
}
if (s5 !== null) {
s6 = peg$parseselector();
if (s6 !== null) {
s4 = [s4, s5, s6];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 123) {
s3 = peg$c8;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c9); }
}
if (s3 !== null) {
s4 = [];
s5 = peg$parseS();
while (s5 !== null) {
s4.push(s5);
s5 = peg$parseS();
}
if (s4 !== null) {
s5 = peg$parsedeclaration();
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
s6 = [];
s7 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 59) {
s8 = peg$c4;
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c5); }
}
if (s8 !== null) {
s9 = [];
s10 = peg$parseS();
while (s10 !== null) {
s9.push(s10);
s10 = peg$parseS();
}
if (s9 !== null) {
s10 = peg$parsedeclaration();
if (s10 === null) {
s10 = peg$c3;
}
if (s10 !== null) {
s8 = [s8, s9, s10];
s7 = s8;
} else {
peg$currPos = s7;
s7 = peg$c0;
}
} else {
peg$currPos = s7;
s7 = peg$c0;
}
} else {
peg$currPos = s7;
s7 = peg$c0;
}
while (s7 !== null) {
s6.push(s7);
s7 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 59) {
s8 = peg$c4;
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c5); }
}
if (s8 !== null) {
s9 = [];
s10 = peg$parseS();
while (s10 !== null) {
s9.push(s10);
s10 = peg$parseS();
}
if (s9 !== null) {
s10 = peg$parsedeclaration();
if (s10 === null) {
s10 = peg$c3;
}
if (s10 !== null) {
s8 = [s8, s9, s10];
s7 = s8;
} else {
peg$currPos = s7;
s7 = peg$c0;
}
} else {
peg$currPos = s7;
s7 = peg$c0;
}
} else {
peg$currPos = s7;
s7 = peg$c0;
}
}
if (s6 !== null) {
if (input.charCodeAt(peg$currPos) === 125) {
s7 = peg$c10;
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c11); }
}
if (s7 !== null) {
s8 = [];
s9 = peg$parseS();
while (s9 !== null) {
s8.push(s9);
s9 = peg$parseS();
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c32(s1, s2, s5, s6);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parseselector() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
s1 = peg$parsesimple_selector();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
s3 = peg$parsecombinator();
if (s3 !== null) {
s4 = peg$parseselector();
if (s4 !== null) {
peg$reportedPos = s0;
s1 = peg$c33(s1, s3, s4);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
s1 = peg$parsesimple_selector();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
s3 = peg$parseselector();
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c34(s1, s3);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
s1 = peg$parsesimple_selector();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c35(s1);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
return s0;
}
function peg$parsesimple_selector() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
s1 = peg$parseelement_name();
if (s1 !== null) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parseHASH();
if (s4 !== null) {
peg$reportedPos = s3;
s4 = peg$c36(s4);
}
if (s4 === null) {
peg$currPos = s3;
s3 = s4;
} else {
s3 = s4;
}
if (s3 === null) {
s3 = peg$parseclass();
if (s3 === null) {
s3 = peg$parseattrib();
if (s3 === null) {
s3 = peg$parsepseudo();
}
}
}
while (s3 !== null) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parseHASH();
if (s4 !== null) {
peg$reportedPos = s3;
s4 = peg$c36(s4);
}
if (s4 === null) {
peg$currPos = s3;
s3 = s4;
} else {
s3 = s4;
}
if (s3 === null) {
s3 = peg$parseclass();
if (s3 === null) {
s3 = peg$parseattrib();
if (s3 === null) {
s3 = peg$parsepseudo();
}
}
}
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c37(s1, s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
s1 = [];
s2 = peg$currPos;
s3 = peg$parseHASH();
if (s3 !== null) {
peg$reportedPos = s2;
s3 = peg$c36(s3);
}
if (s3 === null) {
peg$currPos = s2;
s2 = s3;
} else {
s2 = s3;
}
if (s2 === null) {
s2 = peg$parseclass();
if (s2 === null) {
s2 = peg$parseattrib();
if (s2 === null) {
s2 = peg$parsepseudo();
}
}
}
if (s2 !== null) {
while (s2 !== null) {
s1.push(s2);
s2 = peg$currPos;
s3 = peg$parseHASH();
if (s3 !== null) {
peg$reportedPos = s2;
s3 = peg$c36(s3);
}
if (s3 === null) {
peg$currPos = s2;
s2 = s3;
} else {
s2 = s3;
}
if (s2 === null) {
s2 = peg$parseclass();
if (s2 === null) {
s2 = peg$parseattrib();
if (s2 === null) {
s2 = peg$parsepseudo();
}
}
}
}
} else {
s1 = peg$c0;
}
if (s1 !== null) {
peg$reportedPos = s0;
s1 = peg$c38(s1);
}
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
}
return s0;
}
function peg$parseclass() {
var s0, s1, s2;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 46) {
s1 = peg$c39;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c40); }
}
if (s1 !== null) {
s2 = peg$parseIDENT();
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c41(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parseelement_name() {
var s0;
s0 = peg$parseIDENT();
if (s0 === null) {
if (input.charCodeAt(peg$currPos) === 42) {
s0 = peg$c42;
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c43); }
}
}
return s0;
}
function peg$parseattrib() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 91) {
s1 = peg$c44;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c45); }
}
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
s3 = peg$parseIDENT();
if (s3 !== null) {
s4 = [];
s5 = peg$parseS();
while (s5 !== null) {
s4.push(s5);
s5 = peg$parseS();
}
if (s4 !== null) {
s5 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 61) {
s6 = peg$c46;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c47); }
}
if (s6 === null) {
s6 = peg$parseINCLUDES();
if (s6 === null) {
s6 = peg$parseDASHMATCH();
}
}
if (s6 !== null) {
s7 = [];
s8 = peg$parseS();
while (s8 !== null) {
s7.push(s8);
s8 = peg$parseS();
}
if (s7 !== null) {
s8 = peg$parseIDENT();
if (s8 === null) {
s8 = peg$parseSTRING();
}
if (s8 !== null) {
s9 = [];
s10 = peg$parseS();
while (s10 !== null) {
s9.push(s10);
s10 = peg$parseS();
}
if (s9 !== null) {
s6 = [s6, s7, s8, s9];
s5 = s6;
} else {
peg$currPos = s5;
s5 = peg$c0;
}
} else {
peg$currPos = s5;
s5 = peg$c0;
}
} else {
peg$currPos = s5;
s5 = peg$c0;
}
} else {
peg$currPos = s5;
s5 = peg$c0;
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 93) {
s6 = peg$c48;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c49); }
}
if (s6 !== null) {
peg$reportedPos = s0;
s1 = peg$c50(s3, s5);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parsepseudo() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 58) {
s1 = peg$c18;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c19); }
}
if (s1 !== null) {
s2 = peg$currPos;
s3 = peg$parseFUNCTION();
if (s3 !== null) {
s4 = [];
s5 = peg$parseS();
while (s5 !== null) {
s4.push(s5);
s5 = peg$parseS();
}
if (s4 !== null) {
s5 = peg$currPos;
s6 = peg$parseIDENT();
if (s6 !== null) {
s7 = [];
s8 = peg$parseS();
while (s8 !== null) {
s7.push(s8);
s8 = peg$parseS();
}
if (s7 !== null) {
s6 = [s6, s7];
s5 = s6;
} else {
peg$currPos = s5;
s5 = peg$c0;
}
} else {
peg$currPos = s5;
s5 = peg$c0;
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 41) {
s6 = peg$c51;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c52); }
}
if (s6 !== null) {
peg$reportedPos = s2;
s3 = peg$c53(s3, s5);
if (s3 === null) {
peg$currPos = s2;
s2 = s3;
} else {
s2 = s3;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
if (s2 === null) {
s2 = peg$parseIDENT();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c54(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parsedeclaration() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parseproperty();
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 58) {
s2 = peg$c18;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c19); }
}
if (s2 !== null) {
s3 = [];
s4 = peg$parseS();
while (s4 !== null) {
s3.push(s4);
s4 = peg$parseS();
}
if (s3 !== null) {
s4 = peg$parseexpr();
if (s4 !== null) {
s5 = peg$parseprio();
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
peg$reportedPos = s0;
s1 = peg$c55(s1, s4, s5);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parseprio() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseIMPORTANT_SYM();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parseexpr() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parseterm();
if (s1 !== null) {
s2 = [];
s3 = peg$currPos;
s4 = peg$parseoperator();
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
s5 = peg$parseterm();
if (s5 !== null) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
while (s3 !== null) {
s2.push(s3);
s3 = peg$currPos;
s4 = peg$parseoperator();
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
s5 = peg$parseterm();
if (s5 !== null) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c56(s1, s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parseterm() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
s1 = peg$parseunary_operator();
if (s1 === null) {
s1 = peg$c3;
}
if (s1 !== null) {
s2 = peg$currPos;
s3 = peg$parseEMS();
if (s3 !== null) {
s4 = [];
s5 = peg$parseS();
while (s5 !== null) {
s4.push(s5);
s5 = peg$parseS();
}
if (s4 !== null) {
s3 = [s3, s4];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
if (s2 === null) {
s2 = peg$currPos;
s3 = peg$parseEXS();
if (s3 !== null) {
s4 = [];
s5 = peg$parseS();
while (s5 !== null) {
s4.push(s5);
s5 = peg$parseS();
}
if (s4 !== null) {
s3 = [s3, s4];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
if (s2 === null) {
s2 = peg$currPos;
s3 = peg$parseLENGTH();
if (s3 !== null) {
s4 = [];
s5 = peg$parseS();
while (s5 !== null) {
s4.push(s5);
s5 = peg$parseS();
}
if (s4 !== null) {
s3 = [s3, s4];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
if (s2 === null) {
s2 = peg$currPos;
s3 = peg$parseANGLE();
if (s3 !== null) {
s4 = [];
s5 = peg$parseS();
while (s5 !== null) {
s4.push(s5);
s5 = peg$parseS();
}
if (s4 !== null) {
s3 = [s3, s4];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
if (s2 === null) {
s2 = peg$currPos;
s3 = peg$parseTIME();
if (s3 !== null) {
s4 = [];
s5 = peg$parseS();
while (s5 !== null) {
s4.push(s5);
s5 = peg$parseS();
}
if (s4 !== null) {
s3 = [s3, s4];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
if (s2 === null) {
s2 = peg$currPos;
s3 = peg$parseFREQ();
if (s3 !== null) {
s4 = [];
s5 = peg$parseS();
while (s5 !== null) {
s4.push(s5);
s5 = peg$parseS();
}
if (s4 !== null) {
s3 = [s3, s4];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
if (s2 === null) {
s2 = peg$currPos;
s3 = peg$parsePERCENTAGE();
if (s3 !== null) {
s4 = [];
s5 = peg$parseS();
while (s5 !== null) {
s4.push(s5);
s5 = peg$parseS();
}
if (s4 !== null) {
s3 = [s3, s4];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
if (s2 === null) {
s2 = peg$currPos;
s3 = peg$parseNUMBER();
if (s3 !== null) {
s4 = [];
s5 = peg$parseS();
while (s5 !== null) {
s4.push(s5);
s5 = peg$parseS();
}
if (s4 !== null) {
s3 = [s3, s4];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
}
}
}
}
}
}
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c57(s1, s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
s1 = peg$parseURI();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c58(s1);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$parsefunction();
if (s0 === null) {
s0 = peg$parsehexcolor();
if (s0 === null) {
s0 = peg$currPos;
s1 = peg$parseSTRING();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c59(s1);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
s1 = peg$parseIDENT();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c60(s1);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
}
}
return s0;
}
function peg$parsefunction() {
var s0, s1, s2, s3, s4, s5, s6;
s0 = peg$currPos;
s1 = peg$parseFUNCTION();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
s3 = peg$parseexpr();
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 41) {
s4 = peg$c51;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c52); }
}
if (s4 !== null) {
s5 = [];
s6 = peg$parseS();
while (s6 !== null) {
s5.push(s6);
s6 = peg$parseS();
}
if (s5 !== null) {
peg$reportedPos = s0;
s1 = peg$c61(s1, s3);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parsehexcolor() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$parseHASH();
if (s1 !== null) {
s2 = [];
s3 = peg$parseS();
while (s3 !== null) {
s2.push(s3);
s3 = peg$parseS();
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c62(s1);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parseh() {
var s0;
if (peg$c63.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c64); }
}
return s0;
}
function peg$parsenonascii() {
var s0;
if (peg$c65.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c66); }
}
return s0;
}
function peg$parseunicode() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
s2 = peg$currPos;
s3 = peg$currPos;
s4 = peg$parseh();
if (s4 !== null) {
s5 = peg$parseh();
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
s6 = peg$parseh();
if (s6 === null) {
s6 = peg$c3;
}
if (s6 !== null) {
s7 = peg$parseh();
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
s8 = peg$parseh();
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
s9 = peg$parseh();
if (s9 === null) {
s9 = peg$c3;
}
if (s9 !== null) {
s4 = [s4, s5, s6, s7, s8, s9];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 !== null) {
s3 = input.substring(s2, peg$currPos);
}
s2 = s3;
if (s2 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s3 = peg$c69;
peg$currPos += 2;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s3 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c73(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parseescape() {
var s0, s1, s2;
s0 = peg$parseunicode();
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c74.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c75); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
return s0;
}
function peg$parsenmstart() {
var s0;
if (peg$c77.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c78); }
}
if (s0 === null) {
s0 = peg$parsenonascii();
if (s0 === null) {
s0 = peg$parseescape();
}
}
return s0;
}
function peg$parsenmchar() {
var s0;
if (peg$c79.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c80); }
}
if (s0 === null) {
s0 = peg$parsenonascii();
if (s0 === null) {
s0 = peg$parseescape();
}
}
return s0;
}
function peg$parseinteger() {
var s0, s1, s2, s3;
s0 = peg$currPos;
s1 = peg$currPos;
s2 = [];
if (peg$c81.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c82); }
}
if (s3 !== null) {
while (s3 !== null) {
s2.push(s3);
if (peg$c81.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c82); }
}
}
} else {
s2 = peg$c0;
}
if (s2 !== null) {
s2 = input.substring(s1, peg$currPos);
}
s1 = s2;
if (s1 !== null) {
peg$reportedPos = s0;
s1 = peg$c83(s1);
}
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
return s0;
}
function peg$parsefloat() {
var s0, s1, s2, s3, s4, s5, s6;
s0 = peg$currPos;
s1 = peg$currPos;
s2 = peg$currPos;
s3 = [];
if (peg$c81.test(input.charAt(peg$currPos))) {
s4 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c82); }
}
while (s4 !== null) {
s3.push(s4);
if (peg$c81.test(input.charAt(peg$currPos))) {
s4 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c82); }
}
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 46) {
s4 = peg$c39;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c40); }
}
if (s4 !== null) {
s5 = [];
if (peg$c81.test(input.charAt(peg$currPos))) {
s6 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c82); }
}
if (s6 !== null) {
while (s6 !== null) {
s5.push(s6);
if (peg$c81.test(input.charAt(peg$currPos))) {
s6 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c82); }
}
}
} else {
s5 = peg$c0;
}
if (s5 !== null) {
s3 = [s3, s4, s5];
s2 = s3;
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
} else {
peg$currPos = s2;
s2 = peg$c0;
}
if (s2 !== null) {
s2 = input.substring(s1, peg$currPos);
}
s1 = s2;
if (s1 !== null) {
peg$reportedPos = s0;
s1 = peg$c84(s1);
}
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
return s0;
}
function peg$parsestring1() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 34) {
s1 = peg$c85;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c86); }
}
if (s1 !== null) {
s2 = [];
if (peg$c87.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c88); }
}
if (s3 === null) {
s3 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s4 = peg$c67;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s4 !== null) {
s5 = peg$parsenl();
if (s5 !== null) {
peg$reportedPos = s3;
s4 = peg$c89(s5);
if (s4 === null) {
peg$currPos = s3;
s3 = s4;
} else {
s3 = s4;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$parseescape();
}
}
while (s3 !== null) {
s2.push(s3);
if (peg$c87.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c88); }
}
if (s3 === null) {
s3 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s4 = peg$c67;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s4 !== null) {
s5 = peg$parsenl();
if (s5 !== null) {
peg$reportedPos = s3;
s4 = peg$c89(s5);
if (s4 === null) {
peg$currPos = s3;
s3 = s4;
} else {
s3 = s4;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$parseescape();
}
}
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 34) {
s3 = peg$c85;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c86); }
}
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c90(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parsestring2() {
var s0, s1, s2, s3, s4, s5;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 39) {
s1 = peg$c91;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c92); }
}
if (s1 !== null) {
s2 = [];
if (peg$c93.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c94); }
}
if (s3 === null) {
s3 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s4 = peg$c67;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s4 !== null) {
s5 = peg$parsenl();
if (s5 !== null) {
peg$reportedPos = s3;
s4 = peg$c89(s5);
if (s4 === null) {
peg$currPos = s3;
s3 = s4;
} else {
s3 = s4;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$parseescape();
}
}
while (s3 !== null) {
s2.push(s3);
if (peg$c93.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c94); }
}
if (s3 === null) {
s3 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s4 = peg$c67;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s4 !== null) {
s5 = peg$parsenl();
if (s5 !== null) {
peg$reportedPos = s3;
s4 = peg$c89(s5);
if (s4 === null) {
peg$currPos = s3;
s3 = s4;
} else {
s3 = s4;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$parseescape();
}
}
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 39) {
s3 = peg$c91;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c92); }
}
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c90(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parsecomment() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
s0 = peg$currPos;
if (input.substr(peg$currPos, 2) === peg$c95) {
s1 = peg$c95;
peg$currPos += 2;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c96); }
}
if (s1 !== null) {
s2 = [];
if (peg$c97.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c98); }
}
while (s3 !== null) {
s2.push(s3);
if (peg$c97.test(input.charAt(peg$currPos))) {
s3 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c98); }
}
}
if (s2 !== null) {
s3 = [];
if (input.charCodeAt(peg$currPos) === 42) {
s4 = peg$c42;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c43); }
}
if (s4 !== null) {
while (s4 !== null) {
s3.push(s4);
if (input.charCodeAt(peg$currPos) === 42) {
s4 = peg$c42;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c43); }
}
}
} else {
s3 = peg$c0;
}
if (s3 !== null) {
s4 = [];
s5 = peg$currPos;
if (peg$c99.test(input.charAt(peg$currPos))) {
s6 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c100); }
}
if (s6 !== null) {
s7 = [];
if (peg$c97.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c98); }
}
while (s8 !== null) {
s7.push(s8);
if (peg$c97.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c98); }
}
}
if (s7 !== null) {
s8 = [];
if (input.charCodeAt(peg$currPos) === 42) {
s9 = peg$c42;
peg$currPos++;
} else {
s9 = null;
if (peg$silentFails === 0) { peg$fail(peg$c43); }
}
if (s9 !== null) {
while (s9 !== null) {
s8.push(s9);
if (input.charCodeAt(peg$currPos) === 42) {
s9 = peg$c42;
peg$currPos++;
} else {
s9 = null;
if (peg$silentFails === 0) { peg$fail(peg$c43); }
}
}
} else {
s8 = peg$c0;
}
if (s8 !== null) {
s6 = [s6, s7, s8];
s5 = s6;
} else {
peg$currPos = s5;
s5 = peg$c0;
}
} else {
peg$currPos = s5;
s5 = peg$c0;
}
} else {
peg$currPos = s5;
s5 = peg$c0;
}
while (s5 !== null) {
s4.push(s5);
s5 = peg$currPos;
if (peg$c99.test(input.charAt(peg$currPos))) {
s6 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c100); }
}
if (s6 !== null) {
s7 = [];
if (peg$c97.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c98); }
}
while (s8 !== null) {
s7.push(s8);
if (peg$c97.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c98); }
}
}
if (s7 !== null) {
s8 = [];
if (input.charCodeAt(peg$currPos) === 42) {
s9 = peg$c42;
peg$currPos++;
} else {
s9 = null;
if (peg$silentFails === 0) { peg$fail(peg$c43); }
}
if (s9 !== null) {
while (s9 !== null) {
s8.push(s9);
if (input.charCodeAt(peg$currPos) === 42) {
s9 = peg$c42;
peg$currPos++;
} else {
s9 = null;
if (peg$silentFails === 0) { peg$fail(peg$c43); }
}
}
} else {
s8 = peg$c0;
}
if (s8 !== null) {
s6 = [s6, s7, s8];
s5 = s6;
} else {
peg$currPos = s5;
s5 = peg$c0;
}
} else {
peg$currPos = s5;
s5 = peg$c0;
}
} else {
peg$currPos = s5;
s5 = peg$c0;
}
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 47) {
s5 = peg$c20;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c21); }
}
if (s5 !== null) {
s1 = [s1, s2, s3, s4, s5];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parseident() {
var s0, s1, s2, s3, s4;
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 45) {
s1 = peg$c30;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c31); }
}
if (s1 === null) {
s1 = peg$c3;
}
if (s1 !== null) {
s2 = peg$parsenmstart();
if (s2 !== null) {
s3 = [];
s4 = peg$parsenmchar();
while (s4 !== null) {
s3.push(s4);
s4 = peg$parsenmchar();
}
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c101(s1, s2, s3);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
return s0;
}
function peg$parsename() {
var s0, s1, s2;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsenmchar();
if (s2 !== null) {
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsenmchar();
}
} else {
s1 = peg$c0;
}
if (s1 !== null) {
peg$reportedPos = s0;
s1 = peg$c102(s1);
}
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
return s0;
}
function peg$parsenum() {
var s0;
s0 = peg$parsefloat();
if (s0 === null) {
s0 = peg$parseinteger();
}
return s0;
}
function peg$parsestring() {
var s0;
s0 = peg$parsestring1();
if (s0 === null) {
s0 = peg$parsestring2();
}
return s0;
}
function peg$parseurl() {
var s0, s1, s2;
s0 = peg$currPos;
s1 = [];
if (peg$c103.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c104); }
}
if (s2 === null) {
s2 = peg$parsenonascii();
if (s2 === null) {
s2 = peg$parseescape();
}
}
while (s2 !== null) {
s1.push(s2);
if (peg$c103.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c104); }
}
if (s2 === null) {
s2 = peg$parsenonascii();
if (s2 === null) {
s2 = peg$parseescape();
}
}
}
if (s1 !== null) {
peg$reportedPos = s0;
s1 = peg$c105(s1);
}
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
return s0;
}
function peg$parses() {
var s0, s1;
s0 = [];
if (peg$c71.test(input.charAt(peg$currPos))) {
s1 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
if (s1 !== null) {
while (s1 !== null) {
s0.push(s1);
if (peg$c71.test(input.charAt(peg$currPos))) {
s1 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
} else {
s0 = peg$c0;
}
return s0;
}
function peg$parsew() {
var s0;
s0 = peg$parses();
if (s0 === null) {
s0 = peg$c3;
}
return s0;
}
function peg$parsenl() {
var s0;
if (input.charCodeAt(peg$currPos) === 10) {
s0 = peg$c106;
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c107); }
}
if (s0 === null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s0 = peg$c69;
peg$currPos += 2;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s0 === null) {
if (input.charCodeAt(peg$currPos) === 13) {
s0 = peg$c108;
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c109); }
}
if (s0 === null) {
if (input.charCodeAt(peg$currPos) === 12) {
s0 = peg$c110;
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c111); }
}
}
}
}
return s0;
}
function peg$parseA() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c112.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c113); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c116) {
s6 = peg$c116;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c117); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c118();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c119) {
s6 = peg$c119;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c120); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c121();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
return s0;
}
function peg$parseC() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c122.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c123); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c124) {
s6 = peg$c124;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c125); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c126();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c127) {
s6 = peg$c127;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c128); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c129();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
return s0;
}
function peg$parseD() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c130.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c131); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c132) {
s6 = peg$c132;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c133); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c134();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c135) {
s6 = peg$c135;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c136); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c137();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
return s0;
}
function peg$parseE() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c138.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c139); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c140) {
s6 = peg$c140;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c141); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c142();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c143) {
s6 = peg$c143;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c144); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c145();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
return s0;
}
function peg$parseG() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c146.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c147); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c148) {
s6 = peg$c148;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c149); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c150();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c151) {
s6 = peg$c151;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c152); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c153();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c146.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c147); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseH() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c154.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c155); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c156) {
s6 = peg$c156;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c157); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c158();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c159) {
s6 = peg$c159;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c160); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c161();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c154.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c155); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseI() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c162.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c163); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c164) {
s6 = peg$c164;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c165); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c166();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c167) {
s6 = peg$c167;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c168); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c169();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c162.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c163); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseK() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
if (peg$c170.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c171); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 52) {
s6 = peg$c172;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c173); }
}
if (s6 !== null) {
if (peg$c174.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c175); }
}
if (s7 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s8 = peg$c69;
peg$currPos += 2;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s8 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c176();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 54) {
s6 = peg$c177;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c178); }
}
if (s6 !== null) {
if (peg$c174.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c175); }
}
if (s7 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s8 = peg$c69;
peg$currPos += 2;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s8 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c179();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c170.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c171); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseL() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
if (peg$c180.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c181); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 52) {
s6 = peg$c172;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c173); }
}
if (s6 !== null) {
if (peg$c122.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c123); }
}
if (s7 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s8 = peg$c69;
peg$currPos += 2;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s8 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c182();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 54) {
s6 = peg$c177;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c178); }
}
if (s6 !== null) {
if (peg$c122.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c123); }
}
if (s7 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s8 = peg$c69;
peg$currPos += 2;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s8 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c183();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c180.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c181); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseM() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
if (peg$c184.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c185); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 52) {
s6 = peg$c172;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c173); }
}
if (s6 !== null) {
if (peg$c130.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c131); }
}
if (s7 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s8 = peg$c69;
peg$currPos += 2;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s8 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c186();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 54) {
s6 = peg$c177;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c178); }
}
if (s6 !== null) {
if (peg$c130.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c131); }
}
if (s7 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s8 = peg$c69;
peg$currPos += 2;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s8 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c187();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c184.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c185); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseN() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
if (peg$c188.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c189); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 52) {
s6 = peg$c172;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c173); }
}
if (s6 !== null) {
if (peg$c138.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c139); }
}
if (s7 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s8 = peg$c69;
peg$currPos += 2;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s8 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c190();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 54) {
s6 = peg$c177;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c178); }
}
if (s6 !== null) {
if (peg$c138.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c139); }
}
if (s7 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s8 = peg$c69;
peg$currPos += 2;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s8 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c191();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c188.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c189); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseO() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
if (peg$c192.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c193); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 52) {
s6 = peg$c172;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c173); }
}
if (s6 !== null) {
if (peg$c194.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c195); }
}
if (s7 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s8 = peg$c69;
peg$currPos += 2;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s8 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c196();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 54) {
s6 = peg$c177;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c178); }
}
if (s6 !== null) {
if (peg$c194.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c195); }
}
if (s7 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s8 = peg$c69;
peg$currPos += 2;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s8 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c197();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c192.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c193); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseP() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c198.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c199); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c200) {
s6 = peg$c200;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c201); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c202();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c203) {
s6 = peg$c203;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c204); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c205();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c198.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c199); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseR() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c206.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c207); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c208) {
s6 = peg$c208;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c209); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c210();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c211) {
s6 = peg$c211;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c212); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c213();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c206.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c207); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseS_() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c214.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c215); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c216) {
s6 = peg$c216;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c217); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c218();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c219) {
s6 = peg$c219;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c220); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c221();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c214.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c215); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseT() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c222.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c223); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c224) {
s6 = peg$c224;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c225); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c226();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c227) {
s6 = peg$c227;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c228); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c229();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c222.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c223); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseU() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c230.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c231); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c232) {
s6 = peg$c232;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c233); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c234();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c235) {
s6 = peg$c235;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c236); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c237();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c230.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c231); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseX() {
var s0, s1, s2, s3, s4, s5, s6, s7;
if (peg$c238.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c239); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c240) {
s6 = peg$c240;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c241); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c242();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.substr(peg$currPos, 2) === peg$c243) {
s6 = peg$c243;
peg$currPos += 2;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c244); }
}
if (s6 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s7 = peg$c69;
peg$currPos += 2;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s7 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s7 === null) {
s7 = peg$c3;
}
if (s7 !== null) {
peg$reportedPos = s0;
s1 = peg$c245();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c238.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c239); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseZ() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
if (peg$c246.test(input.charAt(peg$currPos))) {
s0 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s0 = null;
if (peg$silentFails === 0) { peg$fail(peg$c247); }
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 53) {
s6 = peg$c248;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c249); }
}
if (s6 !== null) {
if (peg$c112.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c113); }
}
if (s7 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s8 = peg$c69;
peg$currPos += 2;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s8 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c250();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s2 = peg$c114;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s2 === null) {
s2 = peg$c3;
}
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s3 = peg$c114;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s3 === null) {
s3 = peg$c3;
}
if (s3 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s4 = peg$c114;
peg$currPos++;
} else {
s4 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s4 === null) {
s4 = peg$c3;
}
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 48) {
s5 = peg$c114;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c115); }
}
if (s5 === null) {
s5 = peg$c3;
}
if (s5 !== null) {
if (input.charCodeAt(peg$currPos) === 55) {
s6 = peg$c251;
peg$currPos++;
} else {
s6 = null;
if (peg$silentFails === 0) { peg$fail(peg$c252); }
}
if (s6 !== null) {
if (peg$c112.test(input.charAt(peg$currPos))) {
s7 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s7 = null;
if (peg$silentFails === 0) { peg$fail(peg$c113); }
}
if (s7 !== null) {
if (input.substr(peg$currPos, 2) === peg$c69) {
s8 = peg$c69;
peg$currPos += 2;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c70); }
}
if (s8 === null) {
if (peg$c71.test(input.charAt(peg$currPos))) {
s8 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s8 = null;
if (peg$silentFails === 0) { peg$fail(peg$c72); }
}
}
if (s8 === null) {
s8 = peg$c3;
}
if (s8 !== null) {
peg$reportedPos = s0;
s1 = peg$c253();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
if (s0 === null) {
s0 = peg$currPos;
if (input.charCodeAt(peg$currPos) === 92) {
s1 = peg$c67;
peg$currPos++;
} else {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c68); }
}
if (s1 !== null) {
if (peg$c246.test(input.charAt(peg$currPos))) {
s2 = input.charAt(peg$currPos);
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c247); }
}
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c76(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
}
}
}
return s0;
}
function peg$parseS() {
var s0, s1, s2;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parses();
if (s2 !== null) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c254); }
}
return s0;
}
function peg$parseCDO() {
var s0, s1, s2;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
if (input.substr(peg$currPos, 4) === peg$c255) {
s2 = peg$c255;
peg$currPos += 4;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c256); }
}
if (s2 !== null) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c255); }
}
return s0;
}
function peg$parseCDC() {
var s0, s1, s2;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
if (input.substr(peg$currPos, 3) === peg$c257) {
s2 = peg$c257;
peg$currPos += 3;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c258); }
}
if (s2 !== null) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c257); }
}
return s0;
}
function peg$parseINCLUDES() {
var s0, s1, s2;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
if (input.substr(peg$currPos, 2) === peg$c259) {
s2 = peg$c259;
peg$currPos += 2;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c260); }
}
if (s2 !== null) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c259); }
}
return s0;
}
function peg$parseDASHMATCH() {
var s0, s1, s2;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
if (input.substr(peg$currPos, 2) === peg$c261) {
s2 = peg$c261;
peg$currPos += 2;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c262); }
}
if (s2 !== null) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c261); }
}
return s0;
}
function peg$parseSTRING() {
var s0, s1, s2;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parsestring();
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c264(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c263); }
}
return s0;
}
function peg$parseIDENT() {
var s0, s1, s2;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parseident();
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c16(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c265); }
}
return s0;
}
function peg$parseHASH() {
var s0, s1, s2, s3;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 35) {
s2 = peg$c267;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c268); }
}
if (s2 !== null) {
s3 = peg$parsename();
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c269(s3);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c266); }
}
return s0;
}
function peg$parseIMPORT_SYM() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 64) {
s2 = peg$c271;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c272); }
}
if (s2 !== null) {
s3 = peg$parseI();
if (s3 !== null) {
s4 = peg$parseM();
if (s4 !== null) {
s5 = peg$parseP();
if (s5 !== null) {
s6 = peg$parseO();
if (s6 !== null) {
s7 = peg$parseR();
if (s7 !== null) {
s8 = peg$parseT();
if (s8 !== null) {
s1 = [s1, s2, s3, s4, s5, s6, s7, s8];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c270); }
}
return s0;
}
function peg$parsePAGE_SYM() {
var s0, s1, s2, s3, s4, s5, s6;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 64) {
s2 = peg$c271;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c272); }
}
if (s2 !== null) {
s3 = peg$parseP();
if (s3 !== null) {
s4 = peg$parseA();
if (s4 !== null) {
s5 = peg$parseG();
if (s5 !== null) {
s6 = peg$parseE();
if (s6 !== null) {
s1 = [s1, s2, s3, s4, s5, s6];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c273); }
}
return s0;
}
function peg$parseMEDIA_SYM() {
var s0, s1, s2, s3, s4, s5, s6, s7;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 64) {
s2 = peg$c271;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c272); }
}
if (s2 !== null) {
s3 = peg$parseM();
if (s3 !== null) {
s4 = peg$parseE();
if (s4 !== null) {
s5 = peg$parseD();
if (s5 !== null) {
s6 = peg$parseI();
if (s6 !== null) {
s7 = peg$parseA();
if (s7 !== null) {
s1 = [s1, s2, s3, s4, s5, s6, s7];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c274); }
}
return s0;
}
function peg$parseCHARSET_SYM() {
var s0, s1, s2;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
if (input.substr(peg$currPos, 9) === peg$c276) {
s2 = peg$c276;
peg$currPos += 9;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c277); }
}
if (s2 !== null) {
s1 = [s1, s2];
s0 = s1;
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c275); }
}
return s0;
}
function peg$parseIMPORTANT_SYM() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
if (input.charCodeAt(peg$currPos) === 33) {
s2 = peg$c279;
peg$currPos++;
} else {
s2 = null;
if (peg$silentFails === 0) { peg$fail(peg$c280); }
}
if (s2 !== null) {
s3 = [];
s4 = peg$parses();
if (s4 === null) {
s4 = peg$parsecomment();
}
while (s4 !== null) {
s3.push(s4);
s4 = peg$parses();
if (s4 === null) {
s4 = peg$parsecomment();
}
}
if (s3 !== null) {
s4 = peg$parseI();
if (s4 !== null) {
s5 = peg$parseM();
if (s5 !== null) {
s6 = peg$parseP();
if (s6 !== null) {
s7 = peg$parseO();
if (s7 !== null) {
s8 = peg$parseR();
if (s8 !== null) {
s9 = peg$parseT();
if (s9 !== null) {
s10 = peg$parseA();
if (s10 !== null) {
s11 = peg$parseN();
if (s11 !== null) {
s12 = peg$parseT();
if (s12 !== null) {
peg$reportedPos = s0;
s1 = peg$c281();
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c278); }
}
return s0;
}
function peg$parseEMS() {
var s0, s1, s2, s3, s4;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parsenum();
if (s2 !== null) {
s3 = peg$parseE();
if (s3 !== null) {
s4 = peg$parseM();
if (s4 !== null) {
peg$reportedPos = s0;
s1 = peg$c283(s2, s3, s4);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c282); }
}
return s0;
}
function peg$parseEXS() {
var s0, s1, s2, s3, s4;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parsenum();
if (s2 !== null) {
s3 = peg$parseE();
if (s3 !== null) {
s4 = peg$parseX();
if (s4 !== null) {
peg$reportedPos = s0;
s1 = peg$c284(s2, s3, s4);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c282); }
}
return s0;
}
function peg$parseLENGTH() {
var s0, s1, s2, s3, s4, s5;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parsenum();
if (s2 !== null) {
s3 = peg$currPos;
s4 = peg$parseP();
if (s4 !== null) {
s5 = peg$parseX();
if (s5 !== null) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$currPos;
s4 = peg$parseC();
if (s4 !== null) {
s5 = peg$parseM();
if (s5 !== null) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$currPos;
s4 = peg$parseM();
if (s4 !== null) {
s5 = peg$parseM();
if (s5 !== null) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$currPos;
s4 = peg$parseI();
if (s4 !== null) {
s5 = peg$parseN();
if (s5 !== null) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$currPos;
s4 = peg$parseP();
if (s4 !== null) {
s5 = peg$parseT();
if (s5 !== null) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$currPos;
s4 = peg$parseP();
if (s4 !== null) {
s5 = peg$parseC();
if (s5 !== null) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
}
}
}
}
}
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c285(s2, s3);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c282); }
}
return s0;
}
function peg$parseANGLE() {
var s0, s1, s2, s3, s4, s5, s6, s7;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parsenum();
if (s2 !== null) {
s3 = peg$currPos;
s4 = peg$parseD();
if (s4 !== null) {
s5 = peg$parseE();
if (s5 !== null) {
s6 = peg$parseG();
if (s6 !== null) {
s4 = [s4, s5, s6];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$currPos;
s4 = peg$parseR();
if (s4 !== null) {
s5 = peg$parseA();
if (s5 !== null) {
s6 = peg$parseD();
if (s6 !== null) {
s4 = [s4, s5, s6];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$currPos;
s4 = peg$parseG();
if (s4 !== null) {
s5 = peg$parseR();
if (s5 !== null) {
s6 = peg$parseA();
if (s6 !== null) {
s7 = peg$parseD();
if (s7 !== null) {
s4 = [s4, s5, s6, s7];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
}
}
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c285(s2, s3);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c286); }
}
return s0;
}
function peg$parseTIME() {
var s0, s1, s2, s3, s4, s5;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parsenum();
if (s2 !== null) {
s3 = peg$currPos;
s4 = peg$parseM();
if (s4 !== null) {
s5 = peg$parseS_();
if (s5 !== null) {
peg$reportedPos = s3;
s4 = peg$c288(s4, s5);
if (s4 === null) {
peg$currPos = s3;
s3 = s4;
} else {
s3 = s4;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$parseS_();
}
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c289(s2, s3);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c287); }
}
return s0;
}
function peg$parseFREQ() {
var s0, s1, s2, s3, s4, s5, s6;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parsenum();
if (s2 !== null) {
s3 = peg$currPos;
s4 = peg$parseH();
if (s4 !== null) {
s5 = peg$parseZ();
if (s5 !== null) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 === null) {
s3 = peg$currPos;
s4 = peg$parseK();
if (s4 !== null) {
s5 = peg$parseH();
if (s5 !== null) {
s6 = peg$parseZ();
if (s6 !== null) {
s4 = [s4, s5, s6];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
}
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c291(s2, s3);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c290); }
}
return s0;
}
function peg$parseDIMENSION() {
var s0, s1, s2, s3;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parsenum();
if (s2 !== null) {
s3 = peg$parseident();
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c293(s2, s3);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c292); }
}
return s0;
}
function peg$parsePERCENTAGE() {
var s0, s1, s2, s3, s4, s5;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$currPos;
s3 = peg$currPos;
s4 = peg$parsenum();
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 37) {
s5 = peg$c295;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c296); }
}
if (s5 !== null) {
s4 = [s4, s5];
s3 = s4;
} else {
peg$currPos = s3;
s3 = peg$c0;
}
} else {
peg$currPos = s3;
s3 = peg$c0;
}
if (s3 !== null) {
s3 = input.substring(s2, peg$currPos);
}
s2 = s3;
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c297(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c294); }
}
return s0;
}
function peg$parseNUMBER() {
var s0, s1, s2;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parsenum();
if (s2 !== null) {
peg$reportedPos = s0;
s1 = peg$c299(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c298); }
}
return s0;
}
function peg$parseURI() {
var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parseU();
if (s2 !== null) {
s3 = peg$parseR();
if (s3 !== null) {
s4 = peg$parseL();
if (s4 !== null) {
if (input.charCodeAt(peg$currPos) === 40) {
s5 = peg$c301;
peg$currPos++;
} else {
s5 = null;
if (peg$silentFails === 0) { peg$fail(peg$c302); }
}
if (s5 !== null) {
s6 = peg$parsew();
if (s6 !== null) {
s7 = peg$parsestring();
if (s7 === null) {
s7 = peg$parseurl();
}
if (s7 !== null) {
s8 = peg$parsew();
if (s8 !== null) {
if (input.charCodeAt(peg$currPos) === 41) {
s9 = peg$c51;
peg$currPos++;
} else {
s9 = null;
if (peg$silentFails === 0) { peg$fail(peg$c52); }
}
if (s9 !== null) {
peg$reportedPos = s0;
s1 = peg$c303(s7);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c300); }
}
return s0;
}
function peg$parseFUNCTION() {
var s0, s1, s2, s3;
peg$silentFails++;
s0 = peg$currPos;
s1 = [];
s2 = peg$parsecomment();
while (s2 !== null) {
s1.push(s2);
s2 = peg$parsecomment();
}
if (s1 !== null) {
s2 = peg$parseident();
if (s2 !== null) {
if (input.charCodeAt(peg$currPos) === 40) {
s3 = peg$c301;
peg$currPos++;
} else {
s3 = null;
if (peg$silentFails === 0) { peg$fail(peg$c302); }
}
if (s3 !== null) {
peg$reportedPos = s0;
s1 = peg$c305(s2);
if (s1 === null) {
peg$currPos = s0;
s0 = s1;
} else {
s0 = s1;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
} else {
peg$currPos = s0;
s0 = peg$c0;
}
peg$silentFails--;
if (s0 === null) {
s1 = null;
if (peg$silentFails === 0) { peg$fail(peg$c304); }
}
return s0;
}
peg$result = peg$startRuleFunction();
if (peg$result !== null && peg$currPos === input.length) {
return peg$result;
} else {
peg$cleanupExpected(peg$maxFailExpected);
peg$reportedPos = Math.max(peg$currPos, peg$maxFailPos);
throw new SyntaxError(
peg$maxFailExpected,
peg$reportedPos < input.length ? input.charAt(peg$reportedPos) : null,
peg$reportedPos,
peg$computePosDetails(peg$reportedPos).line,
peg$computePosDetails(peg$reportedPos).column
);
}
}
return {
SyntaxError: SyntaxError,
parse: parse
};
})();
module.exports = (function(){
/* Generated by PEG.js-fn @VERSION (http://pegjs.majda.cz/). */
/* Functional modification by shaman.sir@gmail.com (http://shamansir.github.com/). */
/* ########### ENVIRONMENT ########### */
var input,
options;
var pos, // 0, parser position
p_pos; // 0, previous parser position
// This code encloses all of the user blocks (initializer and/or actions)
// in their own sandbox, so if there is an initializer, its inner variables
// will [only] be accessible to actions; this, however, requires an initializer
// not to have any first-level return statements. Also, this approach keeps parser
// inner variables safe from user access, except the ones defined above.
var __p_blocks = (function() { return function() {
// backwards compatibility with original peg-js
function offset() { return p_pos; };
function text() { return input.substring(p_pos, pos); };
function line() { return __p_coord(p_pos)[1]; };
function column() { return __p_coord(p_pos)[0]; };
function cell() { return __p_coord(p_pos); };
/* ########### USER CODE ########### */
/* ----------- BLOCKS ----------- */
// Blocks are grouped by rule name and id; they all get access to current context
// through ฤ variable which they expand into their arguments. Arguments
// names are precalculated during parser generation process.
// ฦ’ and ฤ variables are named so creepy just to ensure that parser writer will not use them
// for naming variables in his code (only ฤ may clash in this architecture, in fact),
// we hope any modern environment supports Unicode now
return {
"start": [
function(ฤ) {
// start[0]
return (function(stylesheet) {
return stylesheet;
})(ฤ.stylesheet);
}
],
"stylesheet": [
function(ฤ) {
// stylesheet[0]
return (function(charset,imports,rules) {
var importsConverted = [];
for (var i = 0; i < imports.length; i++) {
importsConverted.push(imports[i][0]);
}
var rulesConverted = [];
for (i = 0; i < rules.length; i++) {
rulesConverted.push(rules[i][0]);
}
return {
type: "stylesheet",
charset: charset !== "" ? charset[1] : null,
imports: importsConverted,
rules: rulesConverted
};
})(ฤ.charset,ฤ.imports,ฤ.rules);
}
],
"import": [
function(ฤ) {
// import[0]
return (function(href,media) {
return {
type: "import_rule",
href: href,
media: media !== "" ? media : []
};
})(ฤ.href,ฤ.media);
}
],
"media": [
function(ฤ) {
// media[0]
return (function(media,rules) {
return {
type: "media_rule",
media: media,
rules: rules
};
})(ฤ.media,ฤ.rules);
}
],
"media_list": [
function(ฤ) {
// media_list[0]
return (function(head,tail) {
var result = [head];
for (var i = 0; i < tail.length; i++) {
result.push(tail[i][2]);
}
return result;
})(ฤ.head,ฤ.tail);
}
],
"medium": [
function(ฤ) {
// medium[0]
return (function(ident) {
return ident;
})(ฤ.ident);
}
],
"page": [
function(ฤ) {
// page[0]
return (function(qualifier,declarationsHead,declarationsTail) {
var declarations = declarationsHead !== "" ? [declarationsHead] : [];
for (var i = 0; i < declarationsTail.length; i++) {
if (declarationsTail[i][2] !== "") {
declarations.push(declarationsTail[i][2]);
}
}
return {
type: "page_rule",
qualifier: qualifier !== "" ? qualifier : null,
declarations: declarations
};
})(ฤ.qualifier,ฤ.declarationsHead,ฤ.declarationsTail);
}
],
"pseudo_page": [
function(ฤ) {
// pseudo_page[0]
return (function(ident) {
return ident;
})(ฤ.ident);
}
],
"operator": [
function(ฤ) {
// operator[0]
return "/";
},
function(ฤ) {
// operator[1]
return ",";
}
],
"combinator": [
function(ฤ) {
// combinator[0]
return "+";
},
function(ฤ) {
// combinator[1]
return ">";
}
],
"property": [
function(ฤ) {
// property[0]
return (function(ident) {
return ident;
})(ฤ.ident);
}
],
"ruleset": [
function(ฤ) {
// ruleset[0]
return (function(selectorsHead,selectorsTail,declarationsHead,declarationsTail) {
var selectors = [selectorsHead];
for (var i = 0; i < selectorsTail.length; i++) {
selectors.push(selectorsTail[i][2]);
}
var declarations = declarationsHead !== "" ? [declarationsHead] : [];
for (i = 0; i < declarationsTail.length; i++) {
if (declarationsTail[i][2] !== "") {
declarations.push(declarationsTail[i][2]);
}
}
return {
type: "ruleset",
selectors: selectors,
declarations: declarations
};
})(ฤ.selectorsHead,ฤ.selectorsTail,ฤ.declarationsHead,ฤ.declarationsTail);
}
],
"selector": [
function(ฤ) {
// selector[0]
return (function(left,combinator,right) {
return {
type: "selector",
combinator: combinator,
left: left,
right: right
};
})(ฤ.left,ฤ.combinator,ฤ.right);
},
function(ฤ) {
// selector[1]
return (function(left,right) {
return {
type: "selector",
combinator: " ",
left: left,
right: right
};
})(ฤ.left,ฤ.right);
},
function(ฤ) {
// selector[2]
return (function(selector) {
return selector;
})(ฤ.selector);
}
],
"simple_selector": [
function(ฤ) {
// simple_selector[0]
return (function(element,id) {
return { type: "ID selector", id: id.substr(1) };
})(ฤ.element,ฤ.id);
},
function(ฤ) {
// simple_selector[1]
return (function(element,qualifiers) {
return {
type: "simple_selector",
element: element,
qualifiers: qualifiers
};
})(ฤ.element,ฤ.qualifiers);
},
function(ฤ) {
// simple_selector[2]
return (function(id) {
return { type: "ID selector", id: id.substr(1) };
})(ฤ.id);
},
function(ฤ) {
// simple_selector[3]
return (function(qualifiers) {
return {
type: "simple_selector",
element: "*",
qualifiers: qualifiers
};
})(ฤ.qualifiers);
}
],
"class": [
function(ฤ) {
// class[0]
return (function(class_) {
return { type: "class_selector", "class": class_ };
})(ฤ.class_);
}
],
"attrib": [
function(ฤ) {
// attrib[0]
return (function(attribute,operatorAndValue) {
return {
type: "attribute_selector",
attribute: attribute,
operator: operatorAndValue !== "" ? operatorAndValue[0] : null,
value: operatorAndValue !== "" ? operatorAndValue[2] : null
};
})(ฤ.attribute,ฤ.operatorAndValue);
}
],
"pseudo": [
function(ฤ) {
// pseudo[0]
return (function(name,params) {
return {
type: "function",
name: name,
params: params !== "" ? [params[0]] : []
};
})(ฤ.name,ฤ.params);
},
function(ฤ) {
// pseudo[1]
return (function(value) {
/*
* The returned object has somewhat vague property names and values because
* the rule matches both pseudo-classes and pseudo-elements (they look the
* same at the syntactic level).
*/
return {
type: "pseudo_selector",
value: value
};
})(ฤ.value);
}
],
"declaration": [
function(ฤ) {
// declaration[0]
return (function(property,expression,important) {
return {
type: "declaration",
property: property,
expression: expression,
important: important !== "" ? true : false
};
})(ฤ.property,ฤ.expression,ฤ.important);
}
],
"expr": [
function(ฤ) {
// expr[0]
return (function(head,tail) {
var result = head;
for (var i = 0; i < tail.length; i++) {
result = {
type: "expression",
operator: tail[i][0],
left: result,
right: tail[i][1]
};
}
return result;
})(ฤ.head,ฤ.tail);
}
],
"term": [
function(ฤ) {
// term[0]
return (function(operator,value) {
return { type: "value", value: operator + value[0] };
})(ฤ.operator,ฤ.value);
},
function(ฤ) {
// term[1]
return (function(value) {
return { type: "uri", value: value };
})(ฤ.value);
},
function(ฤ) {
// term[2]
return (function(value) {
return { type: "string", value: value };
})(ฤ.value);
},
function(ฤ) {
// term[3]
return (function(value) {
return { type: "ident", value: value };
})(ฤ.value);
}
],
"function": [
function(ฤ) {
// function[0]
return (function(name,params) {
return {
type: "function",
name: name,
params: params
};
})(ฤ.name,ฤ.params);
}
],
"hexcolor": [
function(ฤ) {
// hexcolor[0]
return (function(value) {
return { type: "hexcolor", value: value};
})(ฤ.value);
}
],
"unicode": [
function(ฤ) {
// unicode[0]
return (function(h1,h2,h3,h4,h5,h6) {
return String.fromCharCode(parseInt("0x" + h1 + h2 + h3 + h4 + h5 + h6));
})(ฤ.h1,ฤ.h2,ฤ.h3,ฤ.h4,ฤ.h5,ฤ.h6);
}
],
"escape": [
function(ฤ) {
// escape[0]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"integer": [
function(ฤ) {
// integer[0]
return (function(digits) {
return parseInt(digits.join(""));
})(ฤ.digits);
}
],
"float": [
function(ฤ) {
// float[0]
return (function(before,after) {
return parseFloat(before.join("") + "." + after.join(""));
})(ฤ.before,ฤ.after);
}
],
"string1": [
function(ฤ) {
// string1[0]
return (function(nl) {
return nl
})(ฤ.nl);
},
function(ฤ) {
// string1[1]
return (function(chars) {
return chars.join("");
})(ฤ.chars);
}
],
"string2": [
function(ฤ) {
// string2[0]
return (function(nl) {
return nl
})(ฤ.nl);
},
function(ฤ) {
// string2[1]
return (function(chars) {
return chars.join("");
})(ฤ.chars);
}
],
"ident": [
function(ฤ) {
// ident[0]
return (function(dash,nmstart,nmchars) {
return dash + nmstart + nmchars.join("");
})(ฤ.dash,ฤ.nmstart,ฤ.nmchars);
}
],
"name": [
function(ฤ) {
// name[0]
return (function(nmchars) {
return nmchars.join("");
})(ฤ.nmchars);
}
],
"url": [
function(ฤ) {
// url[0]
return (function(chars) {
return chars.join("");
})(ฤ.chars);
}
],
"A": [
function(ฤ) {
// A[0]
return "A";
},
function(ฤ) {
// A[1]
return "a";
}
],
"C": [
function(ฤ) {
// C[0]
return "C";
},
function(ฤ) {
// C[1]
return "c";
}
],
"D": [
function(ฤ) {
// D[0]
return "D";
},
function(ฤ) {
// D[1]
return "d";
}
],
"E": [
function(ฤ) {
// E[0]
return "E";
},
function(ฤ) {
// E[1]
return "e";
}
],
"G": [
function(ฤ) {
// G[0]
return "G";
},
function(ฤ) {
// G[1]
return "g";
},
function(ฤ) {
// G[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"H": [
function(ฤ) {
// H[0]
return (function(h) {
return "H";
})(ฤ.h);
},
function(ฤ) {
// H[1]
return (function(h) {
return "h";
})(ฤ.h);
},
function(ฤ) {
// H[2]
return (function(h,char_) {
return char_;
})(ฤ.h,ฤ.char_);
}
],
"I": [
function(ฤ) {
// I[0]
return (function(i) {
return "I";
})(ฤ.i);
},
function(ฤ) {
// I[1]
return (function(i) {
return "i";
})(ฤ.i);
},
function(ฤ) {
// I[2]
return (function(i,char_) {
return char_;
})(ฤ.i,ฤ.char_);
}
],
"K": [
function(ฤ) {
// K[0]
return "K";
},
function(ฤ) {
// K[1]
return "k";
},
function(ฤ) {
// K[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"L": [
function(ฤ) {
// L[0]
return "L";
},
function(ฤ) {
// L[1]
return "l";
},
function(ฤ) {
// L[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"M": [
function(ฤ) {
// M[0]
return "M";
},
function(ฤ) {
// M[1]
return "m";
},
function(ฤ) {
// M[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"N": [
function(ฤ) {
// N[0]
return "N";
},
function(ฤ) {
// N[1]
return "n";
},
function(ฤ) {
// N[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"O": [
function(ฤ) {
// O[0]
return "O";
},
function(ฤ) {
// O[1]
return "o";
},
function(ฤ) {
// O[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"P": [
function(ฤ) {
// P[0]
return "P";
},
function(ฤ) {
// P[1]
return "p";
},
function(ฤ) {
// P[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"R": [
function(ฤ) {
// R[0]
return "R";
},
function(ฤ) {
// R[1]
return "r";
},
function(ฤ) {
// R[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"S_": [
function(ฤ) {
// S_[0]
return "S";
},
function(ฤ) {
// S_[1]
return "s";
},
function(ฤ) {
// S_[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"T": [
function(ฤ) {
// T[0]
return "T";
},
function(ฤ) {
// T[1]
return "t";
},
function(ฤ) {
// T[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"U": [
function(ฤ) {
// U[0]
return "U";
},
function(ฤ) {
// U[1]
return "u";
},
function(ฤ) {
// U[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"X": [
function(ฤ) {
// X[0]
return "X";
},
function(ฤ) {
// X[1]
return "x";
},
function(ฤ) {
// X[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"Z": [
function(ฤ) {
// Z[0]
return "Z";
},
function(ฤ) {
// Z[1]
return "z";
},
function(ฤ) {
// Z[2]
return (function(char_) {
return char_;
})(ฤ.char_);
}
],
"STRING": [
function(ฤ) {
// STRING[0]
return (function(string) {
return string;
})(ฤ.string);
}
],
"IDENT": [
function(ฤ) {
// IDENT[0]
return (function(ident) {
return ident;
})(ฤ.ident);
}
],
"HASH": [
function(ฤ) {
// HASH[0]
return (function(name) {
return "#" + name;
})(ฤ.name);
}
],
"IMPORTANT_SYM": [
function(ฤ) {
// IMPORTANT_SYM[0]
return "!important";
}
],
"EMS": [
function(ฤ) {
// EMS[0]
return (function(num,e,m) {
return num + e + m;
})(ฤ.num,ฤ.e,ฤ.m);
}
],
"EXS": [
function(ฤ) {
// EXS[0]
return (function(num,e,x) {
return num + e + x;
})(ฤ.num,ฤ.e,ฤ.x);
}
],
"LENGTH": [
function(ฤ) {
// LENGTH[0]
return (function(num,unit) {
return num + unit.join("");
})(ฤ.num,ฤ.unit);
}
],
"ANGLE": [
function(ฤ) {
// ANGLE[0]
return (function(num,unit) {
return num + unit.join("");
})(ฤ.num,ฤ.unit);
}
],
"TIME": [
function(ฤ) {
// TIME[0]
return (function(num,m,s) {
return m + s;
})(ฤ.num,ฤ.m,ฤ.s);
},
function(ฤ) {
// TIME[1]
return (function(num,unit) {
return num + unit;
})(ฤ.num,ฤ.unit);
}
],
"FREQ": [
function(ฤ) {
// FREQ[0]
return (function(num,unit) {
return num + unit.join("");
})(ฤ.num,ฤ.unit);
}
],
"DIMENSION": [
function(ฤ) {
// DIMENSION[0]
return (function(num,unit) {
return num + unit;
})(ฤ.num,ฤ.unit);
}
],
"PERCENTAGE": [
function(ฤ) {
// PERCENTAGE[0]
return (function(num) {
return num + "%";
})(ฤ.num);
}
],
"NUMBER": [
function(ฤ) {
// NUMBER[0]
return (function(num) {
return num;
})(ฤ.num);
}
],
"URI": [
function(ฤ) {
// URI[0]
return (function(value) {
return value;
})(ฤ.value);
}
],
"FUNCTION": [
function(ฤ) {
// FUNCTION[0]
return (function(name) {
return name;
})(ฤ.name);
}
]
};
} })();
// ฦ’ and ฤ variables are named so creepy just to ensure that parser writer will not use them
// for naming variables in his code (only ฤ may clash in this architecture, in fact),
// we hope any modern environment supports Unicode now
var ฦ’ = null; // holds a pointer to current rule blocks, will be initialized in parse() function
/* ########### PARSER ########### */
var __parser = function() {
/* =========== PARSER-DEPENDENT CODE =========== */
/* ----------- RULES DEFINITIONS ----------- */
var rules = {}; (function() {
rules.start = function() {
var _code = ฦ’.start;
return (
action(
seqnc(
label("stylesheet",
ref(rules.stylesheet)
),
any(
ref(rules.comment)
)
),
_code[0])
/*{ return stylesheet; }*/
());
}
rules.stylesheet = function() {
var _code = ฦ’.stylesheet;
return (
action(
seqnc(
label("charset",
maybe(
seqnc(
ref(rules.CHARSET_SYM),
ref(rules.STRING),
match(";")
)
)
),
any(
choice(
ref(rules.S),
ref(rules.CDO),
ref(rules.CDC)
)
),
label("imports",
any(
seqnc(
ref(rules.import),
any(
choice(
seqnc(
ref(rules.CDO),
any(
ref(rules.S)
)
),
seqnc(
ref(rules.CDC),
any(
ref(rules.S)
)
)
)
)
)
)
),
label("rules",
any(
seqnc(
choice(
ref(rules.ruleset),
ref(rules.media),
ref(rules.page)
),
any(
choice(
seqnc(
ref(rules.CDO),
any(
ref(rules.S)
)
),
seqnc(
ref(rules.CDC),
any(
ref(rules.S)
)
)
)
)
)
)
)
),
_code[0])
/*{
var importsConverted = [];
for (var i = 0; i < imports.length; i++) {
importsConverted.push(imports[i][0]);
}
var rulesConverted = [];
for (i = 0; i < rules.length; i++) {
rulesConverted.push(rules[i][0]);
}
return {
type: "stylesheet",
charset: charset !== "" ? charset[1] : null,
imports: importsConverted,
rules: rulesConverted
};
}*/
());
}
rules.import = function() {
var _code = ฦ’.import;
return (
action(
seqnc(
ref(rules.IMPORT_SYM),
any(
ref(rules.S)
),
label("href",
choice(
ref(rules.STRING),
ref(rules.URI)
)
),
any(
ref(rules.S)
),
label("media",
maybe(
ref(rules.media_list)
)
),
match(";"),
any(
ref(rules.S)
)
),
_code[0])
/*{
return {
type: "import_rule",
href: href,
media: media !== "" ? media : []
};
}*/
());
}
rules.media = function() {
var _code = ฦ’.media;
return (
action(
seqnc(
ref(rules.MEDIA_SYM),
any(
ref(rules.S)
),
label("media",
ref(rules.media_list)
),
match("{"),
any(
ref(rules.S)
),
label("rules",
any(
ref(rules.ruleset)
)
),
match("}"),
any(
ref(rules.S)
)
),
_code[0])
/*{
return {
type: "media_rule",
media: media,
rules: rules
};
}*/
());
}
rules.media_list = function() {
var _code = ฦ’.media_list;
return (
action(
seqnc(
label("head",
ref(rules.medium)
),
label("tail",
any(
seqnc(
match(","),
any(
ref(rules.S)
),
ref(rules.medium)
)
)
)
),
_code[0])
/*{
var result = [head];
for (var i = 0; i < tail.length; i++) {
result.push(tail[i][2]);
}
return result;
}*/
());
}
rules.medium = function() {
var _code = ฦ’.medium;
return (
action(
seqnc(
label("ident",
ref(rules.IDENT)
),
any(
ref(rules.S)
)
),
_code[0])
/*{ return ident; }*/
());
}
rules.page = function() {
var _code = ฦ’.page;
return (
action(
seqnc(
ref(rules.PAGE_SYM),
any(
ref(rules.S)
),
label("qualifier",
maybe(
ref(rules.pseudo_page)
)
),
match("{"),
any(
ref(rules.S)
),
label("declarationsHead",
maybe(
ref(rules.declaration)
)
),
label("declarationsTail",
any(
seqnc(
match(";"),
any(
ref(rules.S)
),
maybe(
ref(rules.declaration)
)
)
)
),
match("}"),
any(
ref(rules.S)
)
),
_code[0])
/*{
var declarations = declarationsHead !== "" ? [declarationsHead] : [];
for (var i = 0; i < declarationsTail.length; i++) {
if (declarationsTail[i][2] !== "") {
declarations.push(declarationsTail[i][2]);
}
}
return {
type: "page_rule",
qualifier: qualifier !== "" ? qualifier : null,
declarations: declarations
};
}*/
());
}
rules.pseudo_page = function() {
var _code = ฦ’.pseudo_page;
return (
action(
seqnc(
match(":"),
label("ident",
ref(rules.IDENT)
),
any(
ref(rules.S)
)
),
_code[0])
/*{ return ident; }*/
());
}
rules.operator = function() {
var _code = ฦ’.operator;
return (
choice(
action(
seqnc(
match("/"),
any(
ref(rules.S)
)
),
_code[0])
/*{ return "/"; }*/,
action(
seqnc(
match(","),
any(
ref(rules.S)
)
),
_code[1])
/*{ return ","; }*/
)
());
}
rules.combinator = function() {
var _code = ฦ’.combinator;
return (
choice(
action(
seqnc(
match("+"),
any(
ref(rules.S)
)
),
_code[0])
/*{ return "+"; }*/,
action(
seqnc(
match(">"),
any(
ref(rules.S)
)
),
_code[1])
/*{ return ">"; }*/
)
());
}
rules.unary_operator = function() {
return (
choice(
match("+"),
match("-")
)
());
}
rules.property = function() {
var _code = ฦ’.property;
return (
action(
seqnc(
label("ident",
ref(rules.IDENT)
),
any(
ref(rules.S)
)
),
_code[0])
/*{ return ident; }*/
());
}
rules.ruleset = function() {
var _code = ฦ’.ruleset;
return (
action(
seqnc(
label("selectorsHead",
ref(rules.selector)
),
label("selectorsTail",
any(
seqnc(
match(","),
any(
ref(rules.S)
),
ref(rules.selector)
)
)
),
match("{"),
any(
ref(rules.S)
),
label("declarationsHead",
maybe(
ref(rules.declaration)
)
),
label("declarationsTail",
any(
seqnc(
match(";"),
any(
ref(rules.S)
),
maybe(
ref(rules.declaration)
)
)
)
),
match("}"),
any(
ref(rules.S)
)
),
_code[0])
/*{
var selectors = [selectorsHead];
for (var i = 0; i < selectorsTail.length; i++) {
selectors.push(selectorsTail[i][2]);
}
var declarations = declarationsHead !== "" ? [declarationsHead] : [];
for (i = 0; i < declarationsTail.length; i++) {
if (declarationsTail[i][2] !== "") {
declarations.push(declarationsTail[i][2]);
}
}
return {
type: "ruleset",
selectors: selectors,
declarations: declarations
};
}*/
());
}
rules.selector = function() {
var _code = ฦ’.selector;
return (
choice(
action(
seqnc(
label("left",
ref(rules.simple_selector)
),
any(
ref(rules.S)
),
label("combinator",
ref(rules.combinator)
),
label("right",
ref(rules.selector)
)
),
_code[0])
/*{
return {
type: "selector",
combinator: combinator,
left: left,
right: right
};
}*/,
action(
seqnc(
label("left",
ref(rules.simple_selector)
),
any(
ref(rules.S)
),
label("right",
ref(rules.selector)
)
),
_code[1])
/*{
return {
type: "selector",
combinator: " ",
left: left,
right: right
};
}*/,
action(
seqnc(
label("selector",
ref(rules.simple_selector)
),
any(
ref(rules.S)
)
),
_code[2])
/*{ return selector; }*/
)
());
}
rules.simple_selector = function() {
var _code = ฦ’.simple_selector;
return (
choice(
action(
seqnc(
label("element",
ref(rules.element_name)
),
label("qualifiers",
any(
choice(
action(
label("id",
ref(rules.HASH)
),
_code[0])
/*{ return { type: "ID selector", id: id.substr(1) }; }*/,
ref(rules.class),
ref(rules.attrib),
ref(rules.pseudo)
)
)
)
),
_code[1])
/*{
return {
type: "simple_selector",
element: element,
qualifiers: qualifiers
};
}*/,
action(
label("qualifiers",
some(
choice(
action(
label("id",
ref(rules.HASH)
),
_code[2])
/*{ return { type: "ID selector", id: id.substr(1) }; }*/,
ref(rules.class),
ref(rules.attrib),
ref(rules.pseudo)
)
)
),
_code[3])
/*{
return {
type: "simple_selector",
element: "*",
qualifiers: qualifiers
};
}*/
)
());
}
rules.class = function() {
var _code = ฦ’.class;
return (
action(
seqnc(
match("."),
label("class_",
ref(rules.IDENT)
)
),
_code[0])
/*{ return { type: "class_selector", "class": class_ }; }*/
());
}
rules.element_name = function() {
return (
choice(
ref(rules.IDENT),
match("*")
)
());
}
rules.attrib = function() {
var _code = ฦ’.attrib;
return (
action(
seqnc(
match("["),
any(
ref(rules.S)
),
label("attribute",
ref(rules.IDENT)
),
any(
ref(rules.S)
),
label("operatorAndValue",
maybe(
seqnc(
choice(
match("="),
ref(rules.INCLUDES),
ref(rules.DASHMATCH)
),
any(
ref(rules.S)
),
choice(
ref(rules.IDENT),
ref(rules.STRING)
),
any(
ref(rules.S)
)
)
)
),
match("]")
),
_code[0])
/*{
return {
type: "attribute_selector",
attribute: attribute,
operator: operatorAndValue !== "" ? operatorAndValue[0] : null,
value: operatorAndValue !== "" ? operatorAndValue[2] : null
};
}*/
());
}
rules.pseudo = function() {
var _code = ฦ’.pseudo;
return (
action(
seqnc(
match(":"),
label("value",
choice(
action(
seqnc(
label("name",
ref(rules.FUNCTION)
),
any(
ref(rules.S)
),
label("params",
maybe(
seqnc(
ref(rules.IDENT),
any(
ref(rules.S)
)
)
)
),
match(")")
),
_code[0])
/*{
return {
type: "function",
name: name,
params: params !== "" ? [params[0]] : []
};
}*/,
ref(rules.IDENT)
)
)
),
_code[1])
/*{
/-*
* The returned object has somewhat vague property names and values because
* the rule matches both pseudo-classes and pseudo-elements (they look the
* same at the syntactic level).
*-/
return {
type: "pseudo_selector",
value: value
};
}*/
());
}
rules.declaration = function() {
var _code = ฦ’.declaration;
return (
action(
seqnc(
label("property",
ref(rules.property)
),
match(":"),
any(
ref(rules.S)
),
label("expression",
ref(rules.expr)
),
label("important",
maybe(
ref(rules.prio)
)
)
),
_code[0])
/*{
return {
type: "declaration",
property: property,
expression: expression,
important: important !== "" ? true : false
};
}*/
());
}
rules.prio = function() {
return (
seqnc(
ref(rules.IMPORTANT_SYM),
any(
ref(rules.S)
)
)
());
}
rules.expr = function() {
var _code = ฦ’.expr;
return (
action(
seqnc(
label("head",
ref(rules.term)
),
label("tail",
any(
seqnc(
maybe(
ref(rules.operator)
),
ref(rules.term)
)
)
)
),
_code[0])
/*{
var result = head;
for (var i = 0; i < tail.length; i++) {
result = {
type: "expression",
operator: tail[i][0],
left: result,
right: tail[i][1]
};
}
return result;
}*/
());
}
rules.term = function() {
var _code = ฦ’.term;
return (
choice(
action(
seqnc(
label("operator",
maybe(
ref(rules.unary_operator)
)
),
label("value",
choice(
seqnc(
ref(rules.EMS),
any(
ref(rules.S)
)
),
seqnc(
ref(rules.EXS),
any(
ref(rules.S)
)
),
seqnc(
ref(rules.LENGTH),
any(
ref(rules.S)
)
),
seqnc(
ref(rules.ANGLE),
any(
ref(rules.S)
)
),
seqnc(
ref(rules.TIME),
any(
ref(rules.S)
)
),
seqnc(
ref(rules.FREQ),
any(
ref(rules.S)
)
),
seqnc(
ref(rules.PERCENTAGE),
any(
ref(rules.S)
)
),
seqnc(
ref(rules.NUMBER),
any(
ref(rules.S)
)
)
)
)
),
_code[0])
/*{ return { type: "value", value: operator + value[0] }; }*/,
action(
seqnc(
label("value",
ref(rules.URI)
),
any(
ref(rules.S)
)
),
_code[1])
/*{ return { type: "uri", value: value }; }*/,
ref(rules.function),
ref(rules.hexcolor),
action(
seqnc(
label("value",
ref(rules.STRING)
),
any(
ref(rules.S)
)
),
_code[2])
/*{ return { type: "string", value: value }; }*/,
action(
seqnc(
label("value",
ref(rules.IDENT)
),
any(
ref(rules.S)
)
),
_code[3])
/*{ return { type: "ident", value: value }; }*/
)
());
}
rules.function = function() {
var _code = ฦ’.function;
return (
action(
seqnc(
label("name",
ref(rules.FUNCTION)
),
any(
ref(rules.S)
),
label("params",
ref(rules.expr)
),
match(")"),
any(
ref(rules.S)
)
),
_code[0])
/*{
return {
type: "function",
name: name,
params: params
};
}*/
());
}
rules.hexcolor = function() {
var _code = ฦ’.hexcolor;
return (
action(
seqnc(
label("value",
ref(rules.HASH)
),
any(
ref(rules.S)
)
),
_code[0])
/*{ return { type: "hexcolor", value: value}; }*/
());
}
rules.h = function() {
return (
re(/^[0-9a-fA-F]/, "[0-9a-fA-F]")
());
}
rules.nonascii = function() {
return (
re(/^[\x80-\xFF]/, "[\\x80-\\xFF]")
());
}
rules.unicode = function() {
var _code = ฦ’.unicode;
return (
action(
seqnc(
match("\\"),
label("h1",
ref(rules.h)
),
label("h2",
maybe(
ref(rules.h)
)
),
label("h3",
maybe(
ref(rules.h)
)
),
label("h4",
maybe(
ref(rules.h)
)
),
label("h5",
maybe(
ref(rules.h)
)
),
label("h6",
maybe(
ref(rules.h)
)
),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{
return String.fromCharCode(parseInt("0x" + h1 + h2 + h3 + h4 + h5 + h6));
}*/
());
}
rules.escape = function() {
var _code = ฦ’.escape;
return (
choice(
ref(rules.unicode),
action(
seqnc(
match("\\"),
label("char_",
re(/^[^\r\n\f0-9a-fA-F]/, "[^\\r\\n\\f0-9a-fA-F]")
)
),
_code[0])
/*{ return char_; }*/
)
());
}
rules.nmstart = function() {
return (
choice(
re(/^[_a-zA-Z]/, "[_a-zA-Z]"),
ref(rules.nonascii),
ref(rules.escape)
)
());
}
rules.nmchar = function() {
return (
choice(
re(/^[_a-zA-Z0-9\-]/, "[_a-zA-Z0-9\\-]"),
ref(rules.nonascii),
ref(rules.escape)
)
());
}
rules.integer = function() {
var _code = ฦ’.integer;
return (
action(
label("digits",
some(
re(/^[0-9]/, "[0-9]")
)
),
_code[0])
/*{ return parseInt(digits.join("")); }*/
());
}
rules.float = function() {
var _code = ฦ’.float;
return (
action(
seqnc(
label("before",
any(
re(/^[0-9]/, "[0-9]")
)
),
match("."),
label("after",
some(
re(/^[0-9]/, "[0-9]")
)
)
),
_code[0])
/*{
return parseFloat(before.join("") + "." + after.join(""));
}*/
());
}
rules.string1 = function() {
var _code = ฦ’.string1;
return (
action(
seqnc(
match("\""),
label("chars",
any(
choice(
re(/^[^\n\r\f\\"]/, "[^\\n\\r\\f\\\\\"]"),
action(
seqnc(
match("\\"),
label("nl",
ref(rules.nl)
)
),
_code[0])
/*{ return nl }*/,
ref(rules.escape)
)
)
),
match("\"")
),
_code[1])
/*{
return chars.join("");
}*/
());
}
rules.string2 = function() {
var _code = ฦ’.string2;
return (
action(
seqnc(
match("'"),
label("chars",
any(
choice(
re(/^[^\n\r\f\\']/, "[^\\n\\r\\f\\\\']"),
action(
seqnc(
match("\\"),
label("nl",
ref(rules.nl)
)
),
_code[0])
/*{ return nl }*/,
ref(rules.escape)
)
)
),
match("'")
),
_code[1])
/*{
return chars.join("");
}*/
());
}
rules.comment = function() {
return (
seqnc(
match("/*"),
any(
re(/^[^*]/, "[^*]")
),
some(
match("*")
),
any(
seqnc(
re(/^[^\/*]/, "[^\\/*]"),
any(
re(/^[^*]/, "[^*]")
),
some(
match("*")
)
)
),
match("/")
)
());
}
rules.ident = function() {
var _code = ฦ’.ident;
return (
action(
seqnc(
label("dash",
maybe(
match("-")
)
),
label("nmstart",
ref(rules.nmstart)
),
label("nmchars",
any(
ref(rules.nmchar)
)
)
),
_code[0])
/*{
return dash + nmstart + nmchars.join("");
}*/
());
}
rules.name = function() {
var _code = ฦ’.name;
return (
action(
label("nmchars",
some(
ref(rules.nmchar)
)
),
_code[0])
/*{ return nmchars.join(""); }*/
());
}
rules.num = function() {
return (
choice(
ref(rules.float),
ref(rules.integer)
)
());
}
rules.string = function() {
return (
choice(
ref(rules.string1),
ref(rules.string2)
)
());
}
rules.url = function() {
var _code = ฦ’.url;
return (
action(
label("chars",
any(
choice(
re(/^[!#$%&*-~]/, "[!#$%&*-~]"),
ref(rules.nonascii),
ref(rules.escape)
)
)
),
_code[0])
/*{ return chars.join(""); }*/
());
}
rules.s = function() {
return (
some(
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
());
}
rules.w = function() {
return (
maybe(
ref(rules.s)
)
());
}
rules.nl = function() {
return (
choice(
match("\n"),
match("\r\n"),
match("\r"),
match("\f")
)
());
}
rules.A = function() {
var _code = ฦ’.A;
return (
choice(
re(/^[aA]/, "[aA]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("41"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "A"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("61"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "a"; }*/
)
());
}
rules.C = function() {
var _code = ฦ’.C;
return (
choice(
re(/^[cC]/, "[cC]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("43"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "C"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("63"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "c"; }*/
)
());
}
rules.D = function() {
var _code = ฦ’.D;
return (
choice(
re(/^[dD]/, "[dD]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("44"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "D"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("64"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "d"; }*/
)
());
}
rules.E = function() {
var _code = ฦ’.E;
return (
choice(
re(/^[eE]/, "[eE]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("45"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "E"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("65"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "e"; }*/
)
());
}
rules.G = function() {
var _code = ฦ’.G;
return (
choice(
re(/^[gG]/, "[gG]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("47"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "G"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("67"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "g"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[gG]/, "[gG]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.H = function() {
var _code = ฦ’.H;
return (
choice(
label("h",
re(/^[hH]/, "[hH]")
),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("48"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "H"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("68"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "h"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[hH]/, "[hH]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.I = function() {
var _code = ฦ’.I;
return (
choice(
label("i",
re(/^[iI]/, "[iI]")
),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("49"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "I"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("69"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "i"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[iI]/, "[iI]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.K = function() {
var _code = ฦ’.K;
return (
choice(
re(/^[kK]/, "[kK]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("4"),
re(/^[bB]/, "[bB]"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "K"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("6"),
re(/^[bB]/, "[bB]"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "k"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[kK]/, "[kK]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.L = function() {
var _code = ฦ’.L;
return (
choice(
re(/^[lL]/, "[lL]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("4"),
re(/^[cC]/, "[cC]"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "L"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("6"),
re(/^[cC]/, "[cC]"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "l"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[lL]/, "[lL]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.M = function() {
var _code = ฦ’.M;
return (
choice(
re(/^[mM]/, "[mM]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("4"),
re(/^[dD]/, "[dD]"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "M"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("6"),
re(/^[dD]/, "[dD]"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "m"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[mM]/, "[mM]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.N = function() {
var _code = ฦ’.N;
return (
choice(
re(/^[nN]/, "[nN]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("4"),
re(/^[eE]/, "[eE]"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "N"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("6"),
re(/^[eE]/, "[eE]"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "n"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[nN]/, "[nN]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.O = function() {
var _code = ฦ’.O;
return (
choice(
re(/^[oO]/, "[oO]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("4"),
re(/^[fF]/, "[fF]"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "O"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("6"),
re(/^[fF]/, "[fF]"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "o"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[oO]/, "[oO]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.P = function() {
var _code = ฦ’.P;
return (
choice(
re(/^[pP]/, "[pP]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("50"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "P"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("70"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "p"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[pP]/, "[pP]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.R = function() {
var _code = ฦ’.R;
return (
choice(
re(/^[rR]/, "[rR]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("52"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "R"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("72"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "r"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[rR]/, "[rR]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.S_ = function() {
var _code = ฦ’.S_;
return (
choice(
re(/^[sS]/, "[sS]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("53"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "S"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("73"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "s"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[sS]/, "[sS]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.T = function() {
var _code = ฦ’.T;
return (
choice(
re(/^[tT]/, "[tT]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("54"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "T"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("74"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "t"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[tT]/, "[tT]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.U = function() {
var _code = ฦ’.U;
return (
choice(
re(/^[uU]/, "[uU]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("55"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "U"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("75"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "u"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[uU]/, "[uU]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.X = function() {
var _code = ฦ’.X;
return (
choice(
re(/^[xX]/, "[xX]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("58"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "X"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("78"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "x"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[xX]/, "[xX]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.Z = function() {
var _code = ฦ’.Z;
return (
choice(
re(/^[zZ]/, "[zZ]"),
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("5"),
re(/^[aA]/, "[aA]"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[0])
/*{ return "Z"; }*/,
action(
seqnc(
match("\\"),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
maybe(
match("0")
),
match("7"),
re(/^[aA]/, "[aA]"),
maybe(
choice(
match("\r\n"),
re(/^[ \t\r\n\f]/, "[ \\t\\r\\n\\f]")
)
)
),
_code[1])
/*{ return "z"; }*/,
action(
seqnc(
match("\\"),
label("char_",
re(/^[zZ]/, "[zZ]")
)
),
_code[2])
/*{ return char_; }*/
)
());
}
rules.S = function() {
return (
as("whitespace",
seqnc(
any(
ref(rules.comment)
),
ref(rules.s)
)
)
());
}
rules.CDO = function() {
return (
as("<!--",
seqnc(
any(
ref(rules.comment)
),
match("<!--")
)
)
());
}
rules.CDC = function() {
return (
as("-->",
seqnc(
any(
ref(rules.comment)
),
match("-->")
)
)
());
}
rules.INCLUDES = function() {
return (
as("~=",
seqnc(
any(
ref(rules.comment)
),
match("~=")
)
)
());
}
rules.DASHMATCH = function() {
return (
as("|=",
seqnc(
any(
ref(rules.comment)
),
match("|=")
)
)
());
}
rules.STRING = function() {
var _code = ฦ’.STRING;
return (
as("string",
action(
seqnc(
any(
ref(rules.comment)
),
label("string",
ref(rules.string)
)
),
_code[0])
/*{ return string; }*/
)
());
}
rules.IDENT = function() {
var _code = ฦ’.IDENT;
return (
as("identifier",
action(
seqnc(
any(
ref(rules.comment)
),
label("ident",
ref(rules.ident)
)
),
_code[0])
/*{ return ident; }*/
)
());
}
rules.HASH = function() {
var _code = ฦ’.HASH;
return (
as("hash",
action(
seqnc(
any(
ref(rules.comment)
),
match("#"),
label("name",
ref(rules.name)
)
),
_code[0])
/*{ return "#" + name; }*/
)
());
}
rules.IMPORT_SYM = function() {
return (
as("@import",
seqnc(
any(
ref(rules.comment)
),
match("@"),
ref(rules.I),
ref(rules.M),
ref(rules.P),
ref(rules.O),
ref(rules.R),
ref(rules.T)
)
)
());
}
rules.PAGE_SYM = function() {
return (
as("@page",
seqnc(
any(
ref(rules.comment)
),
match("@"),
ref(rules.P),
ref(rules.A),
ref(rules.G),
ref(rules.E)
)
)
());
}
rules.MEDIA_SYM = function() {
return (
as("@media",
seqnc(
any(
ref(rules.comment)
),
match("@"),
ref(rules.M),
ref(rules.E),
ref(rules.D),
ref(rules.I),
ref(rules.A)
)
)
());
}
rules.CHARSET_SYM = function() {
return (
as("@charset",
seqnc(
any(
ref(rules.comment)
),
match("@charset ")
)
)
());
}
rules.IMPORTANT_SYM = function() {
var _code = ฦ’.IMPORTANT_SYM;
return (
as("!important",
action(
seqnc(
any(
ref(rules.comment)
),
match("!"),
any(
choice(
ref(rules.s),
ref(rules.comment)
)
),
ref(rules.I),
ref(rules.M),
ref(rules.P),
ref(rules.O),
ref(rules.R),
ref(rules.T),
ref(rules.A),
ref(rules.N),
ref(rules.T)
),
_code[0])
/*{ return "!important"; }*/
)
());
}
rules.EMS = function() {
var _code = ฦ’.EMS;
return (
as("length",
action(
seqnc(
any(
ref(rules.comment)
),
label("num",
ref(rules.num)
),
label("e",
ref(rules.E)
),
label("m",
ref(rules.M)
)
),
_code[0])
/*{ return num + e + m; }*/
)
());
}
rules.EXS = function() {
var _code = ฦ’.EXS;
return (
as("length",
action(
seqnc(
any(
ref(rules.comment)
),
label("num",
ref(rules.num)
),
label("e",
ref(rules.E)
),
label("x",
ref(rules.X)
)
),
_code[0])
/*{ return num + e + x; }*/
)
());
}
rules.LENGTH = function() {
var _code = ฦ’.LENGTH;
return (
as("length",
action(
seqnc(
any(
ref(rules.comment)
),
label("num",
ref(rules.num)
),
label("unit",
choice(
seqnc(
ref(rules.P),
ref(rules.X)
),
seqnc(
ref(rules.C),
ref(rules.M)
),
seqnc(
ref(rules.M),
ref(rules.M)
),
seqnc(
ref(rules.I),
ref(rules.N)
),
seqnc(
ref(rules.P),
ref(rules.T)
),
seqnc(
ref(rules.P),
ref(rules.C)
)
)
)
),
_code[0])
/*{
return num + unit.join("");
}*/
)
());
}
rules.ANGLE = function() {
var _code = ฦ’.ANGLE;
return (
as("angle",
action(
seqnc(
any(
ref(rules.comment)
),
label("num",
ref(rules.num)
),
label("unit",
choice(
seqnc(
ref(rules.D),
ref(rules.E),
ref(rules.G)
),
seqnc(
ref(rules.R),
ref(rules.A),
ref(rules.D)
),
seqnc(
ref(rules.G),
ref(rules.R),
ref(rules.A),
ref(rules.D)
)
)
)
),
_code[0])
/*{
return num + unit.join("");
}*/
)
());
}
rules.TIME = function() {
var _code = ฦ’.TIME;
return (
as("time",
action(
seqnc(
any(
ref(rules.comment)
),
label("num",
ref(rules.num)
),
label("unit",
choice(
action(
seqnc(
label("m",
ref(rules.M)
),
label("s",
ref(rules.S_)
)
),
_code[0])
/*{ return m + s; }*/,
ref(rules.S_)
)
)
),
_code[1])
/*{
return num + unit;
}*/
)
());
}
rules.FREQ = function() {
var _code = ฦ’.FREQ;
return (
as("frequency",
action(
seqnc(
any(
ref(rules.comment)
),
label("num",
ref(rules.num)
),
label("unit",
choice(
seqnc(
ref(rules.H),
ref(rules.Z)
),
seqnc(
ref(rules.K),
ref(rules.H),
ref(rules.Z)
)
)
)
),
_code[0])
/*{ return num + unit.join(""); }*/
)
());
}
rules.DIMENSION = function() {
var _code = ฦ’.DIMENSION;
return (
as("dimension",
action(
seqnc(
any(
ref(rules.comment)
),
label("num",
ref(rules.num)
),
label("unit",
ref(rules.ident)
)
),
_code[0])
/*{ return num + unit; }*/
)
());
}
rules.PERCENTAGE = function() {
var _code = ฦ’.PERCENTAGE;
return (
as("percentage",
action(
seqnc(
any(
ref(rules.comment)
),
label("num",
ref(rules.num)
),
match("%")
),
_code[0])
/*{ return num + "%"; }*/
)
());
}
rules.NUMBER = function() {
var _code = ฦ’.NUMBER;
return (
as("number",
action(
seqnc(
any(
ref(rules.comment)
),
label("num",
ref(rules.num)
)
),
_code[0])
/*{ return num; }*/
)
());
}
rules.URI = function() {
var _code = ฦ’.URI;
return (
as("uri",
action(
seqnc(
any(
ref(rules.comment)
),
ref(rules.U),
ref(rules.R),
ref(rules.L),
match("("),
ref(rules.w),
label("value",
choice(
ref(rules.string),
ref(rules.url)
)
),
ref(rules.w),
match(")")
),
_code[0])
/*{ return value; }*/
)
());
}
rules.FUNCTION = function() {
var _code = ฦ’.FUNCTION;
return (
as("function",
action(
seqnc(
any(
ref(rules.comment)
),
label("name",
ref(rules.ident)
),
match("(")
),
_code[0])
/*{ return name; }*/
)
());
}
})();
/* ----------- OPERATORS ----------- */
// get current char
function cc() { return (pos < ilen) ? input.charAt(pos) : EOI; }
var ref = def(inctx); // will call rule inside context
function action(f, code) {
return inctx(function() {
p_pos = pos; var res; // save previous position
f(); res = code(cctx);
if (res === null) { pos = p_pos;
failed(SOMETHING, NOTHING); }
return res;
});
}
action = def(action);
function seqnc(/*f...*/) {
var p_pos = pos; // save previous position locally
var fs = arguments,
s = [],
on_miss = function(e) {
pos = p_pos; throw e; };
for (var fi = 0, fl = fs.length;
fi < fl; fi++) {
s.push(safe(fs[fi], on_miss));
}
return s;
}
seqnc = def(seqnc);
function as(name, f) {
alias = name; var res = f();
alias = ''; return res;
}
as = def(as);
function choice(/*f...*/) {
var fs = arguments,
missed = 0,
my_e = null,
on_miss = function(e) {
my_e = e; missed = 1;
};
for (var fi = 0, fl = fs.length;
fi < fl; fi++) {
var res = safe(fs[fi], on_miss);
if (!missed) return res;
missed = 0;
}
throw my_e;
}
choice = def(choice);
function match(str) {
var slen = str.length;
if ((pos + slen) > ilen) {
failed(quote(str), EOI); // exits
}
if (input.substr(pos, slen) === str) {
pos += slen;
return str;
}
failed(quote(str), cc());
}
match = def(match);
function label(lbl, f) {
return cctx[lbl] = f();
}
label = def(label);
function some(f) {
return [f()].concat(any(f)());
}
some = def(some);
function any(f) {
var s = [],
missed = 0,
on_miss = function() { missed = 1; };
while (!missed) {
s.push(safe(f, on_miss));
}
if (missed) s.splice(-1);
return s;
}
any = def(any);
function maybe(f) {
var missed = 0,
res = safe(f, function() {
missed = 1;
});
if (missed) return '';
return res;
}
maybe = def(maybe);
function re(rx, desc) {
var res, desc = desc || rx.source;
if (res = rx.exec(input.substr(pos))) {
if (res.index !== 0) failed(desc, cc());
pos += res[0].length;
return res[0];
} else failed(desc, cc());
}
re = def(re);
/* =========== PARSER-INDEPENDENT CODE =========== */
/* ----------- VARIABLES ----------- */
var cache, // {}, rule results cache, by name/pos
ctx, // { ... }, total context
cctx, // { ... }, current context pointer
ctxl, // -1, context level
current, // '-', current rule name
alias; // '', current rule alias, if defined
var failures, // {}, failures data
rmfpos, // 0, rightmost failure position
nr; // 0, no-report, fire errors w/o reporting
var /*input, */ilen; // input, input length
/* ----------- CONTEXT ----------- */
function ctx_lvl(parent) {
function CtxLevel() {
this.__p = parent;
this.__l = ++ctxl;
this.__c = null;
};
CtxLevel.prototype = parent;
return new CtxLevel();
}
function din() { // dive in
if (!cctx.__c) cctx.__c = ctx_lvl(cctx);
cctx = cctx.__c;
}
function dout() { // dive out
if (!cctx.__p) throw new Error('reached top context level');
cctx = cctx.__p; --ctxl;
}
function inctx(f) { // execute in own context and return
var r, e;
din(); r = safe(f, function(err) { e = err; });
dout(); if (e) throw e;
return r;
}
/* ----------- DEFERRED ----------- */
// Makes passed function to save its argument values,
// but not execute until specially requested
function def(f) {
return function() {
return (function(f, args) {
return function() { return f.apply(null, args); };
})(f, arguments);
}
}
/* ----------- RULES WRAPPER ----------- */
var ckey; // cache key
for (var rule in rules) {
rules[rule] = (function(name, rule) {
return function() { current = name; return rule(); };
})(rule, rules[rule]);
}
/* ----------- RESULT OBJECT + PARSE FUNCTION ----------- */
var result = {
/*
* Parses the input with a generated parser. If the parsing is successfull,
* returns a value explicitly or implicitly specified by the grammar from
* which the parser was generated (see |PEG.buildParser|). If the parsing is
* unsuccessful, throws |PEG.parser.MatchFailed| describing the error.
*/
parse: function(_input, _opts) {
var _opts = _opts || {};
// initialize variables
pos = 0, p_pos = 0, input = _input, options = _opts;
ilen = input.length, failures = {}, rmfpos = 0, nr = 0;
__p_reset_coord();
cache = {};
ctxl = -1; ctx = ctx_lvl(), cctx = ctx;
current = '-';
var startRule = _opts.startRule || "start";
if (["start"].indexOf(startRule) < 0) {
throw new Error("Can't start parsing from rule " + quote(startRule) + ".");
}
// call user initializer and also
// get blocks lying in the same context
ฦ’ = __p_blocks();
// find start rule
if (startRule) {
if (rules[startRule] === undefined) {
throw new SyntaxError("Rule not found: " + quote(startRule) + ".");
};
} else {
throw new Error("Start rule is not defined in options, no 'start' rule found and first rule in grammar was empty");
}
// and execute it
var res;
try {
res = rules[startRule]();
if ((pos < ilen) ||
(res === null)) failed(EOI, cc());
} catch(e) {
if (e instanceof MatchFailed) {
// throw rightmost error instead
throw adapt(failures[rmfpos]);
}
throw e;
}
return res;
},
/* Returns the parser source code. */
toSource: function() { return this._source; },
/* makes error type accessible outside */
MatchFailed: MatchFailed,
SyntaxError: SyntaxError
};
/* ----------- UTILS ----------- */
function Marker(human_str) { this.str=human_str; };
Marker.prototype.toString = function() { return this.str; };
var EOI = new Marker('end of input'),
ANY = new Marker('any character'),
SOMETHING = new Marker('progress'),
NOTHING = new Marker('nothing');
function hexOf(ch) {
var x = ch.charCodeAt(0),
v = x.toString(16).toUpperCase(),
h = (x > 0xFF),
i = (h ? 4 : 2) - v.length;
while (i--) v = v + '0';
return '\\' + (h ? 'u' : 'x') + v;
}
function quote(s) {
/*
* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a
* string literal except for the closing quote character, backslash,
* carriage return, line separator, paragraph separator, and line feed.
* Any character may appear in the form of an escape sequence.
*
* For portability, we also escape escape all control and non-ASCII
* characters. Note that "\0" and "\v" escape sequences are not used
* because JSHint does not like the first and IE the second.
*/
return '"' + s
.replace(/\\/g, '\\\\') // backslash
.replace(/"/g, '\\"') // closing quote character
.replace(/\x08/g, '\\b') // backspace
.replace(/\t/g, '\\t') // horizontal tab
.replace(/\n/g, '\\n') // line feed
.replace(/\f/g, '\\f') // form feed
.replace(/\r/g, '\\r') // carriage return
.replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g, hexOf)
+ '"';
}
/* ----------- FAILURES ----------- */
function MatchFailed(what, found, expected) {
this.what = what;
this.expected = expected || [];
this.found = found;
this.offset = pos;
this.xpos = [-1, -1];
this.line = -1;
this.column = -1;
}
MatchFailed.prototype = new Error();
MatchFailed.prototype.toString =
function() { return 'MatchFailed: '+emsg(this); };
var merr = function(fnd, exp) {
return new MatchFailed(alias || current, fnd, exp);
};
function failed(expected, found) {
var expected = alias || expected;
// if no report required, just throw
if (nr) throw merr(found, [expected]);
if (pos > rmfpos) rmfpos = pos;
var e = failures[pos] ||
(failures[pos] = merr(found));
/*if (e.found !== found)*/ e.found = found;
var prev = e.expected;
var f; for (var i = prev.length; i--;) {
if (prev[i] === expected) {
f = 1; break;
}
}; if (!f) prev.push(expected);
throw e;
}
function safe(f, callback) {
try { return f();
} catch(e) {
if (e instanceof MatchFailed) {
if (callback) callback(e);
} else { throw e; }
}
}
function emsg(e) {
var found_str, exp_str;
if (e.found instanceof Marker) {
found_str = e.found.str;
} else {
found_str = quote(e.found);
}
if (e.expected instanceof Marker) {
exp_str = e.expected.str;
} else if ((e.expected.length === 1) &&
(e.expected[0] instanceof Marker)) {
exp_str = e.expected[0].str;
} else {
var xs = e.expected;
exp_str = ((xs.length > 1)
? (xs.slice(0,-1).join(', ')+' '+
'or '+xs.slice(-1))
: xs[0]);
}
return /*'Stopped at '+quote(e.what)+': */'Expected '+exp_str+
' but '+found_str+' found.';
}
function adapt(e) {
var xpos = __p_coord(e.offset);
e.xpos = xpos; e.line = xpos[1]; e.column = xpos[0];
e.message = emsg(e);
if ((e.found instanceof Marker) && (e.found === EOI)) e.found = null;
var xs = e.expected.sort();
if ((xs.length === 1) &&
(xs[0] === EOI)) {
e.expected = [];
}
for (var i = xs.length; i--;)
{ if (xs[i] instanceof Marker) xs[i] = xs[i].str; };
return e;
}
function SyntaxError(msg) { // may be thrown from parser
this.message = msg;
}
SyntaxError.prototype = new Error();
SyntaxError.prototype.toString =
function() { return 'SyntaxError: '+this.message; };
/* ---------- RETURN RESULT OBJECT ----------- */
return result;
};
/* ----------- COORDINATES CALCULATION ----------- */
// a function to find line-column position from a char-based position
var __p_coord_cache; // cache of 2d position: [ last_pos, column, line, seen_cr ]
function __p_reset_coord() { __p_coord_cache = [ 0, 1, 1, 0 ]; };
__p_reset_coord();
function __p_coord(pos) {
/*
* The first idea was to use |String.split| to break the input up to the
* error position along newlines and derive the line and column from
* there. However IE's |split| implementation is so broken that it was
* enough to prevent it.
*/
var cl = 1, ln = 1,
cr = 0, // bool, was CR found or not?
c = __p_coord_cache;
if (pos !== c[0]) {
if (pos < c[0]) {
__p_reset_coord();
} else {
cl = c[1], ln = c[2], cr = c[3];
}
var from = c[0], to = pos;
for (var i = from, ch; i < to; i++) {
ch = input.charAt(i);
if (ch === "\n") {
if (!cr) { ln++; }
cl = 1; cr = 0;
} else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") {
ln++; cl = 1; cr = 1;
} else /*if (ch.length)*/ {
cl++; cr = 0;
}
}
__p_coord_cache = [ pos, cl, ln, cr ];
return [ cl, ln ];
} else return [ c[1], c[2] ];
}
/* ----------- RETURN PARSER ----------- */
return __parser();
})();;
module.exports = (function(){
/*
* Generated by PEG.js 0.7.0.
*
* http://pegjs.majda.cz/
*/
function quote(s) {
/*
* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a
* string literal except for the closing quote character, backslash,
* carriage return, line separator, paragraph separator, and line feed.
* Any character may appear in the form of an escape sequence.
*
* For portability, we also escape escape all control and non-ASCII
* characters. Note that "\0" and "\v" escape sequences are not used
* because JSHint does not like the first and IE the second.
*/
return '"' + s
.replace(/\\/g, '\\\\') // backslash
.replace(/"/g, '\\"') // closing quote character
.replace(/\x08/g, '\\b') // backspace
.replace(/\t/g, '\\t') // horizontal tab
.replace(/\n/g, '\\n') // line feed
.replace(/\f/g, '\\f') // form feed
.replace(/\r/g, '\\r') // carriage return
.replace(/[\x00-\x07\x0B\x0E-\x1F\x80-\uFFFF]/g, escape)
+ '"';
}
var result = {
/*
* Parses the input with a generated parser. If the parsing is successfull,
* returns a value explicitly or implicitly specified by the grammar from
* which the parser was generated (see |PEG.buildParser|). If the parsing is
* unsuccessful, throws |PEG.parser.SyntaxError| describing the error.
*/
parse: function(input, startRule) {
var parseFunctions = {
"start": parse_start,
"stylesheet": parse_stylesheet,
"import": parse_import,
"media": parse_media,
"media_list": parse_media_list,
"medium": parse_medium,
"page": parse_page,
"pseudo_page": parse_pseudo_page,
"operator": parse_operator,
"combinator": parse_combinator,
"unary_operator": parse_unary_operator,
"property": parse_property,
"ruleset": parse_ruleset,
"selector": parse_selector,
"simple_selector": parse_simple_selector,
"class": parse_class,
"element_name": parse_element_name,
"attrib": parse_attrib,
"pseudo": parse_pseudo,
"declaration": parse_declaration,
"prio": parse_prio,
"expr": parse_expr,
"term": parse_term,
"function": parse_function,
"hexcolor": parse_hexcolor,
"h": parse_h,
"nonascii": parse_nonascii,
"unicode": parse_unicode,
"escape": parse_escape,
"nmstart": parse_nmstart,
"nmchar": parse_nmchar,
"integer": parse_integer,
"float": parse_float,
"string1": parse_string1,
"string2": parse_string2,
"comment": parse_comment,
"ident": parse_ident,
"name": parse_name,
"num": parse_num,
"string": parse_string,
"url": parse_url,
"s": parse_s,
"w": parse_w,
"nl": parse_nl,
"A": parse_A,
"C": parse_C,
"D": parse_D,
"E": parse_E,
"G": parse_G,
"H": parse_H,
"I": parse_I,
"K": parse_K,
"L": parse_L,
"M": parse_M,
"N": parse_N,
"O": parse_O,
"P": parse_P,
"R": parse_R,
"S_": parse_S_,
"T": parse_T,
"U": parse_U,
"X": parse_X,
"Z": parse_Z,
"S": parse_S,
"CDO": parse_CDO,
"CDC": parse_CDC,
"INCLUDES": parse_INCLUDES,
"DASHMATCH": parse_DASHMATCH,
"STRING": parse_STRING,
"IDENT": parse_IDENT,
"HASH": parse_HASH,
"IMPORT_SYM": parse_IMPORT_SYM,
"PAGE_SYM": parse_PAGE_SYM,
"MEDIA_SYM": parse_MEDIA_SYM,
"CHARSET_SYM": parse_CHARSET_SYM,
"IMPORTANT_SYM": parse_IMPORTANT_SYM,
"EMS": parse_EMS,
"EXS": parse_EXS,
"LENGTH": parse_LENGTH,
"ANGLE": parse_ANGLE,
"TIME": parse_TIME,
"FREQ": parse_FREQ,
"DIMENSION": parse_DIMENSION,
"PERCENTAGE": parse_PERCENTAGE,
"NUMBER": parse_NUMBER,
"URI": parse_URI,
"FUNCTION": parse_FUNCTION
};
if (startRule !== undefined) {
if (parseFunctions[startRule] === undefined) {
throw new Error("Invalid rule name: " + quote(startRule) + ".");
}
} else {
startRule = "start";
}
var pos = 0;
var reportFailures = 0;
var rightmostFailuresPos = 0;
var rightmostFailuresExpected = [];
function padLeft(input, padding, length) {
var result = input;
var padLength = length - input.length;
for (var i = 0; i < padLength; i++) {
result = padding + result;
}
return result;
}
function escape(ch) {
var charCode = ch.charCodeAt(0);
var escapeChar;
var length;
if (charCode <= 0xFF) {
escapeChar = 'x';
length = 2;
} else {
escapeChar = 'u';
length = 4;
}
return '\\' + escapeChar + padLeft(charCode.toString(16).toUpperCase(), '0', length);
}
function matchFailed(failure) {
if (pos < rightmostFailuresPos) {
return;
}
if (pos > rightmostFailuresPos) {
rightmostFailuresPos = pos;
rightmostFailuresExpected = [];
}
rightmostFailuresExpected.push(failure);
}
function parse_start() {
var result0, result1, result2;
var pos0, pos1;
pos0 = pos;
pos1 = pos;
result0 = parse_stylesheet();
if (result0 !== null) {
result1 = [];
result2 = parse_comment();
while (result2 !== null) {
result1.push(result2);
result2 = parse_comment();
}
if (result1 !== null) {
result0 = [result0, result1];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset, stylesheet) { return stylesheet; })(pos0, result0[0]);
}
if (result0 === null) {
pos = pos0;
}
return result0;
}
function parse_stylesheet() {
var result0, result1, result2, result3, result4, result5, result6, result7, result8;
var pos0, pos1, pos2, pos3;
pos0 = pos;
pos1 = pos;
pos2 = pos;
result0 = parse_CHARSET_SYM();
if (result0 !== null) {
result1 = parse_STRING();
if (result1 !== null) {
if (input.charCodeAt(pos) === 59) {
result2 = ";";
pos++;
} else {
result2 = null;
if (reportFailures === 0) {
matchFailed("\";\"");
}
}
if (result2 !== null) {
result0 = [result0, result1, result2];
} else {
result0 = null;
pos = pos2;
}
} else {
result0 = null;
pos = pos2;
}
} else {
result0 = null;
pos = pos2;
}
result0 = result0 !== null ? result0 : "";
if (result0 !== null) {
result1 = [];
result2 = parse_S();
if (result2 === null) {
result2 = parse_CDO();
if (result2 === null) {
result2 = parse_CDC();
}
}
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
if (result2 === null) {
result2 = parse_CDO();
if (result2 === null) {
result2 = parse_CDC();
}
}
}
if (result1 !== null) {
result2 = [];
pos2 = pos;
result3 = parse_import();
if (result3 !== null) {
result4 = [];
pos3 = pos;
result5 = parse_CDO();
if (result5 !== null) {
result6 = [];
result7 = parse_S();
while (result7 !== null) {
result6.push(result7);
result7 = parse_S();
}
if (result6 !== null) {
result5 = [result5, result6];
} else {
result5 = null;
pos = pos3;
}
} else {
result5 = null;
pos = pos3;
}
if (result5 === null) {
pos3 = pos;
result5 = parse_CDC();
if (result5 !== null) {
result6 = [];
result7 = parse_S();
while (result7 !== null) {
result6.push(result7);
result7 = parse_S();
}
if (result6 !== null) {
result5 = [result5, result6];
} else {
result5 = null;
pos = pos3;
}
} else {
result5 = null;
pos = pos3;
}
}
while (result5 !== null) {
result4.push(result5);
pos3 = pos;
result5 = parse_CDO();
if (result5 !== null) {
result6 = [];
result7 = parse_S();
while (result7 !== null) {
result6.push(result7);
result7 = parse_S();
}
if (result6 !== null) {
result5 = [result5, result6];
} else {
result5 = null;
pos = pos3;
}
} else {
result5 = null;
pos = pos3;
}
if (result5 === null) {
pos3 = pos;
result5 = parse_CDC();
if (result5 !== null) {
result6 = [];
result7 = parse_S();
while (result7 !== null) {
result6.push(result7);
result7 = parse_S();
}
if (result6 !== null) {
result5 = [result5, result6];
} else {
result5 = null;
pos = pos3;
}
} else {
result5 = null;
pos = pos3;
}
}
}
if (result4 !== null) {
result3 = [result3, result4];
} else {
result3 = null;
pos = pos2;
}
} else {
result3 = null;
pos = pos2;
}
while (result3 !== null) {
result2.push(result3);
pos2 = pos;
result3 = parse_import();
if (result3 !== null) {
result4 = [];
pos3 = pos;
result5 = parse_CDO();
if (result5 !== null) {
result6 = [];
result7 = parse_S();
while (result7 !== null) {
result6.push(result7);
result7 = parse_S();
}
if (result6 !== null) {
result5 = [result5, result6];
} else {
result5 = null;
pos = pos3;
}
} else {
result5 = null;
pos = pos3;
}
if (result5 === null) {
pos3 = pos;
result5 = parse_CDC();
if (result5 !== null) {
result6 = [];
result7 = parse_S();
while (result7 !== null) {
result6.push(result7);
result7 = parse_S();
}
if (result6 !== null) {
result5 = [result5, result6];
} else {
result5 = null;
pos = pos3;
}
} else {
result5 = null;
pos = pos3;
}
}
while (result5 !== null) {
result4.push(result5);
pos3 = pos;
result5 = parse_CDO();
if (result5 !== null) {
result6 = [];
result7 = parse_S();
while (result7 !== null) {
result6.push(result7);
result7 = parse_S();
}
if (result6 !== null) {
result5 = [result5, result6];
} else {
result5 = null;
pos = pos3;
}
} else {
result5 = null;
pos = pos3;
}
if (result5 === null) {
pos3 = pos;
result5 = parse_CDC();
if (result5 !== null) {
result6 = [];
result7 = parse_S();
while (result7 !== null) {
result6.push(result7);
result7 = parse_S();
}
if (result6 !== null) {
result5 = [result5, result6];
} else {
result5 = null;
pos = pos3;
}
} else {
result5 = null;
pos = pos3;
}
}
}
if (result4 !== null) {
result3 = [result3, result4];
} else {
result3 = null;
pos = pos2;
}
} else {
result3 = null;
pos = pos2;
}
}
if (result2 !== null) {
result3 = [];
pos2 = pos;
result4 = parse_ruleset();
if (result4 === null) {
result4 = parse_media();
if (result4 === null) {
result4 = parse_page();
}
}
if (result4 !== null) {
result5 = [];
pos3 = pos;
result6 = parse_CDO();
if (result6 !== null) {
result7 = [];
result8 = parse_S();
while (result8 !== null) {
result7.push(result8);
result8 = parse_S();
}
if (result7 !== null) {
result6 = [result6, result7];
} else {
result6 = null;
pos = pos3;
}
} else {
result6 = null;
pos = pos3;
}
if (result6 === null) {
pos3 = pos;
result6 = parse_CDC();
if (result6 !== null) {
result7 = [];
result8 = parse_S();
while (result8 !== null) {
result7.push(result8);
result8 = parse_S();
}
if (result7 !== null) {
result6 = [result6, result7];
} else {
result6 = null;
pos = pos3;
}
} else {
result6 = null;
pos = pos3;
}
}
while (result6 !== null) {
result5.push(result6);
pos3 = pos;
result6 = parse_CDO();
if (result6 !== null) {
result7 = [];
result8 = parse_S();
while (result8 !== null) {
result7.push(result8);
result8 = parse_S();
}
if (result7 !== null) {
result6 = [result6, result7];
} else {
result6 = null;
pos = pos3;
}
} else {
result6 = null;
pos = pos3;
}
if (result6 === null) {
pos3 = pos;
result6 = parse_CDC();
if (result6 !== null) {
result7 = [];
result8 = parse_S();
while (result8 !== null) {
result7.push(result8);
result8 = parse_S();
}
if (result7 !== null) {
result6 = [result6, result7];
} else {
result6 = null;
pos = pos3;
}
} else {
result6 = null;
pos = pos3;
}
}
}
if (result5 !== null) {
result4 = [result4, result5];
} else {
result4 = null;
pos = pos2;
}
} else {
result4 = null;
pos = pos2;
}
while (result4 !== null) {
result3.push(result4);
pos2 = pos;
result4 = parse_ruleset();
if (result4 === null) {
result4 = parse_media();
if (result4 === null) {
result4 = parse_page();
}
}
if (result4 !== null) {
result5 = [];
pos3 = pos;
result6 = parse_CDO();
if (result6 !== null) {
result7 = [];
result8 = parse_S();
while (result8 !== null) {
result7.push(result8);
result8 = parse_S();
}
if (result7 !== null) {
result6 = [result6, result7];
} else {
result6 = null;
pos = pos3;
}
} else {
result6 = null;
pos = pos3;
}
if (result6 === null) {
pos3 = pos;
result6 = parse_CDC();
if (result6 !== null) {
result7 = [];
result8 = parse_S();
while (result8 !== null) {
result7.push(result8);
result8 = parse_S();
}
if (result7 !== null) {
result6 = [result6, result7];
} else {
result6 = null;
pos = pos3;
}
} else {
result6 = null;
pos = pos3;
}
}
while (result6 !== null) {
result5.push(result6);
pos3 = pos;
result6 = parse_CDO();
if (result6 !== null) {
result7 = [];
result8 = parse_S();
while (result8 !== null) {
result7.push(result8);
result8 = parse_S();
}
if (result7 !== null) {
result6 = [result6, result7];
} else {
result6 = null;
pos = pos3;
}
} else {
result6 = null;
pos = pos3;
}
if (result6 === null) {
pos3 = pos;
result6 = parse_CDC();
if (result6 !== null) {
result7 = [];
result8 = parse_S();
while (result8 !== null) {
result7.push(result8);
result8 = parse_S();
}
if (result7 !== null) {
result6 = [result6, result7];
} else {
result6 = null;
pos = pos3;
}
} else {
result6 = null;
pos = pos3;
}
}
}
if (result5 !== null) {
result4 = [result4, result5];
} else {
result4 = null;
pos = pos2;
}
} else {
result4 = null;
pos = pos2;
}
}
if (result3 !== null) {
result0 = [result0, result1, result2, result3];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset, charset, imports, rules) {
var importsConverted = [];
for (var i = 0; i < imports.length; i++) {
importsConverted.push(imports[i][0]);
}
var rulesConverted = [];
for (i = 0; i < rules.length; i++) {
rulesConverted.push(rules[i][0]);
}
return {
type: "stylesheet",
charset: charset !== "" ? charset[1] : null,
imports: importsConverted,
rules: rulesConverted
};
})(pos0, result0[0], result0[2], result0[3]);
}
if (result0 === null) {
pos = pos0;
}
return result0;
}
function parse_import() {
var result0, result1, result2, result3, result4, result5, result6, result7;
var pos0, pos1;
pos0 = pos;
pos1 = pos;
result0 = parse_IMPORT_SYM();
if (result0 !== null) {
result1 = [];
result2 = parse_S();
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
}
if (result1 !== null) {
result2 = parse_STRING();
if (result2 === null) {
result2 = parse_URI();
}
if (result2 !== null) {
result3 = [];
result4 = parse_S();
while (result4 !== null) {
result3.push(result4);
result4 = parse_S();
}
if (result3 !== null) {
result4 = parse_media_list();
result4 = result4 !== null ? result4 : "";
if (result4 !== null) {
if (input.charCodeAt(pos) === 59) {
result5 = ";";
pos++;
} else {
result5 = null;
if (reportFailures === 0) {
matchFailed("\";\"");
}
}
if (result5 !== null) {
result6 = [];
result7 = parse_S();
while (result7 !== null) {
result6.push(result7);
result7 = parse_S();
}
if (result6 !== null) {
result0 = [result0, result1, result2, result3, result4, result5, result6];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset, href, media) {
return {
type: "import_rule",
href: href,
media: media !== "" ? media : []
};
})(pos0, result0[2], result0[4]);
}
if (result0 === null) {
pos = pos0;
}
return result0;
}
function parse_media() {
var result0, result1, result2, result3, result4, result5, result6, result7, result8;
var pos0, pos1;
pos0 = pos;
pos1 = pos;
result0 = parse_MEDIA_SYM();
if (result0 !== null) {
result1 = [];
result2 = parse_S();
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
}
if (result1 !== null) {
result2 = parse_media_list();
if (result2 !== null) {
if (input.charCodeAt(pos) === 123) {
result3 = "{";
pos++;
} else {
result3 = null;
if (reportFailures === 0) {
matchFailed("\"{\"");
}
}
if (result3 !== null) {
result4 = [];
result5 = parse_S();
while (result5 !== null) {
result4.push(result5);
result5 = parse_S();
}
if (result4 !== null) {
result5 = [];
result6 = parse_ruleset();
while (result6 !== null) {
result5.push(result6);
result6 = parse_ruleset();
}
if (result5 !== null) {
if (input.charCodeAt(pos) === 125) {
result6 = "}";
pos++;
} else {
result6 = null;
if (reportFailures === 0) {
matchFailed("\"}\"");
}
}
if (result6 !== null) {
result7 = [];
result8 = parse_S();
while (result8 !== null) {
result7.push(result8);
result8 = parse_S();
}
if (result7 !== null) {
result0 = [result0, result1, result2, result3, result4, result5, result6, result7];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset, media, rules) {
return {
type: "media_rule",
media: media,
rules: rules
};
})(pos0, result0[2], result0[5]);
}
if (result0 === null) {
pos = pos0;
}
return result0;
}
function parse_media_list() {
var result0, result1, result2, result3, result4;
var pos0, pos1, pos2;
pos0 = pos;
pos1 = pos;
result0 = parse_medium();
if (result0 !== null) {
result1 = [];
pos2 = pos;
if (input.charCodeAt(pos) === 44) {
result2 = ",";
pos++;
} else {
result2 = null;
if (reportFailures === 0) {
matchFailed("\",\"");
}
}
if (result2 !== null) {
result3 = [];
result4 = parse_S();
while (result4 !== null) {
result3.push(result4);
result4 = parse_S();
}
if (result3 !== null) {
result4 = parse_medium();
if (result4 !== null) {
result2 = [result2, result3, result4];
} else {
result2 = null;
pos = pos2;
}
} else {
result2 = null;
pos = pos2;
}
} else {
result2 = null;
pos = pos2;
}
while (result2 !== null) {
result1.push(result2);
pos2 = pos;
if (input.charCodeAt(pos) === 44) {
result2 = ",";
pos++;
} else {
result2 = null;
if (reportFailures === 0) {
matchFailed("\",\"");
}
}
if (result2 !== null) {
result3 = [];
result4 = parse_S();
while (result4 !== null) {
result3.push(result4);
result4 = parse_S();
}
if (result3 !== null) {
result4 = parse_medium();
if (result4 !== null) {
result2 = [result2, result3, result4];
} else {
result2 = null;
pos = pos2;
}
} else {
result2 = null;
pos = pos2;
}
} else {
result2 = null;
pos = pos2;
}
}
if (result1 !== null) {
result0 = [result0, result1];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset, head, tail) {
var result = [head];
for (var i = 0; i < tail.length; i++) {
result.push(tail[i][2]);
}
return result;
})(pos0, result0[0], result0[1]);
}
if (result0 === null) {
pos = pos0;
}
return result0;
}
function parse_medium() {
var result0, result1, result2;
var pos0, pos1;
pos0 = pos;
pos1 = pos;
result0 = parse_IDENT();
if (result0 !== null) {
result1 = [];
result2 = parse_S();
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
}
if (result1 !== null) {
result0 = [result0, result1];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset, ident) { return ident; })(pos0, result0[0]);
}
if (result0 === null) {
pos = pos0;
}
return result0;
}
function parse_page() {
var result0, result1, result2, result3, result4, result5, result6, result7, result8, result9;
var pos0, pos1, pos2;
pos0 = pos;
pos1 = pos;
result0 = parse_PAGE_SYM();
if (result0 !== null) {
result1 = [];
result2 = parse_S();
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
}
if (result1 !== null) {
result2 = parse_pseudo_page();
result2 = result2 !== null ? result2 : "";
if (result2 !== null) {
if (input.charCodeAt(pos) === 123) {
result3 = "{";
pos++;
} else {
result3 = null;
if (reportFailures === 0) {
matchFailed("\"{\"");
}
}
if (result3 !== null) {
result4 = [];
result5 = parse_S();
while (result5 !== null) {
result4.push(result5);
result5 = parse_S();
}
if (result4 !== null) {
result5 = parse_declaration();
result5 = result5 !== null ? result5 : "";
if (result5 !== null) {
result6 = [];
pos2 = pos;
if (input.charCodeAt(pos) === 59) {
result7 = ";";
pos++;
} else {
result7 = null;
if (reportFailures === 0) {
matchFailed("\";\"");
}
}
if (result7 !== null) {
result8 = [];
result9 = parse_S();
while (result9 !== null) {
result8.push(result9);
result9 = parse_S();
}
if (result8 !== null) {
result9 = parse_declaration();
result9 = result9 !== null ? result9 : "";
if (result9 !== null) {
result7 = [result7, result8, result9];
} else {
result7 = null;
pos = pos2;
}
} else {
result7 = null;
pos = pos2;
}
} else {
result7 = null;
pos = pos2;
}
while (result7 !== null) {
result6.push(result7);
pos2 = pos;
if (input.charCodeAt(pos) === 59) {
result7 = ";";
pos++;
} else {
result7 = null;
if (reportFailures === 0) {
matchFailed("\";\"");
}
}
if (result7 !== null) {
result8 = [];
result9 = parse_S();
while (result9 !== null) {
result8.push(result9);
result9 = parse_S();
}
if (result8 !== null) {
result9 = parse_declaration();
result9 = result9 !== null ? result9 : "";
if (result9 !== null) {
result7 = [result7, result8, result9];
} else {
result7 = null;
pos = pos2;
}
} else {
result7 = null;
pos = pos2;
}
} else {
result7 = null;
pos = pos2;
}
}
if (result6 !== null) {
if (input.charCodeAt(pos) === 125) {
result7 = "}";
pos++;
} else {
result7 = null;
if (reportFailures === 0) {
matchFailed("\"}\"");
}
}
if (result7 !== null) {
result8 = [];
result9 = parse_S();
while (result9 !== null) {
result8.push(result9);
result9 = parse_S();
}
if (result8 !== null) {
result0 = [result0, result1, result2, result3, result4, result5, result6, result7, result8];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset, qualifier, declarationsHead, declarationsTail) {
var declarations = declarationsHead !== "" ? [declarationsHead] : [];
for (var i = 0; i < declarationsTail.length; i++) {
if (declarationsTail[i][2] !== "") {
declarations.push(declarationsTail[i][2]);
}
}
return {
type: "page_rule",
qualifier: qualifier !== "" ? qualifier : null,
declarations: declarations
};
})(pos0, result0[2], result0[5], result0[6]);
}
if (result0 === null) {
pos = pos0;
}
return result0;
}
function parse_pseudo_page() {
var result0, result1, result2, result3;
var pos0, pos1;
pos0 = pos;
pos1 = pos;
if (input.charCodeAt(pos) === 58) {
result0 = ":";
pos++;
} else {
result0 = null;
if (reportFailures === 0) {
matchFailed("\":\"");
}
}
if (result0 !== null) {
result1 = parse_IDENT();
if (result1 !== null) {
result2 = [];
result3 = parse_S();
while (result3 !== null) {
result2.push(result3);
result3 = parse_S();
}
if (result2 !== null) {
result0 = [result0, result1, result2];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset, ident) { return ident; })(pos0, result0[1]);
}
if (result0 === null) {
pos = pos0;
}
return result0;
}
function parse_operator() {
var result0, result1, result2;
var pos0, pos1;
pos0 = pos;
pos1 = pos;
if (input.charCodeAt(pos) === 47) {
result0 = "/";
pos++;
} else {
result0 = null;
if (reportFailures === 0) {
matchFailed("\"/\"");
}
}
if (result0 !== null) {
result1 = [];
result2 = parse_S();
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
}
if (result1 !== null) {
result0 = [result0, result1];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset) { return "/"; })(pos0);
}
if (result0 === null) {
pos = pos0;
}
if (result0 === null) {
pos0 = pos;
pos1 = pos;
if (input.charCodeAt(pos) === 44) {
result0 = ",";
pos++;
} else {
result0 = null;
if (reportFailures === 0) {
matchFailed("\",\"");
}
}
if (result0 !== null) {
result1 = [];
result2 = parse_S();
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
}
if (result1 !== null) {
result0 = [result0, result1];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset) { return ","; })(pos0);
}
if (result0 === null) {
pos = pos0;
}
}
return result0;
}
function parse_combinator() {
var result0, result1, result2;
var pos0, pos1;
pos0 = pos;
pos1 = pos;
if (input.charCodeAt(pos) === 43) {
result0 = "+";
pos++;
} else {
result0 = null;
if (reportFailures === 0) {
matchFailed("\"+\"");
}
}
if (result0 !== null) {
result1 = [];
result2 = parse_S();
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
}
if (result1 !== null) {
result0 = [result0, result1];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset) { return "+"; })(pos0);
}
if (result0 === null) {
pos = pos0;
}
if (result0 === null) {
pos0 = pos;
pos1 = pos;
if (input.charCodeAt(pos) === 62) {
result0 = ">";
pos++;
} else {
result0 = null;
if (reportFailures === 0) {
matchFailed("\">\"");
}
}
if (result0 !== null) {
result1 = [];
result2 = parse_S();
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
}
if (result1 !== null) {
result0 = [result0, result1];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset) { return ">"; })(pos0);
}
if (result0 === null) {
pos = pos0;
}
}
return result0;
}
function parse_unary_operator() {
var result0;
if (input.charCodeAt(pos) === 43) {
result0 = "+";
pos++;
} else {
result0 = null;
if (reportFailures === 0) {
matchFailed("\"+\"");
}
}
if (result0 === null) {
if (input.charCodeAt(pos) === 45) {
result0 = "-";
pos++;
} else {
result0 = null;
if (reportFailures === 0) {
matchFailed("\"-\"");
}
}
}
return result0;
}
function parse_property() {
var result0, result1, result2;
var pos0, pos1;
pos0 = pos;
pos1 = pos;
result0 = parse_IDENT();
if (result0 !== null) {
result1 = [];
result2 = parse_S();
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
}
if (result1 !== null) {
result0 = [result0, result1];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset, ident) { return ident; })(pos0, result0[0]);
}
if (result0 === null) {
pos = pos0;
}
return result0;
}
function parse_ruleset() {
var result0, result1, result2, result3, result4, result5, result6, result7, result8;
var pos0, pos1, pos2;
pos0 = pos;
pos1 = pos;
result0 = parse_selector();
if (result0 !== null) {
result1 = [];
pos2 = pos;
if (input.charCodeAt(pos) === 44) {
result2 = ",";
pos++;
} else {
result2 = null;
if (reportFailures === 0) {
matchFailed("\",\"");
}
}
if (result2 !== null) {
result3 = [];
result4 = parse_S();
while (result4 !== null) {
result3.push(result4);
result4 = parse_S();
}
if (result3 !== null) {
result4 = parse_selector();
if (result4 !== null) {
result2 = [result2, result3, result4];
} else {
result2 = null;
pos = pos2;
}
} else {
result2 = null;
pos = pos2;
}
} else {
result2 = null;
pos = pos2;
}
while (result2 !== null) {
result1.push(result2);
pos2 = pos;
if (input.charCodeAt(pos) === 44) {
result2 = ",";
pos++;
} else {
result2 = null;
if (reportFailures === 0) {
matchFailed("\",\"");
}
}
if (result2 !== null) {
result3 = [];
result4 = parse_S();
while (result4 !== null) {
result3.push(result4);
result4 = parse_S();
}
if (result3 !== null) {
result4 = parse_selector();
if (result4 !== null) {
result2 = [result2, result3, result4];
} else {
result2 = null;
pos = pos2;
}
} else {
result2 = null;
pos = pos2;
}
} else {
result2 = null;
pos = pos2;
}
}
if (result1 !== null) {
if (input.charCodeAt(pos) === 123) {
result2 = "{";
pos++;
} else {
result2 = null;
if (reportFailures === 0) {
matchFailed("\"{\"");
}
}
if (result2 !== null) {
result3 = [];
result4 = parse_S();
while (result4 !== null) {
result3.push(result4);
result4 = parse_S();
}
if (result3 !== null) {
result4 = parse_declaration();
result4 = result4 !== null ? result4 : "";
if (result4 !== null) {
result5 = [];
pos2 = pos;
if (input.charCodeAt(pos) === 59) {
result6 = ";";
pos++;
} else {
result6 = null;
if (reportFailures === 0) {
matchFailed("\";\"");
}
}
if (result6 !== null) {
result7 = [];
result8 = parse_S();
while (result8 !== null) {
result7.push(result8);
result8 = parse_S();
}
if (result7 !== null) {
result8 = parse_declaration();
result8 = result8 !== null ? result8 : "";
if (result8 !== null) {
result6 = [result6, result7, result8];
} else {
result6 = null;
pos = pos2;
}
} else {
result6 = null;
pos = pos2;
}
} else {
result6 = null;
pos = pos2;
}
while (result6 !== null) {
result5.push(result6);
pos2 = pos;
if (input.charCodeAt(pos) === 59) {
result6 = ";";
pos++;
} else {
result6 = null;
if (reportFailures === 0) {
matchFailed("\";\"");
}
}
if (result6 !== null) {
result7 = [];
result8 = parse_S();
while (result8 !== null) {
result7.push(result8);
result8 = parse_S();
}
if (result7 !== null) {
result8 = parse_declaration();
result8 = result8 !== null ? result8 : "";
if (result8 !== null) {
result6 = [result6, result7, result8];
} else {
result6 = null;
pos = pos2;
}
} else {
result6 = null;
pos = pos2;
}
} else {
result6 = null;
pos = pos2;
}
}
if (result5 !== null) {
if (input.charCodeAt(pos) === 125) {
result6 = "}";
pos++;
} else {
result6 = null;
if (reportFailures === 0) {
matchFailed("\"}\"");
}
}
if (result6 !== null) {
result7 = [];
result8 = parse_S();
while (result8 !== null) {
result7.push(result8);
result8 = parse_S();
}
if (result7 !== null) {
result0 = [result0, result1, result2, result3, result4, result5, result6, result7];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset, selectorsHead, selectorsTail, declarationsHead, declarationsTail) {
var selectors = [selectorsHead];
for (var i = 0; i < selectorsTail.length; i++) {
selectors.push(selectorsTail[i][2]);
}
var declarations = declarationsHead !== "" ? [declarationsHead] : [];
for (i = 0; i < declarationsTail.length; i++) {
if (declarationsTail[i][2] !== "") {
declarations.push(declarationsTail[i][2]);
}
}
return {
type: "ruleset",
selectors: selectors,
declarations: declarations
};
})(pos0, result0[0], result0[1], result0[4], result0[5]);
}
if (result0 === null) {
pos = pos0;
}
return result0;
}
function parse_selector() {
var result0, result1, result2, result3;
var pos0, pos1;
pos0 = pos;
pos1 = pos;
result0 = parse_simple_selector();
if (result0 !== null) {
result1 = [];
result2 = parse_S();
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
}
if (result1 !== null) {
result2 = parse_combinator();
if (result2 !== null) {
result3 = parse_selector();
if (result3 !== null) {
result0 = [result0, result1, result2, result3];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset, left, combinator, right) {
return {
type: "selector",
combinator: combinator,
left: left,
right: right
};
})(pos0, result0[0], result0[2], result0[3]);
}
if (result0 === null) {
pos = pos0;
}
if (result0 === null) {
pos0 = pos;
pos1 = pos;
result0 = parse_simple_selector();
if (result0 !== null) {
result1 = [];
result2 = parse_S();
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
}
if (result1 !== null) {
result2 = parse_selector();
if (result2 !== null) {
result0 = [result0, result1, result2];
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
} else {
result0 = null;
pos = pos1;
}
if (result0 !== null) {
result0 = (function(offset, left, right) {
return {
type: "selector",
combinator: " ",
left: left,
right: right
};
})(pos0, result0[0], result0[2]);
}
if (result0 === null) {
pos = pos0;
}
if (result0 === null) {
pos0 = pos;
pos1 = pos;
result0 = parse_simple_selector();
if (result0 !== null) {
result1 = [];
result2 = parse_S();
while (result2 !== null) {
result1.push(result2);
result2 = parse_S();
}
if (result1 !== null) {
result0 = [result0, result1];
} else {
result0 = null;
pos = pos1;
}