2010-02-10 23:24:05 -05:00
|
|
|
/* Jison generated parser */
|
|
|
|
var parser = (function(){
|
|
|
|
var parser = {trace: function trace() { },
|
|
|
|
yy: {},
|
2010-11-28 09:42:43 -08:00
|
|
|
symbols_: {"error":2,"Root":3,"Body":4,"Block":5,"TERMINATOR":6,"Line":7,"Expression":8,"Statement":9,"Return":10,"Throw":11,"Comment":12,"STATEMENT":13,"Value":14,"Invocation":15,"Code":16,"Operation":17,"Assign":18,"If":19,"Try":20,"While":21,"For":22,"Switch":23,"Class":24,"INDENT":25,"OUTDENT":26,"Identifier":27,"IDENTIFIER":28,"AlphaNumeric":29,"NUMBER":30,"STRING":31,"Literal":32,"JS":33,"REGEX":34,"BOOL":35,"Assignable":36,"=":37,"AssignObj":38,"ObjAssignable":39,":":40,"ThisProperty":41,"RETURN":42,"HERECOMMENT":43,"PARAM_START":44,"ParamList":45,"PARAM_END":46,"FuncGlyph":47,"->":48,"=>":49,"OptComma":50,",":51,"Param":52,"ParamVar":53,"...":54,"Array":55,"Object":56,"Splat":57,"SimpleAssignable":58,"Accessor":59,"Parenthetical":60,"Range":61,"This":62,".":63,"?.":64,"::":65,"Index":66,"Slice":67,"INDEX_START":68,"INDEX_END":69,"INDEX_SOAK":70,"INDEX_PROTO":71,"{":72,"AssignList":73,"}":74,"CLASS":75,"EXTENDS":76,"OptFuncExist":77,"Arguments":78,"SUPER":79,"FUNC_EXIST":80,"CALL_START":81,"CALL_END":82,"ArgList":83,"THIS":84,"@":85,"[":86,"]":87,"RangeDots":88,"..":89,"Arg":90,"SimpleArgs":91,"TRY":92,"Catch":93,"FINALLY":94,"CATCH":95,"THROW":96,"(":97,")":98,"WhileSource":99,"WHILE":100,"WHEN":101,"UNTIL":102,"Loop":103,"LOOP":104,"ForBody":105,"FOR":106,"ForStart":107,"ForSource":108,"ForVariables":109,"ALL":110,"ForValue":111,"FORIN":112,"FOROF":113,"BY":114,"SWITCH":115,"Whens":116,"ELSE":117,"When":118,"LEADING_WHEN":119,"IfBlock":120,"IF":121,"UNLESS":122,"POST_IF":123,"POST_UNLESS":124,"UNARY":125,"-":126,"+":127,"--":128,"++":129,"?":130,"MATH":131,"SHIFT":132,"COMPARE":133,"LOGIC":134,"RELATION":135,"COMPOUND_ASSIGN":136,"$accept":0,"$end":1},
|
|
|
|
terminals_: {"2":"error","6":"TERMINATOR","13":"STATEMENT","25":"INDENT","26":"OUTDENT","28":"IDENTIFIER","30":"NUMBER","31":"STRING","33":"JS","34":"REGEX","35":"BOOL","37":"=","40":":","42":"RETURN","43":"HERECOMMENT","44":"PARAM_START","46":"PARAM_END","48":"->","49":"=>","51":",","54":"...","63":".","64":"?.","65":"::","68":"INDEX_START","69":"INDEX_END","70":"INDEX_SOAK","71":"INDEX_PROTO","72":"{","74":"}","75":"CLASS","76":"EXTENDS","79":"SUPER","80":"FUNC_EXIST","81":"CALL_START","82":"CALL_END","84":"THIS","85":"@","86":"[","87":"]","89":"..","92":"TRY","94":"FINALLY","95":"CATCH","96":"THROW","97":"(","98":")","100":"WHILE","101":"WHEN","102":"UNTIL","104":"LOOP","106":"FOR","110":"ALL","112":"FORIN","113":"FOROF","114":"BY","115":"SWITCH","117":"ELSE","119":"LEADING_WHEN","121":"IF","122":"UNLESS","123":"POST_IF","124":"POST_UNLESS","125":"UNARY","126":"-","127":"+","128":"--","129":"++","130":"?","131":"MATH","132":"SHIFT","133":"COMPARE","134":"LOGIC","135":"RELATION","136":"COMPOUND_ASSIGN"},
|
|
|
|
productions_: [0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,3],[5,2],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[18,3],[18,5],[38,1],[38,3],[38,5],[38,1],[39,1],[39,1],[39,1],[10,2],[10,1],[12,1],[16,5],[16,2],[47,1],[47,1],[50,0],[50,1],[45,0],[45,1],[45,3],[52,1],[52,2],[52,3],[53,1],[53,1],[53,1],[53,1],[57,2],[58,1],[58,2],[58,2],[58,1],[36,1],[36,1],[36,1],[14,1],[14,1],[14,1],[14,1],[14,1],[59,2],[59,2],[59,2],[59,1],[59,1],[59,1],[66,3],[66,2],[66,2],[56,4],[73,0],[73,1],[73,3],[73,4],[73,6],[24,1],[24,2],[24,3],[24,4],[24,2],[24,3],[24,4],[24,5],[15,3],[15,3],[15,1],[15,2],[77,0],[77,1],[78,2],[78,4],[62,1],[62,1],[41,2],[55,2],[55,4],[88,1],[88,1],[61,5],[67,5],[67,4],[67,4],[83,1],[83,3],[83,4],[83,4],[83,6],[90,1],[90,1],[91,1],[91,3],[20,2],[20,3],[20,4],[20,5],[93,3],[11,2],[60,3],[60,5],[99,2],[99,4],[99,2],[99,4],[21,2],[21,2],[21,2],[21,1],[103,2],[103,2],[22,2],[22,2],[22,2],[105,2],[105,2],[107,2],[107,3],[111,1],[111,1],[111,1],[109,1],[109,3],[108,2],[108,2],[108,4],[108,4],[108,4],[108,6],[108,6],[23,5],[23,7],[23,4],[23,6],[116,1],[116,2],[118,3],[118,4],[120,3],[120,3],[120,5],[120,3],[19,1],[19,3],[19,3],[19,3],[19,3],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,2],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,3],[17,5],[17,3]],
|
2010-02-10 23:24:05 -05:00
|
|
|
performAction: function anonymous(yytext,yyleng,yylineno,yy) {
|
|
|
|
|
|
|
|
var $$ = arguments[5],$0=arguments[5].length;
|
|
|
|
switch(arguments[4]) {
|
2010-09-25 17:39:19 +09:00
|
|
|
case 1:return this.$ = new yy.Expressions;
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-13 18:13:09 -05:00
|
|
|
case 2:return this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-13 18:13:09 -05:00
|
|
|
case 3:return this.$ = $$[$0-2+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-13 18:13:09 -05:00
|
|
|
case 4:this.$ = yy.Expressions.wrap([$$[$0-1+1-1]]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-13 18:13:09 -05:00
|
|
|
case 5:this.$ = $$[$0-3+1-1].push($$[$0-3+3-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-13 18:13:09 -05:00
|
|
|
case 6:this.$ = $$[$0-2+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-13 18:13:09 -05:00
|
|
|
case 7:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
|
|
|
case 8:this.$ = $$[$0-1+1-1];
|
|
|
|
break;
|
|
|
|
case 9:this.$ = $$[$0-1+1-1];
|
|
|
|
break;
|
|
|
|
case 10:this.$ = $$[$0-1+1-1];
|
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 11:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-10-06 22:44:32 -04:00
|
|
|
case 12:this.$ = new yy.Literal($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 13:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-13 18:13:09 -05:00
|
|
|
case 14:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
|
|
|
case 15:this.$ = $$[$0-1+1-1];
|
|
|
|
break;
|
|
|
|
case 16:this.$ = $$[$0-1+1-1];
|
|
|
|
break;
|
|
|
|
case 17:this.$ = $$[$0-1+1-1];
|
|
|
|
break;
|
|
|
|
case 18:this.$ = $$[$0-1+1-1];
|
|
|
|
break;
|
|
|
|
case 19:this.$ = $$[$0-1+1-1];
|
|
|
|
break;
|
|
|
|
case 20:this.$ = $$[$0-1+1-1];
|
|
|
|
break;
|
|
|
|
case 21:this.$ = $$[$0-1+1-1];
|
|
|
|
break;
|
|
|
|
case 22:this.$ = $$[$0-1+1-1];
|
|
|
|
break;
|
|
|
|
case 23:this.$ = $$[$0-1+1-1];
|
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 24:this.$ = $$[$0-3+2-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 25:this.$ = new yy.Expressions;
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 26:this.$ = new yy.Literal($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 27:this.$ = new yy.Literal($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-13 18:13:09 -05:00
|
|
|
case 28:this.$ = new yy.Literal($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 29:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-09 00:26:31 -05:00
|
|
|
case 30:this.$ = new yy.Literal($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 31:this.$ = new yy.Literal($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 32:this.$ = new yy.Literal($$[$0-1+1-1] === 'undefined' ? 'void 0' : $$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 33:this.$ = new yy.Assign($$[$0-3+1-1], $$[$0-3+3-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 34:this.$ = new yy.Assign($$[$0-5+1-1], $$[$0-5+4-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 35:this.$ = new yy.Value($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 36:this.$ = new yy.Assign(new yy.Value($$[$0-3+1-1]), $$[$0-3+3-1], 'object');
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 37:this.$ = new yy.Assign(new yy.Value($$[$0-5+1-1]), $$[$0-5+4-1], 'object');
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 38:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 39:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-13 18:13:09 -05:00
|
|
|
case 40:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-11 21:48:08 -05:00
|
|
|
case 41:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 42:this.$ = new yy.Return($$[$0-2+2-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 43:this.$ = new yy.Return;
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 44:this.$ = new yy.Comment($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 45:this.$ = new yy.Code($$[$0-5+2-1], $$[$0-5+5-1], $$[$0-5+4-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 46:this.$ = new yy.Code([], $$[$0-2+2-1], $$[$0-2+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 47:this.$ = 'func';
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 48:this.$ = 'boundfunc';
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 49:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 50:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 51:this.$ = [];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 52:this.$ = [$$[$0-1+1-1]];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 53:this.$ = $$[$0-3+1-1].concat($$[$0-3+3-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 54:this.$ = new yy.Param($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 55:this.$ = new yy.Param($$[$0-2+1-1], null, true);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 56:this.$ = new yy.Param($$[$0-3+1-1], $$[$0-3+3-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 57:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 58:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 59:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-13 18:13:09 -05:00
|
|
|
case 60:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 61:this.$ = new yy.Splat($$[$0-2+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 62:this.$ = new yy.Value($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 63:this.$ = $$[$0-2+1-1].push($$[$0-2+2-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 64:this.$ = new yy.Value($$[$0-2+1-1], [$$[$0-2+2-1]]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 65:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 66:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 67:this.$ = new yy.Value($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 68:this.$ = new yy.Value($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 69:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 70:this.$ = new yy.Value($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-11 21:48:08 -05:00
|
|
|
case 71:this.$ = new yy.Value($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-14 15:15:13 -05:00
|
|
|
case 72:this.$ = new yy.Value($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 73:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 74:this.$ = new yy.Access($$[$0-2+2-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 75:this.$ = new yy.Access($$[$0-2+2-1], 'soak');
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 76:this.$ = new yy.Access($$[$0-2+2-1], 'proto');
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 77:this.$ = new yy.Access(new yy.Literal('prototype'));
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 78:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 79:this.$ = new yy.Slice($$[$0-1+1-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 80:this.$ = new yy.Index($$[$0-3+2-1]);
|
2010-11-20 16:25:22 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 81:this.$ = yy.extend($$[$0-2+2-1], {
|
2010-10-25 22:31:52 +09:00
|
|
|
soak: true
|
2010-10-13 13:53:56 +09:00
|
|
|
});
|
2010-07-01 21:26:33 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 82:this.$ = yy.extend($$[$0-2+2-1], {
|
2010-10-13 13:53:56 +09:00
|
|
|
proto: true
|
|
|
|
});
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 83:this.$ = new yy.Obj($$[$0-4+2-1], $$[$0-4+1-1].generated);
|
|
|
|
break;
|
|
|
|
case 84:this.$ = [];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 85:this.$ = [$$[$0-1+1-1]];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 86:this.$ = $$[$0-3+1-1].concat($$[$0-3+3-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 87:this.$ = $$[$0-4+1-1].concat($$[$0-4+4-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 88:this.$ = $$[$0-6+1-1].concat($$[$0-6+4-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 89:this.$ = new yy.Class;
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 90:this.$ = new yy.Class(null, null, $$[$0-2+2-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 91:this.$ = new yy.Class(null, $$[$0-3+3-1]);
|
2010-06-26 13:36:31 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 92:this.$ = new yy.Class(null, $$[$0-4+3-1], $$[$0-4+4-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 93:this.$ = new yy.Class($$[$0-2+2-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 94:this.$ = new yy.Class($$[$0-3+2-1], null, $$[$0-3+3-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 95:this.$ = new yy.Class($$[$0-4+2-1], $$[$0-4+4-1]);
|
2010-11-13 18:13:09 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 96:this.$ = new yy.Class($$[$0-5+2-1], $$[$0-5+4-1], $$[$0-5+5-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 97:this.$ = new yy.Call($$[$0-3+1-1], $$[$0-3+3-1], $$[$0-3+2-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-20 16:25:22 -05:00
|
|
|
case 98:this.$ = new yy.Call($$[$0-3+1-1], $$[$0-3+3-1], $$[$0-3+2-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 99:this.$ = new yy.Call('super', [new yy.Splat(new yy.Literal('arguments'))]);
|
2010-10-24 05:35:35 +09:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 100:this.$ = new yy.Call('super', $$[$0-2+2-1]);
|
2010-03-26 11:44:25 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 101:this.$ = false;
|
2010-06-12 11:00:56 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 102:this.$ = true;
|
2010-03-26 11:44:25 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 103:this.$ = [];
|
2010-03-26 11:44:25 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 104:this.$ = $$[$0-4+2-1];
|
2010-03-26 11:44:25 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 105:this.$ = new yy.Value(new yy.Literal('this'));
|
2010-03-26 14:11:34 -04:00
|
|
|
break;
|
2010-11-20 16:25:22 -05:00
|
|
|
case 106:this.$ = new yy.Value(new yy.Literal('this'));
|
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 107:this.$ = new yy.Value(new yy.Literal('this'), [new yy.Access($$[$0-2+2-1])], 'this');
|
2010-11-20 16:25:22 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 108:this.$ = new yy.Arr([]);
|
2010-11-20 16:25:22 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 109:this.$ = new yy.Arr($$[$0-4+2-1]);
|
2010-11-20 16:25:22 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 110:this.$ = 'inclusive';
|
2010-03-29 06:06:16 +13:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 111:this.$ = 'exclusive';
|
2010-03-29 06:06:16 +13:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 112:this.$ = new yy.Range($$[$0-5+2-1], $$[$0-5+4-1], $$[$0-5+3-1]);
|
2010-03-29 06:06:16 +13:00
|
|
|
break;
|
2010-11-20 16:25:22 -05:00
|
|
|
case 113:this.$ = new yy.Range($$[$0-5+2-1], $$[$0-5+4-1], $$[$0-5+3-1]);
|
2010-03-29 06:14:35 +13:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 114:this.$ = new yy.Range($$[$0-4+2-1], null, $$[$0-4+3-1]);
|
2010-03-29 21:43:12 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 115:this.$ = new yy.Range(null, $$[$0-4+3-1], $$[$0-4+2-1]);
|
2010-03-09 23:04:16 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 116:this.$ = [$$[$0-1+1-1]];
|
2010-03-09 23:04:16 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 117:this.$ = $$[$0-3+1-1].concat($$[$0-3+3-1]);
|
2010-03-10 16:18:17 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 118:this.$ = $$[$0-4+1-1].concat($$[$0-4+4-1]);
|
2010-03-16 17:39:36 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 119:this.$ = $$[$0-4+2-1];
|
2010-03-17 03:11:10 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 120:this.$ = $$[$0-6+1-1].concat($$[$0-6+4-1]);
|
2010-03-17 03:11:10 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 121:this.$ = $$[$0-1+1-1];
|
2010-07-24 23:52:02 -07:00
|
|
|
break;
|
2010-11-20 16:25:22 -05:00
|
|
|
case 122:this.$ = $$[$0-1+1-1];
|
2010-07-24 23:52:02 -07:00
|
|
|
break;
|
2010-11-20 16:25:22 -05:00
|
|
|
case 123:this.$ = $$[$0-1+1-1];
|
2010-07-27 22:05:55 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 124:this.$ = [].concat($$[$0-3+1-1], $$[$0-3+3-1]);
|
2010-08-17 21:31:32 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 125:this.$ = new yy.Try($$[$0-2+2-1]);
|
2010-08-18 21:27:10 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 126:this.$ = new yy.Try($$[$0-3+2-1], $$[$0-3+3-1][0], $$[$0-3+3-1][1]);
|
2010-08-18 21:51:44 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 127:this.$ = new yy.Try($$[$0-4+2-1], null, null, $$[$0-4+4-1]);
|
2010-08-18 21:51:44 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 128:this.$ = new yy.Try($$[$0-5+2-1], $$[$0-5+3-1][0], $$[$0-5+3-1][1], $$[$0-5+5-1]);
|
2010-08-18 21:51:44 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 129:this.$ = [$$[$0-3+2-1], $$[$0-3+3-1]];
|
2010-08-18 21:51:44 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 130:this.$ = new yy.Throw($$[$0-2+2-1]);
|
2010-11-20 16:25:22 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 131:this.$ = new yy.Parens($$[$0-3+2-1]);
|
2010-11-20 16:25:22 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 132:this.$ = new yy.Parens($$[$0-5+3-1]);
|
2010-11-20 16:25:22 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 133:this.$ = new yy.While($$[$0-2+2-1]);
|
2010-11-20 18:49:17 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 134:this.$ = new yy.While($$[$0-4+2-1], {
|
2010-04-28 21:46:47 -04:00
|
|
|
guard: $$[$0-4+4-1]
|
2010-03-07 11:41:56 -05:00
|
|
|
});
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 135:this.$ = new yy.While($$[$0-2+2-1], {
|
2010-04-28 22:08:00 -04:00
|
|
|
invert: true
|
|
|
|
});
|
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 136:this.$ = new yy.While($$[$0-4+2-1], {
|
2010-04-28 22:08:00 -04:00
|
|
|
invert: true,
|
|
|
|
guard: $$[$0-4+4-1]
|
|
|
|
});
|
2010-04-25 21:22:29 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 137:this.$ = $$[$0-2+1-1].addBody($$[$0-2+2-1]);
|
|
|
|
break;
|
|
|
|
case 138:this.$ = $$[$0-2+2-1].addBody(yy.Expressions.wrap([$$[$0-2+1-1]]));
|
2010-10-23 23:51:22 +09:00
|
|
|
break;
|
2010-11-20 18:49:17 -05:00
|
|
|
case 139:this.$ = $$[$0-2+2-1].addBody(yy.Expressions.wrap([$$[$0-2+1-1]]));
|
2010-07-15 21:18:35 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 140:this.$ = $$[$0-1+1-1];
|
2010-05-12 20:56:44 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 141:this.$ = new yy.While(new yy.Literal('true')).addBody($$[$0-2+2-1]);
|
2010-08-17 21:31:32 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 142:this.$ = new yy.While(new yy.Literal('true')).addBody(yy.Expressions.wrap([$$[$0-2+2-1]]));
|
2010-08-18 21:27:10 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 143:this.$ = new yy.For($$[$0-2+1-1], $$[$0-2+2-1], $$[$0-2+2-1].vars[0], $$[$0-2+2-1].vars[1]);
|
2010-09-18 22:25:45 -04:00
|
|
|
break;
|
2010-11-20 18:49:17 -05:00
|
|
|
case 144:this.$ = new yy.For($$[$0-2+1-1], $$[$0-2+2-1], $$[$0-2+2-1].vars[0], $$[$0-2+2-1].vars[1]);
|
2010-10-05 05:53:32 +09:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 145:this.$ = new yy.For($$[$0-2+2-1], $$[$0-2+1-1], $$[$0-2+1-1].vars[0], $$[$0-2+1-1].vars[1]);
|
2010-11-20 18:49:17 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 146:this.$ = {
|
2010-11-20 16:25:22 -05:00
|
|
|
source: new yy.Value($$[$0-2+2-1]),
|
|
|
|
vars: []
|
|
|
|
};
|
2010-05-31 22:32:43 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 147:this.$ = (function () {
|
2010-11-20 16:25:22 -05:00
|
|
|
$$[$0-2+2-1].raw = $$[$0-2+1-1].raw;
|
|
|
|
$$[$0-2+2-1].vars = $$[$0-2+1-1];
|
|
|
|
return $$[$0-2+2-1];
|
|
|
|
}());
|
2010-07-27 22:38:38 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 148:this.$ = $$[$0-2+2-1];
|
2010-07-27 22:38:38 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 149:this.$ = (function () {
|
2010-11-20 16:25:22 -05:00
|
|
|
$$[$0-3+3-1].raw = true;
|
|
|
|
return $$[$0-3+3-1];
|
|
|
|
}());
|
2010-09-18 22:25:45 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 150:this.$ = $$[$0-1+1-1];
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 151:this.$ = new yy.Value($$[$0-1+1-1]);
|
2010-11-20 16:25:22 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 152:this.$ = new yy.Value($$[$0-1+1-1]);
|
2010-11-20 16:25:22 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 153:this.$ = [$$[$0-1+1-1]];
|
2010-11-20 18:49:17 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 154:this.$ = [$$[$0-3+1-1], $$[$0-3+3-1]];
|
2010-11-20 20:47:43 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 155:this.$ = {
|
2010-10-13 13:53:56 +09:00
|
|
|
source: $$[$0-2+2-1]
|
2010-03-07 11:41:56 -05:00
|
|
|
};
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 156:this.$ = {
|
2010-11-20 16:25:22 -05:00
|
|
|
source: $$[$0-2+2-1],
|
|
|
|
object: true
|
|
|
|
};
|
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 157:this.$ = {
|
2010-03-29 07:32:01 +13:00
|
|
|
source: $$[$0-4+2-1],
|
2010-04-28 21:46:47 -04:00
|
|
|
guard: $$[$0-4+4-1]
|
2010-03-29 07:32:01 +13:00
|
|
|
};
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 158:this.$ = {
|
2010-11-20 16:25:22 -05:00
|
|
|
source: $$[$0-4+2-1],
|
|
|
|
guard: $$[$0-4+4-1],
|
|
|
|
object: true
|
2010-03-29 07:32:01 +13:00
|
|
|
};
|
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 159:this.$ = {
|
2010-11-20 16:25:22 -05:00
|
|
|
source: $$[$0-4+2-1],
|
|
|
|
step: $$[$0-4+4-1]
|
2010-03-29 07:32:01 +13:00
|
|
|
};
|
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 160:this.$ = {
|
2010-11-20 16:25:22 -05:00
|
|
|
source: $$[$0-6+2-1],
|
|
|
|
guard: $$[$0-6+4-1],
|
|
|
|
step: $$[$0-6+6-1]
|
2010-03-29 07:32:01 +13:00
|
|
|
};
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 161:this.$ = {
|
2010-11-20 16:25:22 -05:00
|
|
|
source: $$[$0-6+2-1],
|
2010-03-29 07:32:01 +13:00
|
|
|
step: $$[$0-6+4-1],
|
2010-04-28 21:46:47 -04:00
|
|
|
guard: $$[$0-6+6-1]
|
2010-03-29 07:32:01 +13:00
|
|
|
};
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 162:this.$ = new yy.Switch($$[$0-5+2-1], $$[$0-5+4-1]);
|
2010-10-13 13:53:56 +09:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 163:this.$ = new yy.Switch($$[$0-7+2-1], $$[$0-7+4-1], $$[$0-7+6-1]);
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 164:this.$ = new yy.Switch(null, $$[$0-4+3-1]);
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 165:this.$ = new yy.Switch(null, $$[$0-6+3-1], $$[$0-6+5-1]);
|
2010-05-10 22:57:51 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 166:this.$ = $$[$0-1+1-1];
|
2010-05-10 22:57:51 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 167:this.$ = $$[$0-2+1-1].concat($$[$0-2+2-1]);
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 168:this.$ = [[$$[$0-3+2-1], $$[$0-3+3-1]]];
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 169:this.$ = [[$$[$0-4+2-1], $$[$0-4+3-1]]];
|
2010-04-06 02:26:23 +12:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 170:this.$ = new yy.If($$[$0-3+2-1], $$[$0-3+3-1]);
|
2010-10-13 13:53:56 +09:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 171:this.$ = new yy.If($$[$0-3+2-1], $$[$0-3+3-1], {
|
2010-04-27 19:35:15 -04:00
|
|
|
invert: true
|
|
|
|
});
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 172:this.$ = $$[$0-5+1-1].addElse(new yy.If($$[$0-5+4-1], $$[$0-5+5-1]));
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 173:this.$ = $$[$0-3+1-1].addElse($$[$0-3+3-1]);
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 174:this.$ = $$[$0-1+1-1];
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 175:this.$ = new yy.If($$[$0-3+3-1], yy.Expressions.wrap([$$[$0-3+1-1]]), {
|
2010-03-07 11:41:56 -05:00
|
|
|
statement: true
|
|
|
|
});
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 176:this.$ = new yy.If($$[$0-3+3-1], yy.Expressions.wrap([$$[$0-3+1-1]]), {
|
2010-04-27 19:35:15 -04:00
|
|
|
statement: true
|
|
|
|
});
|
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 177:this.$ = new yy.If($$[$0-3+3-1], yy.Expressions.wrap([$$[$0-3+1-1]]), {
|
2010-04-06 02:26:23 +12:00
|
|
|
statement: true,
|
|
|
|
invert: true
|
|
|
|
});
|
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 178:this.$ = new yy.If($$[$0-3+3-1], yy.Expressions.wrap([$$[$0-3+1-1]]), {
|
2010-03-07 11:41:56 -05:00
|
|
|
statement: true,
|
|
|
|
invert: true
|
|
|
|
});
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 179:this.$ = new yy.Op($$[$0-2+1-1], $$[$0-2+2-1]);
|
|
|
|
break;
|
|
|
|
case 180:this.$ = new yy.Op('-', $$[$0-2+2-1]);
|
2010-10-11 17:05:50 +09:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 181:this.$ = new yy.Op('+', $$[$0-2+2-1]);
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 182:this.$ = new yy.Op('--', $$[$0-2+2-1]);
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 183:this.$ = new yy.Op('++', $$[$0-2+2-1]);
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 184:this.$ = new yy.Op('--', $$[$0-2+1-1], null, true);
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 185:this.$ = new yy.Op('++', $$[$0-2+1-1], null, true);
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 186:this.$ = new yy.Existence($$[$0-2+1-1]);
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 187:this.$ = new yy.Op('+', $$[$0-3+1-1], $$[$0-3+3-1]);
|
2010-11-13 18:13:09 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 188:this.$ = new yy.Op('-', $$[$0-3+1-1], $$[$0-3+3-1]);
|
2010-10-25 21:37:08 +09:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 189:this.$ = new yy.Op($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-20 16:25:22 -05:00
|
|
|
case 190:this.$ = new yy.Op($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-20 16:25:22 -05:00
|
|
|
case 191:this.$ = new yy.Op($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
2010-03-21 16:59:41 +02:00
|
|
|
break;
|
2010-11-20 18:49:17 -05:00
|
|
|
case 192:this.$ = new yy.Op($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 193:this.$ = (function () {
|
2010-11-08 23:39:21 -05:00
|
|
|
if ($$[$0-3+2-1].charAt(0) === '!') {
|
|
|
|
return new yy.Op($$[$0-3+2-1].slice(1), $$[$0-3+1-1], $$[$0-3+3-1]).invert();
|
|
|
|
} else {
|
|
|
|
return new yy.Op($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
|
|
|
}
|
|
|
|
}());
|
2010-08-17 21:31:32 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 194:this.$ = new yy.Assign($$[$0-3+1-1], $$[$0-3+3-1], $$[$0-3+2-1]);
|
2010-11-09 00:26:31 -05:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 195:this.$ = new yy.Assign($$[$0-5+1-1], $$[$0-5+4-1], $$[$0-5+2-1]);
|
2010-08-18 21:27:10 -04:00
|
|
|
break;
|
2010-11-28 09:42:43 -08:00
|
|
|
case 196:this.$ = new yy.Extends($$[$0-3+1-1], $$[$0-3+3-1]);
|
2010-08-21 08:56:25 -04:00
|
|
|
break;
|
2010-03-21 16:59:41 +02:00
|
|
|
}
|
|
|
|
},
|
2010-11-28 09:42:43 -08:00
|
|
|
table: [{"1":[2,1],"3":1,"4":2,"5":3,"7":4,"8":6,"9":7,"10":19,"11":20,"12":21,"13":[1,22],"14":8,"15":9,"16":10,"17":11,"18":12,"19":13,"20":14,"21":15,"22":16,"23":17,"24":18,"25":[1,5],"27":59,"28":[1,71],"29":49,"30":[1,69],"31":[1,70],"32":24,"33":[1,50],"34":[1,51],"35":[1,52],"36":23,"41":60,"42":[1,44],"43":[1,46],"44":[1,29],"47":30,"48":[1,57],"49":[1,58],"55":47,"56":48,"58":36,"60":25,"61":26,"62":27,"72":[1,68],"75":[1,43],"79":[1,28],"84":[1,55],"85":[1,56],"86":[1,54],"92":[1,38],"96":[1,45],"97":[1,53],"99":39,"100":[1,63],"102":[1,64],"103":40,"104":[1,65],"105":41,"106":[1,66],"107":67,"115":[1,42],"120":37,"121":[1,61],"122":[1,62],"125":[1,31],"126":[1,32],"127":[1,33],"128":[1,34],"129":[1,35]},{"1":[3]},{"1":[2,2],"6":[1,72]},{"6":[1,73]},{"1":[2,4],"6":[2,4],"26":[2,4],"98":[2,4]},{"4":74,"7":4,"8":6,"9":7,"10":19,"11":20,"12":21,"13":[1,22],"14":8,"15":9,"16":10,"17":11,"18":12,"19":13,"20":14,"21":15,"22":16,"23":17,"24":18,"26":[1,75],"27":59,"28":[1,71],"29":49,"30":[1,69],"31":[1,70],"32":24,"33":[1,50],"34":[1,51],"35":[1,52],"36":23,"41":60,"42":[1,44],"43":[1,46],"44":[1,29],"47":30,"48":[1,57],"49":[1,58],"55":47,"56":48,"58":36,"60":25,"61":26,"62":27,"72":[1,68],"75":[1,43],"79":[1,28],"84":[1,55],"85":[1,56],"86":[1,54],"92":[1,38],"96":[1,45],"97":[1,53],"99":39,"100":[1,63],"102":[1,64],"103":40,"104":[1,65],"105":41,"106":[1,66],"107":67,"115":[1,42],"120":37,"121":[1,61],"122":[1,62],"125":[1,31],"126":[1,32],"127":[1,33],"128":[1,34],"129":[1,35]},{"1":[2,7],"6":[2,7],"26":[2,7],"98":[2,7],"99":86,"100":[1,63],"102":[1,64],"105":87,"106":[1,66],"107":67,"123":[1,84],"124":[1,85],"126":[1,78],"127":[1,77],"130":[1,76],"131":[1,79],"132":[1,80],"133":[1,81],"134":[1,82],"135":[1,83]},{"1":[2,8],"6":[2,8],"26":[2,8],"98":[2,8],"99":90,"100":[1,63],"102":[1,64],"105":91,"106":[1,66],"107":67,"123":[1,88],"124":[1,89]},{"1":[2,13],"6":[2,13],"25":[2,13],"26":[2,13],"46":[2,13],"51":[2,13],"54":[2,13],"59":93,"63":[1,95],"64":[1,96],"65":[1,97],"66":98,"67":99,"68":[1,100],"69":[2,13],"70":[1,101],"71":[1,102],"74":[2,13],"77":92,"80":[1,94],"81":[2,101],"82":[2,13],"87":[2,13],"89":[2,13],"98":[2,13],"100":[2,13],"101":[2,13],"102":[2,13],"106":[2,13],"114":[2,13],"123":[2,13],"124":[2,13],"126":[2,13],"127":[2,13],"130":[2,13],"131":[2,13],"132":[2,13],"133":[2,13],"134":[2,13],"135":[2,13]},{"1":[2,14],"6":[2,14],"25":[2,14],"26":[2,14],"46":[2,14],"51":[2,14],"54":[2,14],"59":104,"63":[1,95],"64":[1,96],"65":[1,97],"66":98,"67":99,"68":[1,100],"69":[2,14],"70":[1,101],"71":[1,102],"74":[2,14],"77":103,"80":[1,94],"81":[2,101],"82":[2,14],"87":[2,14],"89":[2,14],"98":[2,14],"100":[2,14],"101":[2,14],"102":[2,14],"106":[2,14],"114":[2,14],"123":[2,14],"124":[2,14],"126":[2,14],"127":[2,14],"130":[2,14],"131":[2,14],"132":[2,14],"133":[2,14],"134":[2,14],"135":[2,14]},{"1":[2,15],"6":[2,15],"25":[2,15],"26":[2,15],"46":[2,15],"51":[2,15],"54":[2,15],"69":[2,15],"74":[2,15],"82":[2,15],"87":[2,15],"89":[2,15],"98":[2,15],"100":[2,15],"101":[2,15],"102":[2,15],"106":[2,15],"114":[2,15],"123":[2,15],"124":[2,15],"126":[2,15],"127":[2,15],"130":[2,15],"131":[2,15],"132":[2,15],"133":[2,15],"134":[2,15],"135":[2,15]},{"1":[2,16],"6":[2,16],"25":[2,16],"26":[2,16],"46":[2,16],"51":[2,16],"54":[2,16],"69":[2,16],"74":[2,16],"82":[2,16],"87":[2,16],"89":[2,16],"98":[2,16],"100":[2,16],"101":[2,16],"102":[2,16],"106":[2,16],"114":[2,16],"123":[2,16],"124":[2,16],"126":[2,16],"127":[2,16],"130":[2,16],"131":[2,16],"132":[2,16],"133":[2,16],"134":[2,16],"135":[2,16]},{"1":[2,17],"6":[2,17],"25":[2,17],"26":[2,17],"46":[2,17],"51":[2,17],"54":[2,17],"69":[2,17],"74":[2,17],"82":[2,17],"87":[2,17],"89":[2,17],"98":[2,17],"100":[2,17],"101":[2,17],"102":[2,17],"106":[2,17],"114":[2,17],"123":[2,17],"124":[2,17],"126":[2,17],"127":[2,17],"130":[2,17],"131":[2,17],"132":[2,17],"133":[2,17],"134":[2,17],"135":[2,17]},{"1":[2,18],"6":[2,18],"25":[2,18],"26":[2,18],"46":[2,18],"51":[2,18],"54":[2,18],"69":[2,18],"74":[2,18],"82":[2,18],"87":[2,18],"89":[2,18],"98":[2,18],"100":[2,18],"101":[2,18],"102":[
|
|
|
|
defaultActions: {"57":[2,47],"58":[2,48],"73":[2,3],"94":[2,102]},
|
2010-02-10 23:24:05 -05:00
|
|
|
parseError: function parseError(str, hash) {
|
|
|
|
throw new Error(str);
|
|
|
|
},
|
|
|
|
parse: function parse(input) {
|
|
|
|
var self = this,
|
|
|
|
stack = [0],
|
|
|
|
vstack = [null], // semantic value stack
|
|
|
|
table = this.table,
|
|
|
|
yytext = '',
|
|
|
|
yylineno = 0,
|
|
|
|
yyleng = 0,
|
|
|
|
shifts = 0,
|
2010-04-21 22:52:20 -04:00
|
|
|
reductions = 0,
|
|
|
|
recovering = 0,
|
|
|
|
TERROR = 2,
|
|
|
|
EOF = 1;
|
2010-02-10 23:24:05 -05:00
|
|
|
|
|
|
|
this.lexer.setInput(input);
|
|
|
|
this.lexer.yy = this.yy;
|
2010-04-21 22:52:20 -04:00
|
|
|
this.yy.lexer = this.lexer;
|
2010-02-10 23:24:05 -05:00
|
|
|
|
2010-04-21 22:52:20 -04:00
|
|
|
var parseError = this.yy.parseError = typeof this.yy.parseError == 'function' ? this.yy.parseError : this.parseError;
|
|
|
|
|
|
|
|
function popStack (n) {
|
|
|
|
stack.length = stack.length - 2*n;
|
|
|
|
vstack.length = vstack.length - n;
|
|
|
|
}
|
|
|
|
|
2010-02-10 23:24:05 -05:00
|
|
|
function lex() {
|
|
|
|
var token;
|
|
|
|
token = self.lexer.lex() || 1; // $end = 1
|
|
|
|
// if token isn't its numeric value, convert
|
|
|
|
if (typeof token !== 'number') {
|
2010-07-04 12:50:04 -04:00
|
|
|
token = self.symbols_[token] || token;
|
2010-02-10 23:24:05 -05:00
|
|
|
}
|
|
|
|
return token;
|
|
|
|
};
|
|
|
|
|
2010-04-21 22:52:20 -04:00
|
|
|
var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected, recovered = false;
|
2010-02-10 23:24:05 -05:00
|
|
|
while (true) {
|
2010-06-01 20:21:12 -04:00
|
|
|
// retreive state number from top of stack
|
2010-02-10 23:24:05 -05:00
|
|
|
state = stack[stack.length-1];
|
2010-06-01 20:21:12 -04:00
|
|
|
|
|
|
|
// use default actions if available
|
|
|
|
if (this.defaultActions[state]) {
|
|
|
|
action = this.defaultActions[state];
|
|
|
|
} else {
|
|
|
|
if (symbol == null)
|
|
|
|
symbol = lex();
|
|
|
|
// read action for current state and first input
|
|
|
|
action = table[state] && table[state][symbol];
|
|
|
|
}
|
2010-02-10 23:24:05 -05:00
|
|
|
|
2010-04-21 22:52:20 -04:00
|
|
|
// handle parse error
|
2010-03-07 18:51:10 -05:00
|
|
|
if (typeof action === 'undefined' || !action.length || !action[0]) {
|
2010-04-21 22:52:20 -04:00
|
|
|
|
|
|
|
if (!recovering) {
|
|
|
|
// Report error
|
|
|
|
expected = [];
|
|
|
|
for (p in table[state]) if (this.terminals_[p] && p > 2) {
|
|
|
|
expected.push("'"+this.terminals_[p]+"'");
|
|
|
|
}
|
2010-11-13 15:10:12 -05:00
|
|
|
var errStr = '';
|
2010-04-21 22:52:20 -04:00
|
|
|
if (this.lexer.showPosition) {
|
2010-11-13 15:10:12 -05:00
|
|
|
errStr = 'Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+'\nExpecting '+expected.join(', ');
|
2010-10-28 01:39:35 -04:00
|
|
|
} else {
|
2010-11-13 15:10:12 -05:00
|
|
|
errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " +
|
|
|
|
(symbol == 1 /*EOF*/ ? "end of input" :
|
|
|
|
("'"+(this.terminals_[symbol] || symbol)+"'"));
|
2010-04-21 22:52:20 -04:00
|
|
|
}
|
2010-11-13 15:10:12 -05:00
|
|
|
parseError.call(this, errStr,
|
|
|
|
{text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, expected: expected});
|
2010-04-21 22:52:20 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
// just recovered from another error
|
|
|
|
if (recovering == 3) {
|
|
|
|
if (symbol == EOF) {
|
2010-11-13 15:10:12 -05:00
|
|
|
throw new Error(errStr || 'Parsing halted.');
|
2010-04-21 22:52:20 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
// discard current lookahead and grab another
|
|
|
|
yyleng = this.lexer.yyleng;
|
|
|
|
yytext = this.lexer.yytext;
|
|
|
|
yylineno = this.lexer.yylineno;
|
2010-06-01 20:21:12 -04:00
|
|
|
symbol = lex();
|
2010-01-30 23:17:36 -05:00
|
|
|
}
|
2010-04-21 22:52:20 -04:00
|
|
|
|
|
|
|
// try to recover from error
|
|
|
|
while (1) {
|
|
|
|
// check for error recovery rule in this state
|
2010-11-13 15:10:12 -05:00
|
|
|
if ((TERROR.toString()) in table[state]) {
|
2010-04-21 22:52:20 -04:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
if (state == 0) {
|
2010-11-13 15:10:12 -05:00
|
|
|
throw new Error(errStr || 'Parsing halted.');
|
2010-04-21 22:52:20 -04:00
|
|
|
}
|
|
|
|
popStack(1);
|
|
|
|
state = stack[stack.length-1];
|
2010-02-13 18:19:59 -05:00
|
|
|
}
|
2010-04-21 22:52:20 -04:00
|
|
|
|
|
|
|
preErrorSymbol = symbol; // save the lookahead token
|
|
|
|
symbol = TERROR; // insert generic error symbol as new lookahead
|
|
|
|
state = stack[stack.length-1];
|
|
|
|
action = table[state] && table[state][TERROR];
|
|
|
|
recovering = 3; // allow 3 real symbols to be shifted before reporting a new error
|
2010-01-30 23:17:36 -05:00
|
|
|
}
|
2010-02-10 23:24:05 -05:00
|
|
|
|
|
|
|
// this shouldn't happen, unless resolve defaults are off
|
2010-03-07 18:51:10 -05:00
|
|
|
if (action[0] instanceof Array && action.length > 1) {
|
2010-02-10 23:24:05 -05:00
|
|
|
throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol);
|
|
|
|
}
|
|
|
|
|
2010-04-21 22:52:20 -04:00
|
|
|
a = action;
|
2010-02-10 23:24:05 -05:00
|
|
|
|
|
|
|
switch (a[0]) {
|
|
|
|
|
|
|
|
case 1: // shift
|
|
|
|
shifts++;
|
|
|
|
|
2010-04-21 22:52:20 -04:00
|
|
|
stack.push(symbol);
|
|
|
|
vstack.push(this.lexer.yytext); // semantic values or junk only, no terminals
|
2010-02-10 23:24:05 -05:00
|
|
|
stack.push(a[1]); // push state
|
2010-06-01 20:21:12 -04:00
|
|
|
symbol = null;
|
2010-04-21 22:52:20 -04:00
|
|
|
if (!preErrorSymbol) { // normal execution/no error
|
|
|
|
yyleng = this.lexer.yyleng;
|
|
|
|
yytext = this.lexer.yytext;
|
|
|
|
yylineno = this.lexer.yylineno;
|
|
|
|
if (recovering > 0)
|
|
|
|
recovering--;
|
|
|
|
} else { // error just occurred, resume old lookahead f/ before error
|
|
|
|
symbol = preErrorSymbol;
|
|
|
|
preErrorSymbol = null;
|
|
|
|
}
|
2010-02-10 23:24:05 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
case 2: // reduce
|
|
|
|
reductions++;
|
|
|
|
|
|
|
|
len = this.productions_[a[1]][1];
|
|
|
|
|
|
|
|
// perform semantic action
|
|
|
|
yyval.$ = vstack[vstack.length-len]; // default to $$ = $1
|
|
|
|
r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, a[1], vstack);
|
|
|
|
|
|
|
|
if (typeof r !== 'undefined') {
|
|
|
|
return r;
|
|
|
|
}
|
|
|
|
|
|
|
|
// pop off stack
|
|
|
|
if (len) {
|
|
|
|
stack = stack.slice(0,-1*len*2);
|
|
|
|
vstack = vstack.slice(0, -1*len);
|
|
|
|
}
|
|
|
|
|
|
|
|
stack.push(this.productions_[a[1]][0]); // push nonterminal (reduce)
|
|
|
|
vstack.push(yyval.$);
|
|
|
|
// goto new state = table[STATE][NONTERMINAL]
|
|
|
|
newState = table[stack[stack.length-2]][stack[stack.length-1]];
|
|
|
|
stack.push(newState);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 3: // accept
|
|
|
|
|
2010-02-12 13:35:34 -05:00
|
|
|
this.reductionCount = reductions;
|
|
|
|
this.shiftCount = shifts;
|
2010-02-10 23:24:05 -05:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2010-01-30 23:17:36 -05:00
|
|
|
}
|
2010-02-10 23:24:05 -05:00
|
|
|
|
|
|
|
return true;
|
|
|
|
}};
|
|
|
|
return parser;
|
|
|
|
})();
|
|
|
|
if (typeof require !== 'undefined') {
|
|
|
|
exports.parser = parser;
|
|
|
|
exports.parse = function () { return parser.parse.apply(parser, arguments); }
|
|
|
|
exports.main = function commonjsMain(args) {
|
|
|
|
if (!args[1])
|
|
|
|
throw new Error('Usage: '+args[0]+' FILE');
|
2010-06-28 00:26:45 -04:00
|
|
|
if (typeof process !== 'undefined') {
|
|
|
|
var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8");
|
|
|
|
} else {
|
|
|
|
var cwd = require("file").path(require("file").cwd());
|
|
|
|
var source = cwd.join(args[1]).read({charset: "utf-8"});
|
|
|
|
}
|
|
|
|
return exports.parser.parse(source);
|
2010-02-10 23:24:05 -05:00
|
|
|
}
|
2010-10-06 00:43:44 +09:00
|
|
|
if (typeof module !== 'undefined' && require.main === module) {
|
2010-06-28 00:26:45 -04:00
|
|
|
exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args);
|
2010-02-10 23:24:05 -05:00
|
|
|
}
|
2010-07-01 21:26:33 -04:00
|
|
|
}
|