mirror of
https://github.com/gpujs/gpu.js.git
synced 2026-01-25 16:08:02 +00:00
915 lines
51 KiB
JavaScript
915 lines
51 KiB
JavaScript
/* parser generated by jison 0.4.13 */
|
|
/*
|
|
Returns a Parser object of the following structure:
|
|
|
|
Parser: {
|
|
yy: {}
|
|
}
|
|
|
|
Parser.prototype: {
|
|
yy: {},
|
|
trace: function(),
|
|
symbols_: {associative list: name ==> number},
|
|
terminals_: {associative list: number ==> name},
|
|
productions_: [...],
|
|
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
|
|
table: [...],
|
|
defaultActions: {...},
|
|
parseError: function(str, hash),
|
|
parse: function(input),
|
|
|
|
lexer: {
|
|
EOF: 1,
|
|
parseError: function(str, hash),
|
|
setInput: function(input),
|
|
input: function(),
|
|
unput: function(str),
|
|
more: function(),
|
|
less: function(n),
|
|
pastInput: function(),
|
|
upcomingInput: function(),
|
|
showPosition: function(),
|
|
test_match: function(regex_match_array, rule_index),
|
|
next: function(),
|
|
lex: function(),
|
|
begin: function(condition),
|
|
popState: function(),
|
|
_currentRules: function(),
|
|
topState: function(),
|
|
pushState: function(condition),
|
|
|
|
options: {
|
|
ranges: boolean (optional: true ==> token location info will include a .range[] member)
|
|
flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
|
|
backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
|
|
},
|
|
|
|
performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
|
|
rules: [...],
|
|
conditions: {associative list: name ==> set},
|
|
}
|
|
}
|
|
|
|
|
|
token location info (@$, _$, etc.): {
|
|
first_line: n,
|
|
last_line: n,
|
|
first_column: n,
|
|
last_column: n,
|
|
range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
|
|
}
|
|
|
|
|
|
the parseError function receives a 'hash' object with these members for lexer and parser errors: {
|
|
text: (matched text)
|
|
token: (the produced terminal token, if any)
|
|
line: (yylineno)
|
|
}
|
|
while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
|
|
loc: (yylloc)
|
|
expected: (string describing the set of expected tokens)
|
|
recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
|
|
}
|
|
*/
|
|
var parser = (function(){
|
|
var parser = {trace: function trace(){},
|
|
yy: {},
|
|
symbols_: {"error":2,"Statement":3,"Block":4,"VariableStatement":5,"ExpressionStatement":6,"ForStatement":7,"IfStatement":8,"BreakStatement":9,"ContinueStatement":10,"ReturnStatement":11,"{":12,"StatementList":13,"}":14,"VAR":15,"Variable":16,";":17,"AssignmentExpression":18,"Expression":19,"CONTINUE":20,"BREAK":21,"RETURN":22,"FOR":23,"(":24,")":25,"IF":26,"ELSE":27,"MatrixAccess":28,"MathExpression":29,"BooleanExpression":30,"StringLiteral":31,"NullLiteral":32,"NULL":33,"BooleanLiteral":34,"TRUE":35,"FALSE":36,"NumericLiteral":37,"NUMERIC_LITERAL":38,"STRING_LITERAL":39,"IDENTIFIER":40,"=":41,"FunctionExpression":42,"AssignmentOperator":43,"*=":44,"/=":45,"%=":46,"+=":47,"-=":48,"MatrixIndexList":49,"MatrixIndex":50,"[":51,"]":52,"ContextAccess":53,"THIS":54,"ContextAccessList":55,"ContextAccessObject":56,".":57,"AdditiveExpression":58,"PostfixMathExpression":59,"++":60,"--":61,"UnaryMathExpression":62,"UnaryMathExpr":63,"+":64,"-":65,"MultiplicativeExpression":66,"*":67,"UnaryExpression":68,"/":69,"%":70,"RelationalExpression":71,"UnaryBoolExpression":72,"<":73,">":74,"<=":75,">=":76,"EqualityExpression":77,"==":78,"!=":79,"===":80,"!==":81,"LogicalANDExpression":82,"&&":83,"BitwiseORExpression":84,"LogicalORExpression":85,"||":86,"UnaryBoolExpr":87,"!":88,"Program":89,"SourceElements":90,"EOF":91,"SourceElement":92,"FunctionDeclaration":93,"FUNCTION":94,"FunctionBody":95,"FormalParameterList":96,",":97,"$accept":0,"$end":1},
|
|
terminals_: {2:"error",12:"{",14:"}",15:"VAR",17:";",20:"CONTINUE",21:"BREAK",22:"RETURN",23:"FOR",24:"(",25:")",26:"IF",27:"ELSE",30:"BooleanExpression",33:"NULL",35:"TRUE",36:"FALSE",38:"NUMERIC_LITERAL",39:"STRING_LITERAL",40:"IDENTIFIER",41:"=",44:"*=",45:"/=",46:"%=",47:"+=",48:"-=",51:"[",52:"]",54:"THIS",57:".",60:"++",61:"--",64:"+",65:"-",67:"*",68:"UnaryExpression",69:"/",70:"%",72:"UnaryBoolExpression",73:"<",74:">",75:"<=",76:">=",78:"==",79:"!=",80:"===",81:"!==",83:"&&",84:"BitwiseORExpression",86:"||",88:"!",91:"EOF",94:"FUNCTION",97:","},
|
|
productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[4,3],[13,2],[13,0],[5,3],[5,3],[6,2],[10,2],[9,2],[11,2],[11,3],[7,9],[7,8],[7,8],[7,7],[7,8],[7,7],[7,7],[7,6],[8,5],[8,7],[19,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,3],[32,1],[34,1],[34,1],[37,1],[31,1],[16,1],[18,3],[18,3],[18,3],[43,1],[43,1],[43,1],[43,1],[43,1],[28,2],[49,2],[49,1],[50,3],[53,2],[55,2],[55,1],[56,2],[29,1],[59,1],[59,2],[59,2],[62,1],[62,1],[63,2],[63,2],[63,2],[63,2],[66,1],[66,1],[66,3],[66,3],[66,3],[58,1],[58,3],[58,3],[71,1],[71,1],[71,3],[71,3],[71,3],[71,3],[77,1],[77,3],[77,3],[77,3],[77,3],[82,1],[82,3],[85,1],[85,3],[87,2],[87,1],[89,2],[90,2],[90,0],[92,1],[92,1],[93,7],[93,8],[42,7],[42,8],[42,6],[42,7],[96,1],[96,3],[95,1]],
|
|
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */
|
|
/**/) {
|
|
/* this == yyval */
|
|
|
|
var $0 = $$.length - 1;
|
|
switch (yystate) {
|
|
case 9:
|
|
this.$ = new BlockStatementNode($$[$0-1]);
|
|
|
|
break;
|
|
case 10:
|
|
this.$ = $$[$0-1].concat($$[$0]);
|
|
|
|
break;
|
|
case 11:
|
|
this.$ = [];
|
|
|
|
break;
|
|
case 12:
|
|
this.$ = new VariableDeclaratorNode($$[$0-1], null);
|
|
|
|
break;
|
|
case 13:
|
|
this.$ = new VariableDeclaratorNode($$[$0-1].left, $$[$0-1].right);
|
|
|
|
break;
|
|
case 14:
|
|
this.$ = new ExpressionStatementNode($$[$0-1]);
|
|
|
|
break;
|
|
case 15:
|
|
this.$ = new ContinueStatementNode();
|
|
|
|
break;
|
|
case 16:
|
|
this.$ = new BreakStatementNode();
|
|
|
|
break;
|
|
case 17:
|
|
this.$ = new ReturnStatementNode(null);
|
|
|
|
break;
|
|
case 18:
|
|
this.$ = new ReturnStatementNode($$[$0-1]);
|
|
|
|
break;
|
|
case 19:
|
|
this.$ = new ForStatementNode($$[$0-6], $$[$0-4], $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 20:
|
|
this.$ = new ForStatementNode($$[$0-5], $$[$0-3], null, $$[$0]);
|
|
|
|
break;
|
|
case 21:
|
|
this.$ = new ForStatementNode($$[$0-5], null, $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 22:
|
|
this.$ = new ForStatementNode($$[$0-4], null, null, $$[$0]);
|
|
|
|
break;
|
|
case 23:
|
|
this.$ = new ForStatementNode(null, $$[$0-4], $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 24:
|
|
this.$ = new ForStatementNode(null, $$[$0-3], null, $$[$0]);
|
|
|
|
break;
|
|
case 25:
|
|
this.$ = new ForStatementNode(null, null, $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 26:
|
|
this.$ = new ForStatementNode(null, null, null, $$[$0]);
|
|
|
|
break;
|
|
case 27:
|
|
this.$ = new IfStatementNode($$[$0-2], $$[$0], null);
|
|
|
|
break;
|
|
case 28:
|
|
this.$ = new IfStatementNode($$[$0-4], $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 36:
|
|
this.$ = new LiteralNode(null);
|
|
|
|
break;
|
|
case 37:
|
|
this.$ = new LiteralNode(true);
|
|
|
|
break;
|
|
case 38:
|
|
this.$ = new LiteralNode(false);
|
|
|
|
break;
|
|
case 39:
|
|
this.$ = new LiteralNode(parseNumericLiteral($$[$0]));
|
|
|
|
break;
|
|
case 40:
|
|
this.$ = new LiteralNode($$[$0]);
|
|
|
|
break;
|
|
case 41:
|
|
this.$ = new IdentifierNode($$[$0]);
|
|
|
|
break;
|
|
case 42:
|
|
this.$ = new AssignmentExpressionNode("=", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 43:
|
|
this.$ = new AssignmentExpressionNode("=", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 44:
|
|
this.$ = new AssignmentExpressionNode($$[$0-1], $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 50:
|
|
this.$ = new MatrixAccessNode($$[$0-1], $$[$0]);
|
|
|
|
break;
|
|
case 51:
|
|
this.$ = $$[$0-1].concat($$[$0]);
|
|
|
|
break;
|
|
case 52:
|
|
this.$ = [$$[$0]];
|
|
|
|
break;
|
|
case 53:
|
|
this.$ = $$[$0-2];
|
|
|
|
break;
|
|
case 54:
|
|
this.$ = new ContextAccessNode($$[$0]);
|
|
|
|
break;
|
|
case 55:
|
|
this.$ = $$[$0-1].concat($$[$0]);
|
|
|
|
break;
|
|
case 56:
|
|
this.$ = [$$[$0]];
|
|
|
|
break;
|
|
case 57:
|
|
this.$ = $$[$0];
|
|
|
|
break;
|
|
case 58:
|
|
this.$ = new MathExpressionNode($$[$0]);
|
|
|
|
break;
|
|
case 60:
|
|
this.$ = new UpdateExpressionNode("++", $$[$0-1], false);
|
|
|
|
break;
|
|
case 61:
|
|
this.$ = new UpdateExpressionNode("--", $$[$0-1], false);
|
|
|
|
break;
|
|
case 64:
|
|
this.$ = new UpdateExpressionNode("++", $$[$0], true);
|
|
|
|
break;
|
|
case 65:
|
|
this.$ = new UpdateExpressionNode("--", $$[$0], true);
|
|
|
|
break;
|
|
case 66:
|
|
this.$ = new UnaryExpressionNode("+", true, $$[$0]);
|
|
|
|
break;
|
|
case 67:
|
|
this.$ = new UnaryExpressionNode("-", true, $$[$0]);
|
|
|
|
break;
|
|
case 70:
|
|
this.$ = new BinaryExpressionNode("*", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 71:
|
|
this.$ = new BinaryExpressionNode("/", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 72:
|
|
this.$ = new BinaryExpressionNode("%", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 74:
|
|
this.$ = new BinaryExpressionNode("+", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 75:
|
|
this.$ = new BinaryExpressionNode("-", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 78:
|
|
this.$ = new BinaryExpressionNode("<", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 79:
|
|
this.$ = new BinaryExpressionNode(">", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 80:
|
|
this.$ = new BinaryExpressionNode("<=", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 81:
|
|
this.$ = new BinaryExpressionNode(">=", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 83:
|
|
this.$ = new BinaryExpressionNode("==", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 84:
|
|
this.$ = new BinaryExpressionNode("!=", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 85:
|
|
this.$ = new BinaryExpressionNode("===", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 86:
|
|
this.$ = new BinaryExpressionNode("!==", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 88:
|
|
this.$ = new LogicalExpressionNode("&&", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 90:
|
|
this.$ = new LogicalExpressionNode("||", $$[$0-2], $$[$0]);
|
|
|
|
break;
|
|
case 91:
|
|
this.$ = new UnaryExpressionNode("!", true, $$[$0]);
|
|
|
|
break;
|
|
case 93:
|
|
this.$ = new ProgramNode($$[$0-1]);
|
|
return this.$;
|
|
|
|
break;
|
|
case 94:
|
|
this.$ = $$[$0-1].concat($$[$0]);
|
|
|
|
break;
|
|
case 95:
|
|
this.$ = [];
|
|
|
|
break;
|
|
case 98:
|
|
this.$ = new FunctionDeclarationNode(new IdentifierNode($$[$0-5]), [], $$[$0-1], false, false);
|
|
|
|
break;
|
|
case 99:
|
|
this.$ = new FunctionDeclarationNode(new IdentifierNode($$[$0-6]), $$[$0-4], $$[$0-1], false, false);
|
|
|
|
break;
|
|
case 100:
|
|
this.$ = new FunctionDeclarationNode(new IdentifierNode($$[$0-5]), [], $$[$0-1], false, false);
|
|
|
|
break;
|
|
case 101:
|
|
this.$ = new FunctionDeclarationNode(new IdentifierNode($$[$0-6]), $$[$0-4], $$[$0-1], false, false);
|
|
|
|
break;
|
|
case 102:
|
|
this.$ = new FunctionDeclarationNode(null, [], $$[$0-1], false, false);
|
|
|
|
break;
|
|
case 103:
|
|
this.$ = new FunctionDeclarationNode(null, $$[$0-4], $$[$0-1], false, false);
|
|
|
|
break;
|
|
case 104:
|
|
this.$ = [new IdentifierNode($$[$0])];
|
|
|
|
break;
|
|
case 105:
|
|
this.$ = $$[$0-2].concat(new IdentifierNode($$[$0]));
|
|
|
|
break;
|
|
}
|
|
},
|
|
table: [{12:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],89:1,90:2,91:[2,95],94:[2,95]},{1:[3]},{3:5,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34,91:[1,3],92:4,93:6,94:[1,15]},{1:[2,93]},{12:[2,94],14:[2,94],15:[2,94],20:[2,94],21:[2,94],22:[2,94],23:[2,94],24:[2,94],26:[2,94],30:[2,94],38:[2,94],39:[2,94],40:[2,94],54:[2,94],60:[2,94],61:[2,94],64:[2,94],65:[2,94],91:[2,94],94:[2,94]},{12:[2,96],14:[2,96],15:[2,96],20:[2,96],21:[2,96],22:[2,96],23:[2,96],24:[2,96],26:[2,96],30:[2,96],38:[2,96],39:[2,96],40:[2,96],54:[2,96],60:[2,96],61:[2,96],64:[2,96],65:[2,96],91:[2,96],94:[2,96]},{12:[2,97],14:[2,97],15:[2,97],20:[2,97],21:[2,97],22:[2,97],23:[2,97],24:[2,97],26:[2,97],30:[2,97],38:[2,97],39:[2,97],40:[2,97],54:[2,97],60:[2,97],61:[2,97],64:[2,97],65:[2,97],91:[2,97],94:[2,97]},{12:[2,1],14:[2,1],15:[2,1],20:[2,1],21:[2,1],22:[2,1],23:[2,1],24:[2,1],26:[2,1],27:[2,1],30:[2,1],38:[2,1],39:[2,1],40:[2,1],54:[2,1],60:[2,1],61:[2,1],64:[2,1],65:[2,1],91:[2,1],94:[2,1]},{12:[2,2],14:[2,2],15:[2,2],20:[2,2],21:[2,2],22:[2,2],23:[2,2],24:[2,2],26:[2,2],27:[2,2],30:[2,2],38:[2,2],39:[2,2],40:[2,2],54:[2,2],60:[2,2],61:[2,2],64:[2,2],65:[2,2],91:[2,2],94:[2,2]},{12:[2,3],14:[2,3],15:[2,3],20:[2,3],21:[2,3],22:[2,3],23:[2,3],24:[2,3],26:[2,3],27:[2,3],30:[2,3],38:[2,3],39:[2,3],40:[2,3],54:[2,3],60:[2,3],61:[2,3],64:[2,3],65:[2,3],91:[2,3],94:[2,3]},{12:[2,4],14:[2,4],15:[2,4],20:[2,4],21:[2,4],22:[2,4],23:[2,4],24:[2,4],26:[2,4],27:[2,4],30:[2,4],38:[2,4],39:[2,4],40:[2,4],54:[2,4],60:[2,4],61:[2,4],64:[2,4],65:[2,4],91:[2,4],94:[2,4]},{12:[2,5],14:[2,5],15:[2,5],20:[2,5],21:[2,5],22:[2,5],23:[2,5],24:[2,5],26:[2,5],27:[2,5],30:[2,5],38:[2,5],39:[2,5],40:[2,5],54:[2,5],60:[2,5],61:[2,5],64:[2,5],65:[2,5],91:[2,5],94:[2,5]},{12:[2,6],14:[2,6],15:[2,6],20:[2,6],21:[2,6],22:[2,6],23:[2,6],24:[2,6],26:[2,6],27:[2,6],30:[2,6],38:[2,6],39:[2,6],40:[2,6],54:[2,6],60:[2,6],61:[2,6],64:[2,6],65:[2,6],91:[2,6],94:[2,6]},{12:[2,7],14:[2,7],15:[2,7],20:[2,7],21:[2,7],22:[2,7],23:[2,7],24:[2,7],26:[2,7],27:[2,7],30:[2,7],38:[2,7],39:[2,7],40:[2,7],54:[2,7],60:[2,7],61:[2,7],64:[2,7],65:[2,7],91:[2,7],94:[2,7]},{12:[2,8],14:[2,8],15:[2,8],20:[2,8],21:[2,8],22:[2,8],23:[2,8],24:[2,8],26:[2,8],27:[2,8],30:[2,8],38:[2,8],39:[2,8],40:[2,8],54:[2,8],60:[2,8],61:[2,8],64:[2,8],65:[2,8],91:[2,8],94:[2,8]},{40:[1,46]},{12:[2,11],13:47,14:[2,11],15:[2,11],20:[2,11],21:[2,11],22:[2,11],23:[2,11],24:[2,11],26:[2,11],30:[2,11],38:[2,11],39:[2,11],40:[2,11],54:[2,11],60:[2,11],61:[2,11],64:[2,11],65:[2,11]},{16:48,18:49,40:[1,31]},{17:[1,50]},{24:[1,51]},{24:[1,52]},{17:[1,53]},{17:[1,54]},{16:24,17:[1,55],18:25,19:56,24:[1,30],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{17:[2,29],25:[2,29],41:[1,57],43:58,44:[1,62],45:[1,63],46:[1,64],47:[1,65],48:[1,66],49:59,50:67,51:[1,68],60:[1,60],61:[1,61]},{17:[2,30],25:[2,30]},{17:[2,31],25:[2,31]},{17:[2,32],25:[2,32]},{17:[2,33],25:[2,33]},{17:[2,34],25:[2,34]},{16:24,18:25,19:69,24:[1,30],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{17:[2,41],25:[2,41],41:[2,41],44:[2,41],45:[2,41],46:[2,41],47:[2,41],48:[2,41],51:[2,41],60:[2,41],61:[2,41]},{17:[2,58],25:[2,58],52:[2,58],64:[1,70],65:[1,71]},{17:[2,40],25:[2,40]},{17:[2,73],25:[2,73],52:[2,73],64:[2,73],65:[2,73],67:[1,72],69:[1,73],70:[1,74]},{17:[2,68],25:[2,68],52:[2,68],64:[2,68],65:[2,68],67:[2,68],69:[2,68],70:[2,68]},{17:[2,69],25:[2,69],52:[2,69],64:[2,69],65:[2,69],67:[2,69],69:[2,69],70:[2,69]},{17:[2,62],25:[2,62],52:[2,62],64:[2,62],65:[2,62],67:[2,62],69:[2,62],70:[2,62]},{17:[2,63],25:[2,63],52:[2,63],64:[2,63],65:[2,63],67:[2,63],69:[2,63],70:[2,63]},{55:75,56:76,57:[1,77]},{17:[2,59],25:[2,59],52:[2,59],64:[2,59],65:[2,59],67:[2,59],69:[2,59],70:[2,59]},{16:79,37:40,38:[1,45],40:[1,31],59:37,60:[1,41],61:[1,42],62:78,63:38,64:[1,43],65:[1,44]},{16:79,37:40,38:[1,45],40:[1,31],59:37,60:[1,41],61:[1,42],62:80,63:38,64:[1,43],65:[1,44]},{16:79,37:40,38:[1,45],40:[1,31],59:37,60:[1,41],61:[1,42],62:81,63:38,64:[1,43],65:[1,44]},{16:79,37:40,38:[1,45],40:[1,31],59:37,60:[1,41],61:[1,42],62:82,63:38,64:[1,43],65:[1,44]},{17:[2,39],25:[2,39],52:[2,39],64:[2,39],65:[2,39],67:[2,39],69:[2,39],70:[2,39]},{24:[1,83]},{3:85,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],14:[1,84],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{17:[1,86],41:[1,57],43:58,44:[1,62],45:[1,63],46:[1,64],47:[1,65],48:[1,66]},{17:[1,87]},{12:[2,14],14:[2,14],15:[2,14],20:[2,14],21:[2,14],22:[2,14],23:[2,14],24:[2,14],26:[2,14],27:[2,14],30:[2,14],38:[2,14],39:[2,14],40:[2,14],54:[2,14],60:[2,14],61:[2,14],64:[2,14],65:[2,14],91:[2,14],94:[2,14]},{16:24,17:[1,89],18:25,19:88,24:[1,30],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{16:24,18:25,19:90,24:[1,30],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[2,16],14:[2,16],15:[2,16],20:[2,16],21:[2,16],22:[2,16],23:[2,16],24:[2,16],26:[2,16],27:[2,16],30:[2,16],38:[2,16],39:[2,16],40:[2,16],54:[2,16],60:[2,16],61:[2,16],64:[2,16],65:[2,16],91:[2,16],94:[2,16]},{12:[2,15],14:[2,15],15:[2,15],20:[2,15],21:[2,15],22:[2,15],23:[2,15],24:[2,15],26:[2,15],27:[2,15],30:[2,15],38:[2,15],39:[2,15],40:[2,15],54:[2,15],60:[2,15],61:[2,15],64:[2,15],65:[2,15],91:[2,15],94:[2,15]},{12:[2,17],14:[2,17],15:[2,17],20:[2,17],21:[2,17],22:[2,17],23:[2,17],24:[2,17],26:[2,17],27:[2,17],30:[2,17],38:[2,17],39:[2,17],40:[2,17],54:[2,17],60:[2,17],61:[2,17],64:[2,17],65:[2,17],91:[2,17],94:[2,17]},{17:[1,91]},{16:79,29:92,37:40,38:[1,45],40:[1,31],42:93,53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34,94:[1,94]},{16:79,29:95,37:40,38:[1,45],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{17:[2,50],25:[2,50],50:96,51:[1,68]},{17:[2,60],25:[2,60],52:[2,60],64:[2,60],65:[2,60],67:[2,60],69:[2,60],70:[2,60]},{17:[2,61],25:[2,61],52:[2,61],64:[2,61],65:[2,61],67:[2,61],69:[2,61],70:[2,61]},{38:[2,45],40:[2,45],54:[2,45],60:[2,45],61:[2,45],64:[2,45],65:[2,45]},{38:[2,46],40:[2,46],54:[2,46],60:[2,46],61:[2,46],64:[2,46],65:[2,46]},{38:[2,47],40:[2,47],54:[2,47],60:[2,47],61:[2,47],64:[2,47],65:[2,47]},{38:[2,48],40:[2,48],54:[2,48],60:[2,48],61:[2,48],64:[2,48],65:[2,48]},{38:[2,49],40:[2,49],54:[2,49],60:[2,49],61:[2,49],64:[2,49],65:[2,49]},{17:[2,52],25:[2,52],51:[2,52]},{16:79,29:97,37:40,38:[1,45],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{25:[1,98]},{16:79,37:40,38:[1,45],40:[1,31],53:36,54:[1,39],59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:99},{16:79,37:40,38:[1,45],40:[1,31],53:36,54:[1,39],59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:100},{68:[1,101]},{68:[1,102]},{68:[1,103]},{17:[2,54],25:[2,54],52:[2,54],56:104,57:[1,77],64:[2,54],65:[2,54],67:[2,54],69:[2,54],70:[2,54]},{17:[2,56],25:[2,56],52:[2,56],57:[2,56],64:[2,56],65:[2,56],67:[2,56],69:[2,56],70:[2,56]},{40:[1,105]},{17:[2,64],25:[2,64],52:[2,64],64:[2,64],65:[2,64],67:[2,64],69:[2,64],70:[2,64]},{60:[1,60],61:[1,61]},{17:[2,65],25:[2,65],52:[2,65],64:[2,65],65:[2,65],67:[2,65],69:[2,65],70:[2,65]},{17:[2,66],25:[2,66],52:[2,66],64:[2,66],65:[2,66],67:[2,66],69:[2,66],70:[2,66]},{17:[2,67],25:[2,67],52:[2,67],64:[2,67],65:[2,67],67:[2,67],69:[2,67],70:[2,67]},{25:[1,106],40:[1,108],96:107},{12:[2,9],14:[2,9],15:[2,9],20:[2,9],21:[2,9],22:[2,9],23:[2,9],24:[2,9],26:[2,9],27:[2,9],30:[2,9],38:[2,9],39:[2,9],40:[2,9],54:[2,9],60:[2,9],61:[2,9],64:[2,9],65:[2,9],91:[2,9],94:[2,9]},{12:[2,10],14:[2,10],15:[2,10],20:[2,10],21:[2,10],22:[2,10],23:[2,10],24:[2,10],26:[2,10],30:[2,10],38:[2,10],39:[2,10],40:[2,10],54:[2,10],60:[2,10],61:[2,10],64:[2,10],65:[2,10]},{12:[2,12],14:[2,12],15:[2,12],20:[2,12],21:[2,12],22:[2,12],23:[2,12],24:[2,12],26:[2,12],27:[2,12],30:[2,12],38:[2,12],39:[2,12],40:[2,12],54:[2,12],60:[2,12],61:[2,12],64:[2,12],65:[2,12],91:[2,12],94:[2,12]},{12:[2,13],14:[2,13],15:[2,13],20:[2,13],21:[2,13],22:[2,13],23:[2,13],24:[2,13],26:[2,13],27:[2,13],30:[2,13],38:[2,13],39:[2,13],40:[2,13],54:[2,13],60:[2,13],61:[2,13],64:[2,13],65:[2,13],91:[2,13],94:[2,13]},{17:[1,109]},{16:24,17:[1,111],18:25,19:110,24:[1,30],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{25:[1,112]},{12:[2,18],14:[2,18],15:[2,18],20:[2,18],21:[2,18],22:[2,18],23:[2,18],24:[2,18],26:[2,18],27:[2,18],30:[2,18],38:[2,18],39:[2,18],40:[2,18],54:[2,18],60:[2,18],61:[2,18],64:[2,18],65:[2,18],91:[2,18],94:[2,18]},{17:[2,42],25:[2,42]},{17:[2,43],25:[2,43]},{24:[1,114],40:[1,113]},{17:[2,44],25:[2,44]},{17:[2,51],25:[2,51],51:[2,51]},{52:[1,115]},{17:[2,35],25:[2,35]},{17:[2,74],25:[2,74],52:[2,74],64:[2,74],65:[2,74],67:[1,72],69:[1,73],70:[1,74]},{17:[2,75],25:[2,75],52:[2,75],64:[2,75],65:[2,75],67:[1,72],69:[1,73],70:[1,74]},{17:[2,70],25:[2,70],52:[2,70],64:[2,70],65:[2,70],67:[2,70],69:[2,70],70:[2,70]},{17:[2,71],25:[2,71],52:[2,71],64:[2,71],65:[2,71],67:[2,71],69:[2,71],70:[2,71]},{17:[2,72],25:[2,72],52:[2,72],64:[2,72],65:[2,72],67:[2,72],69:[2,72],70:[2,72]},{17:[2,55],25:[2,55],52:[2,55],57:[2,55],64:[2,55],65:[2,55],67:[2,55],69:[2,55],70:[2,55]},{17:[2,57],25:[2,57],52:[2,57],57:[2,57],64:[2,57],65:[2,57],67:[2,57],69:[2,57],70:[2,57]},{12:[1,116]},{25:[1,117],97:[1,118]},{25:[2,104],97:[2,104]},{16:24,17:[1,120],18:25,19:119,24:[1,30],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{17:[1,121]},{16:24,18:25,19:122,24:[1,30],25:[1,123],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{3:124,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{24:[1,125]},{25:[1,126],40:[1,108],96:127},{17:[2,53],25:[2,53],51:[2,53]},{12:[2,95],14:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],90:129,94:[2,95],95:128},{12:[1,130]},{40:[1,131]},{17:[1,132]},{16:24,18:25,19:133,24:[1,30],25:[1,134],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{16:24,18:25,19:135,24:[1,30],25:[1,136],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{25:[1,137]},{3:138,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[2,27],14:[2,27],15:[2,27],20:[2,27],21:[2,27],22:[2,27],23:[2,27],24:[2,27],26:[2,27],27:[1,139],30:[2,27],38:[2,27],39:[2,27],40:[2,27],54:[2,27],60:[2,27],61:[2,27],64:[2,27],65:[2,27],91:[2,27],94:[2,27]},{25:[1,140],40:[1,108],96:141},{12:[1,142]},{25:[1,143],97:[1,118]},{14:[1,144]},{3:5,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],14:[2,106],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34,92:4,93:6,94:[1,15]},{12:[2,95],14:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],90:129,94:[2,95],95:145},{25:[2,105],97:[2,105]},{16:24,18:25,19:146,24:[1,30],25:[1,147],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{25:[1,148]},{3:149,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{25:[1,150]},{3:151,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{3:152,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[2,26],14:[2,26],15:[2,26],20:[2,26],21:[2,26],22:[2,26],23:[2,26],24:[2,26],26:[2,26],27:[2,26],30:[2,26],38:[2,26],39:[2,26],40:[2,26],54:[2,26],60:[2,26],61:[2,26],64:[2,26],65:[2,26],91:[2,26],94:[2,26]},{3:153,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[1,154]},{25:[1,155],97:[1,118]},{12:[2,95],14:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],90:129,94:[2,95],95:156},{12:[1,157]},{12:[2,98],14:[2,98],15:[2,98],20:[2,98],21:[2,98],22:[2,98],23:[2,98],24:[2,98],26:[2,98],30:[2,98],38:[2,98],39:[2,98],40:[2,98],54:[2,98],60:[2,98],61:[2,98],64:[2,98],65:[2,98],91:[2,98],94:[2,98]},{14:[1,158]},{25:[1,159]},{3:160,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{3:161,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[2,22],14:[2,22],15:[2,22],20:[2,22],21:[2,22],22:[2,22],23:[2,22],24:[2,22],26:[2,22],27:[2,22],30:[2,22],38:[2,22],39:[2,22],40:[2,22],54:[2,22],60:[2,22],61:[2,22],64:[2,22],65:[2,22],91:[2,22],94:[2,22]},{3:162,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[2,24],14:[2,24],15:[2,24],20:[2,24],21:[2,24],22:[2,24],23:[2,24],24:[2,24],26:[2,24],27:[2,24],30:[2,24],38:[2,24],39:[2,24],40:[2,24],54:[2,24],60:[2,24],61:[2,24],64:[2,24],65:[2,24],91:[2,24],94:[2,24]},{12:[2,25],14:[2,25],15:[2,25],20:[2,25],21:[2,25],22:[2,25],23:[2,25],24:[2,25],26:[2,25],27:[2,25],30:[2,25],38:[2,25],39:[2,25],40:[2,25],54:[2,25],60:[2,25],61:[2,25],64:[2,25],65:[2,25],91:[2,25],94:[2,25]},{12:[2,28],14:[2,28],15:[2,28],20:[2,28],21:[2,28],22:[2,28],23:[2,28],24:[2,28],26:[2,28],27:[2,28],30:[2,28],38:[2,28],39:[2,28],40:[2,28],54:[2,28],60:[2,28],61:[2,28],64:[2,28],65:[2,28],91:[2,28],94:[2,28]},{12:[2,95],14:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],90:129,94:[2,95],95:163},{12:[1,164]},{14:[1,165]},{12:[2,95],14:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],90:129,94:[2,95],95:166},{12:[2,99],14:[2,99],15:[2,99],20:[2,99],21:[2,99],22:[2,99],23:[2,99],24:[2,99],26:[2,99],30:[2,99],38:[2,99],39:[2,99],40:[2,99],54:[2,99],60:[2,99],61:[2,99],64:[2,99],65:[2,99],91:[2,99],94:[2,99]},{3:167,4:7,5:8,6:9,7:10,8:11,9:12,10:13,11:14,12:[1,16],15:[1,17],16:24,18:25,19:18,20:[1,22],21:[1,21],22:[1,23],23:[1,19],24:[1,30],26:[1,20],28:26,29:27,30:[1,28],31:29,37:40,38:[1,45],39:[1,33],40:[1,31],53:36,54:[1,39],58:32,59:37,60:[1,41],61:[1,42],62:35,63:38,64:[1,43],65:[1,44],66:34},{12:[2,20],14:[2,20],15:[2,20],20:[2,20],21:[2,20],22:[2,20],23:[2,20],24:[2,20],26:[2,20],27:[2,20],30:[2,20],38:[2,20],39:[2,20],40:[2,20],54:[2,20],60:[2,20],61:[2,20],64:[2,20],65:[2,20],91:[2,20],94:[2,20]},{12:[2,21],14:[2,21],15:[2,21],20:[2,21],21:[2,21],22:[2,21],23:[2,21],24:[2,21],26:[2,21],27:[2,21],30:[2,21],38:[2,21],39:[2,21],40:[2,21],54:[2,21],60:[2,21],61:[2,21],64:[2,21],65:[2,21],91:[2,21],94:[2,21]},{12:[2,23],14:[2,23],15:[2,23],20:[2,23],21:[2,23],22:[2,23],23:[2,23],24:[2,23],26:[2,23],27:[2,23],30:[2,23],38:[2,23],39:[2,23],40:[2,23],54:[2,23],60:[2,23],61:[2,23],64:[2,23],65:[2,23],91:[2,23],94:[2,23]},{14:[1,168]},{12:[2,95],14:[2,95],15:[2,95],20:[2,95],21:[2,95],22:[2,95],23:[2,95],24:[2,95],26:[2,95],30:[2,95],38:[2,95],39:[2,95],40:[2,95],54:[2,95],60:[2,95],61:[2,95],64:[2,95],65:[2,95],90:129,94:[2,95],95:169},{17:[2,102],25:[2,102]},{14:[1,170]},{12:[2,19],14:[2,19],15:[2,19],20:[2,19],21:[2,19],22:[2,19],23:[2,19],24:[2,19],26:[2,19],27:[2,19],30:[2,19],38:[2,19],39:[2,19],40:[2,19],54:[2,19],60:[2,19],61:[2,19],64:[2,19],65:[2,19],91:[2,19],94:[2,19]},{17:[2,100],25:[2,100]},{14:[1,171]},{17:[2,103],25:[2,103]},{17:[2,101],25:[2,101]}],
|
|
defaultActions: {3:[2,93]},
|
|
parseError: function parseError(str,hash){if(hash.recoverable){this.trace(str)}else{throw new Error(str)}},
|
|
parse: function parse(input) {
|
|
var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
|
|
var args = lstack.slice.call(arguments, 1);
|
|
this.lexer.setInput(input);
|
|
this.lexer.yy = this.yy;
|
|
this.yy.lexer = this.lexer;
|
|
this.yy.parser = this;
|
|
if (typeof this.lexer.yylloc == 'undefined') {
|
|
this.lexer.yylloc = {};
|
|
}
|
|
var yyloc = this.lexer.yylloc;
|
|
lstack.push(yyloc);
|
|
var ranges = this.lexer.options && this.lexer.options.ranges;
|
|
if (typeof this.yy.parseError === 'function') {
|
|
this.parseError = this.yy.parseError;
|
|
} else {
|
|
this.parseError = Object.getPrototypeOf(this).parseError;
|
|
}
|
|
function popStack(n) {
|
|
stack.length = stack.length - 2 * n;
|
|
vstack.length = vstack.length - n;
|
|
lstack.length = lstack.length - n;
|
|
}
|
|
function lex() {
|
|
var token;
|
|
token = self.lexer.lex() || EOF;
|
|
if (typeof token !== 'number') {
|
|
token = self.symbols_[token] || token;
|
|
}
|
|
return token;
|
|
}
|
|
var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
|
|
while (true) {
|
|
state = stack[stack.length - 1];
|
|
if (this.defaultActions[state]) {
|
|
action = this.defaultActions[state];
|
|
} else {
|
|
if (symbol === null || typeof symbol == 'undefined') {
|
|
symbol = lex();
|
|
}
|
|
action = table[state] && table[state][symbol];
|
|
}
|
|
if (typeof action === 'undefined' || !action.length || !action[0]) {
|
|
var errStr = '';
|
|
expected = [];
|
|
for (p in table[state]) {
|
|
if (this.terminals_[p] && p > TERROR) {
|
|
expected.push('\'' + this.terminals_[p] + '\'');
|
|
}
|
|
}
|
|
if (this.lexer.showPosition) {
|
|
errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + this.lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
|
|
} else {
|
|
errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
|
|
}
|
|
this.parseError(errStr, {
|
|
text: this.lexer.match,
|
|
token: this.terminals_[symbol] || symbol,
|
|
line: this.lexer.yylineno,
|
|
loc: yyloc,
|
|
expected: expected
|
|
});
|
|
}
|
|
if (action[0] instanceof Array && action.length > 1) {
|
|
throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
|
|
}
|
|
switch (action[0]) {
|
|
case 1:
|
|
stack.push(symbol);
|
|
vstack.push(this.lexer.yytext);
|
|
lstack.push(this.lexer.yylloc);
|
|
stack.push(action[1]);
|
|
symbol = null;
|
|
if (!preErrorSymbol) {
|
|
yyleng = this.lexer.yyleng;
|
|
yytext = this.lexer.yytext;
|
|
yylineno = this.lexer.yylineno;
|
|
yyloc = this.lexer.yylloc;
|
|
if (recovering > 0) {
|
|
recovering--;
|
|
}
|
|
} else {
|
|
symbol = preErrorSymbol;
|
|
preErrorSymbol = null;
|
|
}
|
|
break;
|
|
case 2:
|
|
len = this.productions_[action[1]][1];
|
|
yyval.$ = vstack[vstack.length - len];
|
|
yyval._$ = {
|
|
first_line: lstack[lstack.length - (len || 1)].first_line,
|
|
last_line: lstack[lstack.length - 1].last_line,
|
|
first_column: lstack[lstack.length - (len || 1)].first_column,
|
|
last_column: lstack[lstack.length - 1].last_column
|
|
};
|
|
if (ranges) {
|
|
yyval._$.range = [
|
|
lstack[lstack.length - (len || 1)].range[0],
|
|
lstack[lstack.length - 1].range[1]
|
|
];
|
|
}
|
|
r = this.performAction.apply(yyval, [
|
|
yytext,
|
|
yyleng,
|
|
yylineno,
|
|
this.yy,
|
|
action[1],
|
|
vstack,
|
|
lstack
|
|
].concat(args));
|
|
if (typeof r !== 'undefined') {
|
|
return r;
|
|
}
|
|
if (len) {
|
|
stack = stack.slice(0, -1 * len * 2);
|
|
vstack = vstack.slice(0, -1 * len);
|
|
lstack = lstack.slice(0, -1 * len);
|
|
}
|
|
stack.push(this.productions_[action[1]][0]);
|
|
vstack.push(yyval.$);
|
|
lstack.push(yyval._$);
|
|
newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
|
|
stack.push(newState);
|
|
break;
|
|
case 3:
|
|
return true;
|
|
}
|
|
}
|
|
return true;
|
|
}};
|
|
|
|
|
|
function parseNumericLiteral(literal) {
|
|
if (literal.charAt(0) === "0") {
|
|
if (literal.charAt(1).toLowerCase() === "x") {
|
|
return parseInt(literal, 16);
|
|
} else {
|
|
return parseInt(literal, 8);
|
|
}
|
|
} else {
|
|
return Number(literal);
|
|
}
|
|
}
|
|
|
|
/* Begin Parser Customization Methods */
|
|
var _originalParseMethod = parser.parse;
|
|
|
|
parser.parse = function(source, args) {
|
|
parser.wasNewLine = false;
|
|
parser.newLine = false;
|
|
parser.restricted = false;
|
|
|
|
return _originalParseMethod.call(this, source);
|
|
};
|
|
|
|
parser.parseError = function(str, hash) {
|
|
// alert(JSON.stringify(hash) + "\n\n\n" + parser.newLine + "\n" + parser.wasNewLine + "\n\n" + hash.expected.indexOf("';'"));
|
|
if (!((hash.expected && hash.expected.indexOf("';'") >= 0) && (hash.token === "}" || hash.token === "EOF" || hash.token === "BR++" || hash.token === "BR--" || parser.newLine || parser.wasNewLine))) {
|
|
throw new SyntaxError(str);
|
|
}
|
|
};
|
|
/* End Parser Customization Methods */
|
|
|
|
/* Begin AST Node Constructors */
|
|
function ProgramNode(body) {
|
|
this.type = "Program";
|
|
this.body = body;
|
|
}
|
|
|
|
function EmptyStatementNode() {
|
|
this.type = "EmptyStatement";
|
|
}
|
|
|
|
function BlockStatementNode(body) {
|
|
this.type = "BlockStatement";
|
|
this.body = body;
|
|
}
|
|
|
|
function ExpressionStatementNode(expression) {
|
|
this.type = "ExpressionStatement";
|
|
this.expression = expression;
|
|
}
|
|
|
|
function IfStatementNode(test, consequent, alternate) {
|
|
this.type = "IfStatement";
|
|
this.test = test;
|
|
this.consequent = consequent;
|
|
this.alternate = alternate;
|
|
}
|
|
|
|
function BreakStatementNode() {
|
|
this.type = "BreakStatement";
|
|
}
|
|
|
|
function ContinueStatementNode() {
|
|
this.type = "ContinueStatement";
|
|
}
|
|
|
|
function ReturnStatementNode(argument) {
|
|
this.type = "ReturnStatement";
|
|
this.argument = argument;
|
|
}
|
|
|
|
function ForStatementNode(init, test, update, body) {
|
|
this.type = "ForStatement";
|
|
this.init = init;
|
|
this.test = test;
|
|
this.update = update;
|
|
this.body = body;
|
|
}
|
|
|
|
function MathExpressionNode(expr) {
|
|
this.type = "MathExpression";
|
|
this.expr = expr;
|
|
}
|
|
|
|
function BoolExpressionNode(expr) {
|
|
this.type = "BoolExpression";
|
|
this.expr = expr;
|
|
}
|
|
|
|
function ContextAccessNode(layers) {
|
|
this.type = "ContextAccess";
|
|
this.layers = layers;
|
|
}
|
|
|
|
function FunctionDeclarationNode(id, params, body, generator, expression) {
|
|
this.type = "FunctionDeclaration";
|
|
this.id = id;
|
|
this.params = params;
|
|
this.body = body;
|
|
this.generator = generator;
|
|
this.expression = expression;
|
|
}
|
|
|
|
function VariableDeclaratorNode(id, init) {
|
|
this.type = "VariableDeclarator";
|
|
this.id = id;
|
|
this.init = init;
|
|
}
|
|
|
|
function UnaryExpressionNode(operator, prefix, argument) {
|
|
this.type = "UnaryExpression";
|
|
this.operator = operator;
|
|
this.prefix = prefix;
|
|
this.argument = argument;
|
|
}
|
|
|
|
function BinaryExpressionNode(operator, left, right) {
|
|
this.type = "BinaryExpression";
|
|
this.operator = operator;
|
|
this.left = left;
|
|
this.right = right;
|
|
}
|
|
|
|
function AssignmentExpressionNode(operator, left, right) {
|
|
this.type = "AssignmentExpression";
|
|
this.operator = operator;
|
|
this.left = left;
|
|
this.right = right;
|
|
}
|
|
|
|
function UpdateExpressionNode(operator, argument, prefix) {
|
|
this.type = "UpdateExpression";
|
|
this.operator = operator;
|
|
this.argument = argument;
|
|
this.prefix = prefix;
|
|
}
|
|
|
|
function LogicalExpressionNode(operator, left, right) {
|
|
this.type = "LogicalExpression";
|
|
this.operator = operator;
|
|
this.left = left;
|
|
this.right = right;
|
|
}
|
|
|
|
function ConditionalExpressionNode(test, consequent, alternate) {
|
|
this.type = "ConditionalExpression";
|
|
this.test = test;
|
|
this.consequent = consequent;
|
|
this.alternate = alternate;
|
|
}
|
|
|
|
function IdentifierNode(name) {
|
|
this.type = "Identifier";
|
|
this.name = name;
|
|
}
|
|
|
|
function LiteralNode(value) {
|
|
this.type = "Literal";
|
|
this.value = value;
|
|
}
|
|
|
|
function MatrixAccessNode(name, indexes) {
|
|
this.type = "MatrixAccess";
|
|
this.name = name;
|
|
this.indexes = indexes;
|
|
}
|
|
|
|
/* End AST Node Constructors */
|
|
|
|
/* Expose the AST Node Constructors */
|
|
parser.ast = {};
|
|
parser.ast.ProgramNode = ProgramNode;
|
|
parser.ast.BlockStatementNode = BlockStatementNode;
|
|
parser.ast.ExpressionStatementNode = ExpressionStatementNode;
|
|
parser.ast.IfStatementNode = IfStatementNode;
|
|
parser.ast.ForStatementNode = ForStatementNode;
|
|
parser.ast.BoolExpressionNode = BoolExpressionNode;
|
|
parser.ast.MathExpressionNode = MathExpressionNode;
|
|
parser.ast.MatrixAccessNode = MatrixAccessNode;
|
|
parser.ast.BreakStatementNode = BreakStatementNode;
|
|
parser.ast.ContinueStatementNode = ContinueStatementNode;
|
|
parser.ast.ReturnStatementNode = ReturnStatementNode;
|
|
parser.ast.ForStatementNode = ForStatementNode;
|
|
parser.ast.FunctionDeclarationNode = FunctionDeclarationNode;
|
|
parser.ast.VariableDeclaratorNode = VariableDeclaratorNode;
|
|
parser.ast.UnaryExpressionNode = UnaryExpressionNode;
|
|
parser.ast.BinaryExpressionNode = BinaryExpressionNode;
|
|
parser.ast.AssignmentExpressionNode = AssignmentExpressionNode;
|
|
parser.ast.UpdateExpressionNode = UpdateExpressionNode;
|
|
parser.ast.LogicalExpressionNode = LogicalExpressionNode;
|
|
parser.ast.IdentifierNode = IdentifierNode;
|
|
parser.ast.LiteralNode = LiteralNode;
|
|
/* generated by jison-lex 0.2.1 */
|
|
var lexer = (function(){
|
|
var lexer = {
|
|
|
|
EOF:1,
|
|
|
|
parseError:function parseError(str,hash){if(this.yy.parser){this.yy.parser.parseError(str,hash)}else{throw new Error(str)}},
|
|
|
|
// resets the lexer, sets new input
|
|
setInput:function (input){this._input=input;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this},
|
|
|
|
// consumes and returns one char from the input
|
|
input:function (){var ch=this._input[0];this.yytext+=ch;this.yyleng++;this.offset++;this.match+=ch;this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);if(lines){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return ch},
|
|
|
|
// unshifts one char (or a string) into the input
|
|
unput:function (ch){var len=ch.length;var lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-len-1);this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(lines.length-1){this.yylineno-=lines.length-1}var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-len]}this.yyleng=this.yytext.length;return this},
|
|
|
|
// When called from action, caches matched text and appends it on next action
|
|
more:function (){this._more=true;return this},
|
|
|
|
// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
|
|
reject:function (){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this},
|
|
|
|
// retain first n characters of the match
|
|
less:function (n){this.unput(this.match.slice(n))},
|
|
|
|
// displays already matched input, i.e. for error messages
|
|
pastInput:function (){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},
|
|
|
|
// displays upcoming input, i.e. for error messages
|
|
upcomingInput:function (){var next=this.match;if(next.length<20){next+=this._input.substr(0,20-next.length)}return(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},
|
|
|
|
// displays the character position where the lexing error occurred, i.e. for error messages
|
|
showPosition:function (){var pre=this.pastInput();var c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},
|
|
|
|
// test the lexed token: return FALSE when not a match, otherwise return token
|
|
test_match:function (match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer){backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){backup.yylloc.range=this.yylloc.range.slice(0)}}lines=match[0].match(/(?:\r\n?|\n).*/g);if(lines){this.yylineno+=lines.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length};this.yytext+=match[0];this.match+=match[0];this.matches=match;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(match[0].length);this.matched+=match[0];token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(token){return token}else if(this._backtrack){for(var k in backup){this[k]=backup[k]}return false}return false},
|
|
|
|
// return next match in input
|
|
next:function (){if(this.done){return this.EOF}if(!this._input){this.done=true}var token,match,tempMatch,index;if(!this._more){this.yytext="";this.match=""}var rules=this._currentRules();for(var i=0;i<rules.length;i++){tempMatch=this._input.match(this.rules[rules[i]]);if(tempMatch&&(!match||tempMatch[0].length>match[0].length)){match=tempMatch;index=i;if(this.options.backtrack_lexer){token=this.test_match(tempMatch,rules[i]);if(token!==false){return token}else if(this._backtrack){match=false;continue}else{return false}}else if(!this.options.flex){break}}}if(match){token=this.test_match(match,rules[index]);if(token!==false){return token}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}},
|
|
|
|
// return next match that has a token
|
|
lex:function lex(){var r=this.next();if(r){return r}else{return this.lex()}},
|
|
|
|
// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
|
|
begin:function begin(condition){this.conditionStack.push(condition)},
|
|
|
|
// pop the previously active lexer condition state off the condition stack
|
|
popState:function popState(){var n=this.conditionStack.length-1;if(n>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}},
|
|
|
|
// produce the lexer rule set which is active for the currently active lexer condition state
|
|
_currentRules:function _currentRules(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}},
|
|
|
|
// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
|
|
topState:function topState(n){n=this.conditionStack.length-1-Math.abs(n||0);if(n>=0){return this.conditionStack[n]}else{return"INITIAL"}},
|
|
|
|
// alias for begin(condition)
|
|
pushState:function pushState(condition){this.begin(condition)},
|
|
|
|
// return the number of states currently on the stack
|
|
stateStackSize:function stateStackSize(){return this.conditionStack.length},
|
|
options: {"flex":true},
|
|
performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START
|
|
/**/) {
|
|
|
|
var YYSTATE=YY_START;
|
|
switch($avoiding_name_collisions) {
|
|
case 0:/* skip whitespace */
|
|
break;
|
|
case 1:/* skip block comments */
|
|
break;
|
|
case 2:/* skip line comments */
|
|
break;
|
|
case 3:return "STRING_LITERAL";
|
|
break;
|
|
case 4:return "ELSE";
|
|
break;
|
|
case 5:return "FOR";
|
|
break;
|
|
case 6:return "FUNCTION";
|
|
break;
|
|
case 7:return "IF";
|
|
break;
|
|
case 8:return "RETURN";
|
|
break;
|
|
case 9:return "THIS";
|
|
break;
|
|
case 10:return "VAR";
|
|
break;
|
|
case 11:return "TRUE";
|
|
break;
|
|
case 12:return "FALSE";
|
|
break;
|
|
case 13:return "NULL";
|
|
break;
|
|
case 14:return "UNDEFINED";
|
|
break;
|
|
case 15:return "IDENTIFIER";
|
|
break;
|
|
case 16:return "NUMERIC_LITERAL";
|
|
break;
|
|
case 17:return "NUMERIC_LITERAL";
|
|
break;
|
|
case 18:return "NUMERIC_LITERAL";
|
|
break;
|
|
case 19:return "{";
|
|
break;
|
|
case 20:return "}";
|
|
break;
|
|
case 21:return "(";
|
|
break;
|
|
case 22:return ")";
|
|
break;
|
|
case 23:return "[";
|
|
break;
|
|
case 24:return "]";
|
|
break;
|
|
case 25:return ";";
|
|
break;
|
|
case 26:return ",";
|
|
break;
|
|
case 27:return "?";
|
|
break;
|
|
case 28:return ":";
|
|
break;
|
|
case 29:return "===";
|
|
break;
|
|
case 30:return "==";
|
|
break;
|
|
case 31:return "=";
|
|
break;
|
|
case 32:return "!==";
|
|
break;
|
|
case 33:return "!=";
|
|
break;
|
|
case 34:return "!";
|
|
break;
|
|
case 35:return "<=";
|
|
break;
|
|
case 36:return "<";
|
|
break;
|
|
case 37:return ">=";
|
|
break;
|
|
case 38:return ">";
|
|
break;
|
|
case 39:return "+=";
|
|
break;
|
|
case 40:return "++";
|
|
break;
|
|
case 41:return "+";
|
|
break;
|
|
case 42:return "-=";
|
|
break;
|
|
case 43:return "--";
|
|
break;
|
|
case 44:return "-";
|
|
break;
|
|
case 45:return "*=";
|
|
break;
|
|
case 46:return "*";
|
|
break;
|
|
case 47:return "/=";
|
|
break;
|
|
case 48:return "/";
|
|
break;
|
|
case 49:return "%=";
|
|
break;
|
|
case 50:return "%";
|
|
break;
|
|
case 51:return "&&";
|
|
break;
|
|
case 52:return "&=";
|
|
break;
|
|
case 53:return "&";
|
|
break;
|
|
case 54:return "||";
|
|
break;
|
|
case 55:return "|=";
|
|
break;
|
|
case 56:return "|";
|
|
break;
|
|
case 57:return "^=";
|
|
break;
|
|
case 58:return "^";
|
|
break;
|
|
case 59:return "EOF";
|
|
break;
|
|
case 60:return "ERROR";
|
|
break;
|
|
case 61:console.log(yy_.yytext);
|
|
break;
|
|
}
|
|
},
|
|
rules: [/^(?:\s+)/,/^(?:\/\*(.|\r|\n)*?\*\/)/,/^(?:\/\/.*($|\r\n|\r|\n))/,/^(?:(("(([^\"\\\n\r]+)|(\\((([\'\"\\bfnrtv])|([^\'\"\\bfnrtv0-9xu]))|((?:[1-7][0-7]{0,2}|[0-7]{2,3}))|([x]([0-9a-fA-F]){2})))|(\\(\r\n|\r|\n)))*")|('(([^\'\\\n\r]+)|(\\((([\'\"\\bfnrtv])|([^\'\"\\bfnrtv0-9xu]))|((?:[1-7][0-7]{0,2}|[0-7]{2,3}))|([x]([0-9a-fA-F]){2})))|(\\(\r\n|\r|\n)))*')))/,/^(?:else)/,/^(?:for)/,/^(?:function)/,/^(?:if)/,/^(?:return)/,/^(?:this)/,/^(?:var)/,/^(?:true)/,/^(?:false)/,/^(?:null)/,/^(?:undefined)/,/^(?:(([?_a-zA-Z])(([?_a-zA-Z])|[0-9])*))/,/^(?:(((([0-9])|(([1-9])([0-9]+)*))\.([0-9]+)*(([eE])([+-]?([0-9])+))?)|(\.([0-9]+)(([eE])([+-]?([0-9])+))?)|((([0-9])|(([1-9])([0-9]+)*))(([eE])([+-]?([0-9])+))?)))/,/^(?:([0][xX]([0-9a-fA-F])+))/,/^(?:([0]([0-7])+))/,/^(?:\{)/,/^(?:\})/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:;)/,/^(?:,)/,/^(?:\?)/,/^(?::)/,/^(?:===)/,/^(?:==)/,/^(?:=)/,/^(?:!==)/,/^(?:!=)/,/^(?:!)/,/^(?:<=)/,/^(?:<)/,/^(?:>=)/,/^(?:>)/,/^(?:\+=)/,/^(?:\+\+)/,/^(?:\+)/,/^(?:-=)/,/^(?:--)/,/^(?:-)/,/^(?:\*=)/,/^(?:\*)/,/^(?:\/=)/,/^(?:\/)/,/^(?:%=)/,/^(?:%)/,/^(?:&&)/,/^(?:&=)/,/^(?:&)/,/^(?:\|\|)/,/^(?:\|=)/,/^(?:\|)/,/^(?:\^=)/,/^(?:\^)/,/^(?:$)/,/^(?:.)/,/^(?:.)/],
|
|
conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61],"inclusive":true}}
|
|
};
|
|
return lexer;
|
|
})();
|
|
parser.lexer = lexer;
|
|
function Parser () {
|
|
this.yy = {};
|
|
}
|
|
Parser.prototype = parser;parser.Parser = Parser;
|
|
return new Parser;
|
|
})();
|
|
|
|
|
|
if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
|
|
exports.parser = parser;
|
|
exports.Parser = parser.Parser;
|
|
exports.parse = function () { return parser.parse.apply(parser, arguments); };
|
|
exports.main = function commonjsMain(args){if(!args[1]){console.log("Usage: "+args[0]+" FILE");process.exit(1)}var source=require("fs").readFileSync(require("path").normalize(args[1]),"utf8");return exports.parser.parse(source)};
|
|
if (typeof module !== 'undefined' && require.main === module) {
|
|
exports.main(process.argv.slice(1));
|
|
}
|
|
} |