@kpi4me/golden-layout
Version:
A multi-screen javascript Layout manager https://golden-layout.com
1,662 lines (1,570 loc) • 612 kB
JavaScript
module.exports = (function(){
/*
* Generated by PEG.js 0.7.0.
*
* http://pegjs.majda.cz/
*/
function subclass(child, parent) {
function ctor() { this.constructor = child; }
ctor.prototype = parent.prototype;
child.prototype = new ctor();
}
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 successful,
* 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) {
var parseFunctions = {
"program": parse_program
};
var options = arguments.length > 1 ? arguments[1] : {},
startRule;
if (options.startRule !== undefined) {
startRule = options.startRule;
if (parseFunctions[startRule] === undefined) {
throw new Error("Can't start parsing from rule " + quote(startRule) + ".");
}
} else {
startRule = "program";
}
var pos = 0;
var reportedPos = 0;
var cachedReportedPos = 0;
var cachedReportedPosDetails = { line: 1, column: 1, seenCR: false };
var reportFailures = 0;
var rightmostFailuresPos = 0;
var rightmostFailuresExpected = [];
var cache = {};
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 computeReportedPosDetails() {
function advanceCachedReportedPos() {
var ch;
for (; cachedReportedPos < reportedPos; cachedReportedPos++) {
ch = input.charAt(cachedReportedPos);
if (ch === "\n") {
if (!cachedReportedPosDetails.seenCR) { cachedReportedPosDetails.line++; }
cachedReportedPosDetails.column = 1;
cachedReportedPosDetails.seenCR = false;
} else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") {
cachedReportedPosDetails.line++;
cachedReportedPosDetails.column = 1;
cachedReportedPosDetails.seenCR = true;
} else {
cachedReportedPosDetails.column++;
cachedReportedPosDetails.seenCR = false;
}
}
}
if (cachedReportedPos !== reportedPos) {
if (cachedReportedPos > reportedPos) {
cachedReportedPos = 0;
cachedReportedPosDetails = { line: 1, column: 1, seenCR: false };
}
advanceCachedReportedPos();
}
return cachedReportedPosDetails;
}
function text() {
return input.substring(reportedPos, pos);
}
function offset() {
return reportedPos;
}
function line() {
return computeReportedPosDetails().line;
}
function column() {
return computeReportedPosDetails().column;
}
function matchFailed(failure) {
if (pos < rightmostFailuresPos) {
return;
}
if (pos > rightmostFailuresPos) {
rightmostFailuresPos = pos;
rightmostFailuresExpected = [];
}
rightmostFailuresExpected.push(failure);
}
function parse_program() {
var cacheKey = "program@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0, r1, r2, r3, r4, r5;
r1 = pos;
r2 = pos;
r3 = parse_TERMINATOR();
r3 = r3 !== null ? r3 : "";
if (r3 !== null) {
r4 = parse__();
if (r4 !== null) {
r5 = parse_toplevelBlock();
r5 = r5 !== null ? r5 : "";
if (r5 !== null) {
r0 = [r3, r4, r5];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 !== null) {
reportedPos = r1;
r0 = (function(leader, b) {
return rp(new CS.Program(b || null));
})(r3, r5);
}
if (r0 === null) {
pos = r1;
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_toplevelBlock() {
var cacheKey = "toplevelBlock@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10;
r1 = pos;
r2 = pos;
r3 = parse_toplevelStatement();
if (r3 !== null) {
r4 = [];
r6 = pos;
r7 = parse__();
if (r7 !== null) {
r8 = parse_TERMINATOR();
if (r8 !== null) {
r9 = parse__();
if (r9 !== null) {
r10 = parse_toplevelStatement();
if (r10 !== null) {
r5 = [r7, r8, r9, r10];
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
while (r5 !== null) {
r4.push(r5);
r6 = pos;
r7 = parse__();
if (r7 !== null) {
r8 = parse_TERMINATOR();
if (r8 !== null) {
r9 = parse__();
if (r9 !== null) {
r10 = parse_toplevelStatement();
if (r10 !== null) {
r5 = [r7, r8, r9, r10];
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
}
if (r4 !== null) {
r5 = parse_TERMINATOR();
r5 = r5 !== null ? r5 : "";
if (r5 !== null) {
r0 = [r3, r4, r5];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 !== null) {
reportedPos = r1;
r0 = (function(s, ss) {
return rp(new CS.Block([s].concat(ss.map(function(s){ return s[3]; }))));
})(r3, r4);
}
if (r0 === null) {
pos = r1;
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_toplevelStatement() {
var cacheKey = "toplevelStatement@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0, r1, r2, r3, r4;
r1 = pos;
r2 = pos;
r4 = pos;
reportFailures++;
r3 = parse_return();
if (r3 === null) {
r3 = parse_continue();
if (r3 === null) {
r3 = parse_break();
}
}
reportFailures--;
if (r3 === null) {
r3 = "";
} else {
r3 = null;
pos = r4;
}
if (r3 !== null) {
r4 = parse_statement();
if (r4 !== null) {
r0 = [r3, r4];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 !== null) {
reportedPos = r1;
r0 = (function(s) { return s; })(r4);
}
if (r0 === null) {
pos = r1;
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_block() {
var cacheKey = "block@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10;
r1 = pos;
r2 = pos;
r3 = parse_statement();
if (r3 !== null) {
r4 = [];
r6 = pos;
r7 = parse__();
if (r7 !== null) {
r8 = parse_TERMINATOR();
if (r8 !== null) {
r9 = parse__();
if (r9 !== null) {
r10 = parse_statement();
if (r10 !== null) {
r5 = [r7, r8, r9, r10];
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
while (r5 !== null) {
r4.push(r5);
r6 = pos;
r7 = parse__();
if (r7 !== null) {
r8 = parse_TERMINATOR();
if (r8 !== null) {
r9 = parse__();
if (r9 !== null) {
r10 = parse_statement();
if (r10 !== null) {
r5 = [r7, r8, r9, r10];
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
}
if (r4 !== null) {
r5 = parse_TERMINATOR();
r5 = r5 !== null ? r5 : "";
if (r5 !== null) {
r0 = [r3, r4, r5];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 !== null) {
reportedPos = r1;
r0 = (function(s, ss) {
return rp(new CS.Block([s].concat(ss.map(function(s){ return s[3]; }))));
})(r3, r4);
}
if (r0 === null) {
pos = r1;
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_statement() {
var cacheKey = "statement@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0;
r0 = parse_expression();
if (r0 === null) {
r0 = parse_return();
if (r0 === null) {
r0 = parse_continue();
if (r0 === null) {
r0 = parse_break();
if (r0 === null) {
r0 = parse_throw();
if (r0 === null) {
r0 = parse_debugger();
}
}
}
}
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_expression() {
var cacheKey = "expression@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0;
r0 = parse_expressionworthy();
if (r0 === null) {
r0 = parse_seqExpression();
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_secondaryStatement() {
var cacheKey = "secondaryStatement@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0;
r0 = parse_secondaryExpression();
if (r0 === null) {
r0 = parse_return();
if (r0 === null) {
r0 = parse_continue();
if (r0 === null) {
r0 = parse_break();
if (r0 === null) {
r0 = parse_throw();
if (r0 === null) {
r0 = parse_debugger();
}
}
}
}
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_secondaryExpression() {
var cacheKey = "secondaryExpression@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0;
r0 = parse_expressionworthy();
if (r0 === null) {
r0 = parse_assignmentExpression();
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_secondaryExpressionNoImplicitObjectCall() {
var cacheKey = "secondaryExpressionNoImplicitObjectCall@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0;
r0 = parse_expressionworthy();
if (r0 === null) {
r0 = parse_assignmentExpressionNoImplicitObjectCall();
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_expressionworthy() {
var cacheKey = "expressionworthy@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0;
r0 = parse_functionLiteral();
if (r0 === null) {
r0 = parse_conditional();
if (r0 === null) {
r0 = parse_while();
if (r0 === null) {
r0 = parse_loop();
if (r0 === null) {
r0 = parse_try();
if (r0 === null) {
r0 = parse_forOf();
if (r0 === null) {
r0 = parse_forIn();
if (r0 === null) {
r0 = parse_switch();
if (r0 === null) {
r0 = parse_implicitObjectLiteral();
if (r0 === null) {
r0 = parse_class();
}
}
}
}
}
}
}
}
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_seqExpression() {
var cacheKey = "seqExpression@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10;
r1 = pos;
r2 = pos;
r3 = parse_postfixControlFlowExpression();
if (r3 !== null) {
r5 = pos;
r6 = parse__();
if (r6 !== null) {
if (input.charCodeAt(pos) === 59) {
r7 = ";";
pos++;
} else {
r7 = null;
if (reportFailures === 0) {
matchFailed("\";\"");
}
}
if (r7 !== null) {
r8 = parse_TERMINATOR();
r8 = r8 !== null ? r8 : "";
if (r8 !== null) {
r9 = parse__();
if (r9 !== null) {
r10 = parse_expression();
if (r10 !== null) {
r4 = [r6, r7, r8, r9, r10];
} else {
r4 = null;
pos = r5;
}
} else {
r4 = null;
pos = r5;
}
} else {
r4 = null;
pos = r5;
}
} else {
r4 = null;
pos = r5;
}
} else {
r4 = null;
pos = r5;
}
r4 = r4 !== null ? r4 : "";
if (r4 !== null) {
r0 = [r3, r4];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 !== null) {
reportedPos = r1;
r0 = (function(left, right) {
if(!right) return left;
return rp(new CS.SeqOp(left, right[4]));
})(r3, r4);
}
if (r0 === null) {
pos = r1;
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_postfixControlFlowExpression() {
var cacheKey = "postfixControlFlowExpression@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0, r1, r2, r3, r4, r5, r6, r7, r8;
r1 = pos;
r2 = pos;
r3 = parse_secondaryStatement();
if (r3 !== null) {
r4 = [];
r6 = pos;
r7 = parse__();
if (r7 !== null) {
r8 = parse_postfixControlFlowOp();
if (r8 !== null) {
r5 = [r7, r8];
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
while (r5 !== null) {
r4.push(r5);
r6 = pos;
r7 = parse__();
if (r7 !== null) {
r8 = parse_postfixControlFlowOp();
if (r8 !== null) {
r5 = [r7, r8];
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
}
if (r4 !== null) {
r0 = [r3, r4];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 !== null) {
reportedPos = r1;
r0 = (function(expr, postfixes) {
return foldl(function(expr, postfixContainer){
var constructor, cond,
postfix = postfixContainer[1],
indicator = postfix.type;
switch(indicator){
case 'if':
case 'unless':
constructor = ('unless' === indicator) ? CS.NegatedConditional : CS.Conditional;
cond = ('unless' === indicator) ? new CS.LogicalNotOp(postfix.cond).g() : postfix.cond;
return rp(new constructor(cond, expr, null));
case 'while':
case 'until':
constructor = ('until' === indicator) ? CS.NegatedWhile : CS.While;
cond = ('until' === indicator) ? new CS.LogicalNotOp(postfix.cond).g() : postfix.cond;
return rp(new constructor(cond, expr));
case 'for-in':
return rp(new CS.ForIn(postfix.val, postfix.key, postfix.list, postfix.step, postfix.filter, expr));
case 'for-of':
return rp(new CS.ForOf(postfix.own, postfix.key, postfix.val, postfix.obj, postfix.filter, expr));
}
}, expr, postfixes)
})(r3, r4);
}
if (r0 === null) {
pos = r1;
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_postfixControlFlowOp() {
var cacheKey = "postfixControlFlowOp@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17;
r1 = pos;
r2 = pos;
r3 = parse_IF();
if (r3 === null) {
r3 = parse_UNLESS();
}
if (r3 !== null) {
r4 = parse__();
if (r4 !== null) {
r5 = parse_assignmentExpression();
if (r5 !== null) {
r0 = [r3, r4, r5];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 !== null) {
reportedPos = r1;
r0 = (function(kw, e) { return {type: kw, cond: e}; })(r3, r5);
}
if (r0 === null) {
pos = r1;
}
if (r0 === null) {
r1 = pos;
r2 = pos;
r3 = parse_WHILE();
if (r3 === null) {
r3 = parse_UNTIL();
}
if (r3 !== null) {
r4 = parse__();
if (r4 !== null) {
r5 = parse_assignmentExpression();
if (r5 !== null) {
r0 = [r3, r4, r5];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 !== null) {
reportedPos = r1;
r0 = (function(kw, e) { return {type: kw, cond: e}; })(r3, r5);
}
if (r0 === null) {
pos = r1;
}
if (r0 === null) {
r1 = pos;
r2 = pos;
r3 = parse_FOR();
if (r3 !== null) {
r4 = parse__();
if (r4 !== null) {
r6 = pos;
r7 = parse_Assignable();
if (r7 !== null) {
r8 = parse__();
if (r8 !== null) {
r10 = pos;
if (input.charCodeAt(pos) === 44) {
r11 = ",";
pos++;
} else {
r11 = null;
if (reportFailures === 0) {
matchFailed("\",\"");
}
}
if (r11 !== null) {
r12 = parse__();
if (r12 !== null) {
r13 = parse_Assignable();
if (r13 !== null) {
r14 = parse__();
if (r14 !== null) {
r9 = [r11, r12, r13, r14];
} else {
r9 = null;
pos = r10;
}
} else {
r9 = null;
pos = r10;
}
} else {
r9 = null;
pos = r10;
}
} else {
r9 = null;
pos = r10;
}
r9 = r9 !== null ? r9 : "";
if (r9 !== null) {
r5 = [r7, r8, r9];
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
r5 = r5 !== null ? r5 : "";
if (r5 !== null) {
r6 = parse_IN();
if (r6 !== null) {
r7 = parse__();
if (r7 !== null) {
r8 = parse_assignmentExpression();
if (r8 !== null) {
r10 = pos;
r11 = parse__();
if (r11 !== null) {
r12 = parse_BY();
if (r12 !== null) {
r13 = parse__();
if (r13 !== null) {
r14 = parse_assignmentExpression();
if (r14 !== null) {
r9 = [r11, r12, r13, r14];
} else {
r9 = null;
pos = r10;
}
} else {
r9 = null;
pos = r10;
}
} else {
r9 = null;
pos = r10;
}
} else {
r9 = null;
pos = r10;
}
r9 = r9 !== null ? r9 : "";
if (r9 !== null) {
r11 = pos;
r12 = parse__();
if (r12 !== null) {
r13 = parse_WHEN();
if (r13 !== null) {
r14 = parse__();
if (r14 !== null) {
r15 = parse_assignmentExpression();
if (r15 !== null) {
r10 = [r12, r13, r14, r15];
} else {
r10 = null;
pos = r11;
}
} else {
r10 = null;
pos = r11;
}
} else {
r10 = null;
pos = r11;
}
} else {
r10 = null;
pos = r11;
}
r10 = r10 !== null ? r10 : "";
if (r10 !== null) {
r0 = [r3, r4, r5, r6, r7, r8, r9, r10];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 !== null) {
reportedPos = r1;
r0 = (function(maybeVal, list, maybeStep, maybeFilter) {
var val = maybeVal ? maybeVal[0] : null,
key = maybeVal && maybeVal[2] ? maybeVal[2][2] : null,
step = maybeStep ? maybeStep[3] : new CS.Int(1).r('1').g(),
filter = maybeFilter ? maybeFilter[3] : null;
return 0,
{ type: 'for-in'
, val: val, key: key, list: list, step: step, filter: filter
};
})(r5, r8, r9, r10);
}
if (r0 === null) {
pos = r1;
}
if (r0 === null) {
r1 = pos;
r2 = pos;
r3 = parse_FOR();
if (r3 !== null) {
r4 = parse__();
if (r4 !== null) {
r6 = pos;
r7 = parse_OWN();
if (r7 !== null) {
r8 = parse__();
if (r8 !== null) {
r5 = [r7, r8];
} else {
r5 = null;
pos = r6;
}
} else {
r5 = null;
pos = r6;
}
r5 = r5 !== null ? r5 : "";
if (r5 !== null) {
r6 = parse_Assignable();
if (r6 !== null) {
r7 = parse__();
if (r7 !== null) {
r9 = pos;
if (input.charCodeAt(pos) === 44) {
r10 = ",";
pos++;
} else {
r10 = null;
if (reportFailures === 0) {
matchFailed("\",\"");
}
}
if (r10 !== null) {
r11 = parse__();
if (r11 !== null) {
r12 = parse_Assignable();
if (r12 !== null) {
r13 = parse__();
if (r13 !== null) {
r8 = [r10, r11, r12, r13];
} else {
r8 = null;
pos = r9;
}
} else {
r8 = null;
pos = r9;
}
} else {
r8 = null;
pos = r9;
}
} else {
r8 = null;
pos = r9;
}
r8 = r8 !== null ? r8 : "";
if (r8 !== null) {
r9 = parse_OF();
if (r9 !== null) {
r10 = parse__();
if (r10 !== null) {
r11 = parse_assignmentExpression();
if (r11 !== null) {
r13 = pos;
r14 = parse__();
if (r14 !== null) {
r15 = parse_WHEN();
if (r15 !== null) {
r16 = parse__();
if (r16 !== null) {
r17 = parse_assignmentExpression();
if (r17 !== null) {
r12 = [r14, r15, r16, r17];
} else {
r12 = null;
pos = r13;
}
} else {
r12 = null;
pos = r13;
}
} else {
r12 = null;
pos = r13;
}
} else {
r12 = null;
pos = r13;
}
r12 = r12 !== null ? r12 : "";
if (r12 !== null) {
r0 = [r3, r4, r5, r6, r7, r8, r9, r10, r11, r12];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 !== null) {
reportedPos = r1;
r0 = (function(maybeOwn, key, maybeVal, obj, maybeFilter) {
var own = !!maybeOwn,
val = maybeVal ? maybeVal[2] : null,
filter = maybeFilter ? maybeFilter[3] : null;
return 0,
{ type: 'for-of'
, own: own, key: key, val: val, obj: obj, filter: filter
};
})(r5, r6, r8, r11, r12);
}
if (r0 === null) {
pos = r1;
}
}
}
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_assignmentExpression() {
var cacheKey = "assignmentExpression@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0;
r0 = parse_assignmentOp();
if (r0 === null) {
r0 = parse_compoundAssignmentOp();
if (r0 === null) {
r0 = parse_existsAssignmentOp();
if (r0 === null) {
r0 = parse_binaryExpression();
}
}
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_assignmentOp() {
var cacheKey = "assignmentOp@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12;
r1 = pos;
r2 = pos;
r3 = parse_Assignable();
if (r3 !== null) {
r4 = parse__();
if (r4 !== null) {
if (input.charCodeAt(pos) === 61) {
r5 = "=";
pos++;
} else {
r5 = null;
if (reportFailures === 0) {
matchFailed("\"=\"");
}
}
if (r5 !== null) {
r7 = pos;
reportFailures++;
if (input.charCodeAt(pos) === 61) {
r6 = "=";
pos++;
} else {
r6 = null;
if (reportFailures === 0) {
matchFailed("\"=\"");
}
}
reportFailures--;
if (r6 === null) {
r6 = "";
} else {
r6 = null;
pos = r7;
}
if (r6 !== null) {
r8 = pos;
r9 = pos;
r10 = parse_TERMINDENT();
if (r10 !== null) {
r11 = parse_secondaryExpression();
if (r11 !== null) {
r12 = parse_DEDENT();
if (r12 !== null) {
r7 = [r10, r11, r12];
} else {
r7 = null;
pos = r9;
}
} else {
r7 = null;
pos = r9;
}
} else {
r7 = null;
pos = r9;
}
if (r7 !== null) {
reportedPos = r8;
r7 = (function(e) { return e; })(r11);
}
if (r7 === null) {
pos = r8;
}
if (r7 === null) {
r8 = pos;
r9 = pos;
r10 = parse_TERMINATOR();
r10 = r10 !== null ? r10 : "";
if (r10 !== null) {
r11 = parse__();
if (r11 !== null) {
r12 = parse_secondaryExpression();
if (r12 !== null) {
r7 = [r10, r11, r12];
} else {
r7 = null;
pos = r9;
}
} else {
r7 = null;
pos = r9;
}
} else {
r7 = null;
pos = r9;
}
if (r7 !== null) {
reportedPos = r8;
r7 = (function(e) { return e; })(r12);
}
if (r7 === null) {
pos = r8;
}
}
if (r7 !== null) {
r0 = [r3, r4, r5, r6, r7];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 !== null) {
reportedPos = r1;
r0 = (function(left, right) {
return rp(new CS.AssignOp(left, right));
})(r3, r7);
}
if (r0 === null) {
pos = r1;
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_compoundAssignmentOp() {
var cacheKey = "compoundAssignmentOp@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13;
r1 = pos;
r2 = pos;
r3 = parse_CompoundAssignable();
if (r3 !== null) {
r4 = parse__();
if (r4 !== null) {
r6 = pos;
reportFailures++;
if (input.charCodeAt(pos) === 63) {
r5 = "?";
pos++;
} else {
r5 = null;
if (reportFailures === 0) {
matchFailed("\"?\"");
}
}
reportFailures--;
if (r5 === null) {
r5 = "";
} else {
r5 = null;
pos = r6;
}
if (r5 !== null) {
r6 = parse_CompoundAssignmentOperators();
if (r6 !== null) {
if (input.charCodeAt(pos) === 61) {
r7 = "=";
pos++;
} else {
r7 = null;
if (reportFailures === 0) {
matchFailed("\"=\"");
}
}
if (r7 !== null) {
r9 = pos;
r10 = pos;
r11 = parse_TERMINDENT();
if (r11 !== null) {
r12 = parse_secondaryExpression();
if (r12 !== null) {
r13 = parse_DEDENT();
if (r13 !== null) {
r8 = [r11, r12, r13];
} else {
r8 = null;
pos = r10;
}
} else {
r8 = null;
pos = r10;
}
} else {
r8 = null;
pos = r10;
}
if (r8 !== null) {
reportedPos = r9;
r8 = (function(e) { return e; })(r12);
}
if (r8 === null) {
pos = r9;
}
if (r8 === null) {
r9 = pos;
r10 = pos;
r11 = parse_TERMINATOR();
r11 = r11 !== null ? r11 : "";
if (r11 !== null) {
r12 = parse__();
if (r12 !== null) {
r13 = parse_secondaryExpression();
if (r13 !== null) {
r8 = [r11, r12, r13];
} else {
r8 = null;
pos = r10;
}
} else {
r8 = null;
pos = r10;
}
} else {
r8 = null;
pos = r10;
}
if (r8 !== null) {
reportedPos = r9;
r8 = (function(e) { return e; })(r13);
}
if (r8 === null) {
pos = r9;
}
}
if (r8 !== null) {
r0 = [r3, r4, r5, r6, r7, r8];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 !== null) {
reportedPos = r1;
r0 = (function(left, op, right) {
return rp(new CS.CompoundAssignOp(constructorLookup[op].prototype.className, left, right));
})(r3, r6, r8);
}
if (r0 === null) {
pos = r1;
}
cache[cacheKey] = {
nextPos: pos,
result: r0
};
return r0;
}
function parse_CompoundAssignmentOperators() {
var cacheKey = "CompoundAssignmentOperators@" + pos;
var cachedResult = cache[cacheKey];
if (cachedResult) {
pos = cachedResult.nextPos;
return cachedResult.result;
}
var r0, r1, r2, r3, r4, r5;
r1 = pos;
if (input.substr(pos, 2) === "&&") {
r0 = "&&";
pos += 2;
} else {
r0 = null;
if (reportFailures === 0) {
matchFailed("\"&&\"");
}
}
if (r0 === null) {
r0 = parse_AND();
if (r0 === null) {
if (input.substr(pos, 2) === "||") {
r0 = "||";
pos += 2;
} else {
r0 = null;
if (reportFailures === 0) {
matchFailed("\"||\"");
}
}
if (r0 === null) {
r0 = parse_OR();
if (r0 === null) {
if (input.substr(pos, 2) === "**") {
r0 = "**";
pos += 2;
} else {
r0 = null;
if (reportFailures === 0) {
matchFailed("\"**\"");
}
}
if (r0 === null) {
if (/^[?&\^|*\/%]/.test(input.charAt(pos))) {
r0 = input.charAt(pos);
pos++;
} else {
r0 = null;
if (reportFailures === 0) {
matchFailed("[?&\\^|*\\/%]");
}
}
if (r0 === null) {
r2 = pos;
if (input.charCodeAt(pos) === 43) {
r3 = "+";
pos++;
} else {
r3 = null;
if (reportFailures === 0) {
matchFailed("\"+\"");
}
}
if (r3 !== null) {
r5 = pos;
reportFailures++;
if (input.charCodeAt(pos) === 43) {
r4 = "+";
pos++;
} else {
r4 = null;
if (reportFailures === 0) {
matchFailed("\"+\"");
}
}
reportFailures--;
if (r4 === null) {
r4 = "";
} else {
r4 = null;
pos = r5;
}
if (r4 !== null) {
r0 = [r3, r4];
} else {
r0 = null;
pos = r2;
}
} else {
r0 = null;
pos = r2;
}
if (r0 === null) {
r2 = pos;
if (input.charCodeAt(pos) === 45) {
r3 = "-";
pos++;
} else {
r3 = null;
if (reportFailures === 0) {