removed global dependency from grammer
This commit is contained in:
parent
69942c9a81
commit
7bc91bf6c6
|
@ -5,7 +5,6 @@
|
|||
Lexer = require('./lexer').Lexer;
|
||||
parser = require('./parser').parser;
|
||||
helpers = require('./helpers').helpers;
|
||||
helpers.extend(global, require('./nodes'));
|
||||
if (require.extensions) {
|
||||
fs = require('fs');
|
||||
require.extensions['.coffee'] = function(module, filename) {
|
||||
|
@ -73,4 +72,5 @@
|
|||
return "";
|
||||
}
|
||||
};
|
||||
parser.yy = require('./nodes');
|
||||
})();
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
return [patternString, '$$ = $1;', options];
|
||||
}
|
||||
action = (match = (action + '').match(unwrap)) ? match[1] : ("(" + (action) + "())");
|
||||
action = action.replace(/\b(?:[A-Z][a-z]+Node|Expressions)\b/g, 'yy.$&');
|
||||
return [patternString, ("$$ = " + (action) + ";"), options];
|
||||
};
|
||||
grammar = {
|
||||
|
|
260
lib/parser.js
260
lib/parser.js
|
@ -9,15 +9,15 @@ performAction: function anonymous(yytext,yyleng,yylineno,yy) {
|
|||
|
||||
var $$ = arguments[5],$0=arguments[5].length;
|
||||
switch(arguments[4]) {
|
||||
case 1:return this.$ = new Expressions();
|
||||
case 1:return this.$ = new yy.Expressions();
|
||||
break;
|
||||
case 2:return this.$ = new Expressions();
|
||||
case 2:return this.$ = new yy.Expressions();
|
||||
break;
|
||||
case 3:return this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 4:return this.$ = $$[$0-2+1-1];
|
||||
break;
|
||||
case 5:this.$ = Expressions.wrap([$$[$0-1+1-1]]);
|
||||
case 5:this.$ = yy.Expressions.wrap([$$[$0-1+1-1]]);
|
||||
break;
|
||||
case 6:this.$ = $$[$0-3+1-1].push($$[$0-3+3-1]);
|
||||
break;
|
||||
|
@ -31,11 +31,11 @@ case 10:this.$ = $$[$0-1+1-1];
|
|||
break;
|
||||
case 11:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 12:this.$ = new LiteralNode($$[$0-1+1-1]);
|
||||
case 12:this.$ = new yy.LiteralNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 13:this.$ = new LiteralNode($$[$0-1+1-1]);
|
||||
case 13:this.$ = new yy.LiteralNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 14:this.$ = new LiteralNode($$[$0-1+1-1]);
|
||||
case 14:this.$ = new yy.LiteralNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 15:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
|
@ -67,63 +67,63 @@ case 28:this.$ = $$[$0-1+1-1];
|
|||
break;
|
||||
case 29:this.$ = $$[$0-3+2-1];
|
||||
break;
|
||||
case 30:this.$ = new Expressions();
|
||||
case 30:this.$ = new yy.Expressions();
|
||||
break;
|
||||
case 31:this.$ = Expressions.wrap([$$[$0-2+2-1]]);
|
||||
case 31:this.$ = yy.Expressions.wrap([$$[$0-2+2-1]]);
|
||||
break;
|
||||
case 32:this.$ = new LiteralNode($$[$0-1+1-1]);
|
||||
case 32:this.$ = new yy.LiteralNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 33:this.$ = new LiteralNode($$[$0-1+1-1]);
|
||||
case 33:this.$ = new yy.LiteralNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 34:this.$ = new LiteralNode($$[$0-1+1-1]);
|
||||
case 34:this.$ = new yy.LiteralNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 35:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 36:this.$ = new LiteralNode($$[$0-1+1-1]);
|
||||
case 36:this.$ = new yy.LiteralNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 37:this.$ = new LiteralNode($$[$0-1+1-1]);
|
||||
case 37:this.$ = new yy.LiteralNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 38:this.$ = new LiteralNode(true);
|
||||
case 38:this.$ = new yy.LiteralNode(true);
|
||||
break;
|
||||
case 39:this.$ = new LiteralNode(false);
|
||||
case 39:this.$ = new yy.LiteralNode(false);
|
||||
break;
|
||||
case 40:this.$ = new LiteralNode(true);
|
||||
case 40:this.$ = new yy.LiteralNode(true);
|
||||
break;
|
||||
case 41:this.$ = new LiteralNode(false);
|
||||
case 41:this.$ = new yy.LiteralNode(false);
|
||||
break;
|
||||
case 42:this.$ = new LiteralNode(true);
|
||||
case 42:this.$ = new yy.LiteralNode(true);
|
||||
break;
|
||||
case 43:this.$ = new LiteralNode(false);
|
||||
case 43:this.$ = new yy.LiteralNode(false);
|
||||
break;
|
||||
case 44:this.$ = new AssignNode($$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 44:this.$ = new yy.AssignNode($$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 45:this.$ = new AssignNode($$[$0-5+1-1], $$[$0-5+4-1]);
|
||||
case 45:this.$ = new yy.AssignNode($$[$0-5+1-1], $$[$0-5+4-1]);
|
||||
break;
|
||||
case 46:this.$ = new ValueNode($$[$0-1+1-1]);
|
||||
case 46:this.$ = new yy.ValueNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 47:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 48:this.$ = new AssignNode(new ValueNode($$[$0-3+1-1]), $$[$0-3+3-1], 'object');
|
||||
case 48:this.$ = new yy.AssignNode(new yy.ValueNode($$[$0-3+1-1]), $$[$0-3+3-1], 'object');
|
||||
break;
|
||||
case 49:this.$ = new AssignNode(new ValueNode($$[$0-3+1-1]), $$[$0-3+3-1], 'object');
|
||||
case 49:this.$ = new yy.AssignNode(new yy.ValueNode($$[$0-3+1-1]), $$[$0-3+3-1], 'object');
|
||||
break;
|
||||
case 50:this.$ = new AssignNode(new ValueNode($$[$0-5+1-1]), $$[$0-5+4-1], 'object');
|
||||
case 50:this.$ = new yy.AssignNode(new yy.ValueNode($$[$0-5+1-1]), $$[$0-5+4-1], 'object');
|
||||
break;
|
||||
case 51:this.$ = new AssignNode(new ValueNode($$[$0-5+1-1]), $$[$0-5+4-1], 'object');
|
||||
case 51:this.$ = new yy.AssignNode(new yy.ValueNode($$[$0-5+1-1]), $$[$0-5+4-1], 'object');
|
||||
break;
|
||||
case 52:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 53:this.$ = new ReturnNode($$[$0-2+2-1]);
|
||||
case 53:this.$ = new yy.ReturnNode($$[$0-2+2-1]);
|
||||
break;
|
||||
case 54:this.$ = new ReturnNode(new ValueNode(new LiteralNode('null')));
|
||||
case 54:this.$ = new yy.ReturnNode(new yy.ValueNode(new yy.LiteralNode('null')));
|
||||
break;
|
||||
case 55:this.$ = new CommentNode($$[$0-1+1-1]);
|
||||
case 55:this.$ = new yy.CommentNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 56:this.$ = new ExistenceNode($$[$0-2+1-1]);
|
||||
case 56:this.$ = new yy.ExistenceNode($$[$0-2+1-1]);
|
||||
break;
|
||||
case 57:this.$ = new CodeNode($$[$0-5+2-1], $$[$0-5+5-1], $$[$0-5+4-1]);
|
||||
case 57:this.$ = new yy.CodeNode($$[$0-5+2-1], $$[$0-5+5-1], $$[$0-5+4-1]);
|
||||
break;
|
||||
case 58:this.$ = new CodeNode([], $$[$0-2+2-1], $$[$0-2+1-1]);
|
||||
case 58:this.$ = new yy.CodeNode([], $$[$0-2+2-1], $$[$0-2+1-1]);
|
||||
break;
|
||||
case 59:this.$ = 'func';
|
||||
break;
|
||||
|
@ -139,55 +139,55 @@ case 64:this.$ = [$$[$0-1+1-1]];
|
|||
break;
|
||||
case 65:this.$ = $$[$0-3+1-1].concat([$$[$0-3+3-1]]);
|
||||
break;
|
||||
case 66:this.$ = new LiteralNode($$[$0-1+1-1]);
|
||||
case 66:this.$ = new yy.LiteralNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 67:this.$ = new ParamNode($$[$0-2+2-1], true);
|
||||
case 67:this.$ = new yy.ParamNode($$[$0-2+2-1], true);
|
||||
break;
|
||||
case 68:this.$ = new ParamNode($$[$0-4+1-1], false, true);
|
||||
case 68:this.$ = new yy.ParamNode($$[$0-4+1-1], false, true);
|
||||
break;
|
||||
case 69:this.$ = new ParamNode($$[$0-5+2-1], true, true);
|
||||
case 69:this.$ = new yy.ParamNode($$[$0-5+2-1], true, true);
|
||||
break;
|
||||
case 70:this.$ = new SplatNode($$[$0-4+1-1]);
|
||||
case 70:this.$ = new yy.SplatNode($$[$0-4+1-1]);
|
||||
break;
|
||||
case 71:this.$ = new ValueNode($$[$0-1+1-1]);
|
||||
case 71:this.$ = new yy.ValueNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 72:this.$ = $$[$0-2+1-1].push($$[$0-2+2-1]);
|
||||
break;
|
||||
case 73:this.$ = new ValueNode($$[$0-2+1-1], [$$[$0-2+2-1]]);
|
||||
case 73:this.$ = new yy.ValueNode($$[$0-2+1-1], [$$[$0-2+2-1]]);
|
||||
break;
|
||||
case 74:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 75:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 76:this.$ = new ValueNode($$[$0-1+1-1]);
|
||||
case 76:this.$ = new yy.ValueNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 77:this.$ = new ValueNode($$[$0-1+1-1]);
|
||||
case 77:this.$ = new yy.ValueNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 78:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 79:this.$ = new ValueNode($$[$0-1+1-1]);
|
||||
case 79:this.$ = new yy.ValueNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 80:this.$ = new ValueNode($$[$0-1+1-1]);
|
||||
case 80:this.$ = new yy.ValueNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 81:this.$ = new ValueNode($$[$0-1+1-1]);
|
||||
case 81:this.$ = new yy.ValueNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 82:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 83:this.$ = new ValueNode(new LiteralNode('null'));
|
||||
case 83:this.$ = new yy.ValueNode(new yy.LiteralNode('null'));
|
||||
break;
|
||||
case 84:this.$ = new AccessorNode($$[$0-2+2-1]);
|
||||
case 84:this.$ = new yy.AccessorNode($$[$0-2+2-1]);
|
||||
break;
|
||||
case 85:this.$ = new AccessorNode($$[$0-2+2-1], 'prototype');
|
||||
case 85:this.$ = new yy.AccessorNode($$[$0-2+2-1], 'prototype');
|
||||
break;
|
||||
case 86:this.$ = new AccessorNode(new LiteralNode('prototype'));
|
||||
case 86:this.$ = new yy.AccessorNode(new yy.LiteralNode('prototype'));
|
||||
break;
|
||||
case 87:this.$ = new AccessorNode($$[$0-2+2-1], 'soak');
|
||||
case 87:this.$ = new yy.AccessorNode($$[$0-2+2-1], 'soak');
|
||||
break;
|
||||
case 88:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 89:this.$ = new SliceNode($$[$0-1+1-1]);
|
||||
case 89:this.$ = new yy.SliceNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 90:this.$ = new IndexNode($$[$0-3+2-1]);
|
||||
case 90:this.$ = new yy.IndexNode($$[$0-3+2-1]);
|
||||
break;
|
||||
case 91:this.$ = (function () {
|
||||
$$[$0-2+2-1].soakNode = true;
|
||||
|
@ -199,7 +199,7 @@ case 92:this.$ = (function () {
|
|||
return $$[$0-2+2-1];
|
||||
}());
|
||||
break;
|
||||
case 93:this.$ = new ObjectNode($$[$0-4+2-1]);
|
||||
case 93:this.$ = new yy.ObjectNode($$[$0-4+2-1]);
|
||||
break;
|
||||
case 94:this.$ = [];
|
||||
break;
|
||||
|
@ -211,21 +211,21 @@ case 97:this.$ = $$[$0-4+1-1].concat([$$[$0-4+4-1]]);
|
|||
break;
|
||||
case 98:this.$ = $$[$0-6+1-1].concat($$[$0-6+4-1]);
|
||||
break;
|
||||
case 99:this.$ = new ClassNode($$[$0-2+2-1]);
|
||||
case 99:this.$ = new yy.ClassNode($$[$0-2+2-1]);
|
||||
break;
|
||||
case 100:this.$ = new ClassNode($$[$0-4+2-1], $$[$0-4+4-1]);
|
||||
case 100:this.$ = new yy.ClassNode($$[$0-4+2-1], $$[$0-4+4-1]);
|
||||
break;
|
||||
case 101:this.$ = new ClassNode($$[$0-5+2-1], null, $$[$0-5+4-1]);
|
||||
case 101:this.$ = new yy.ClassNode($$[$0-5+2-1], null, $$[$0-5+4-1]);
|
||||
break;
|
||||
case 102:this.$ = new ClassNode($$[$0-7+2-1], $$[$0-7+4-1], $$[$0-7+6-1]);
|
||||
case 102:this.$ = new yy.ClassNode($$[$0-7+2-1], $$[$0-7+4-1], $$[$0-7+6-1]);
|
||||
break;
|
||||
case 103:this.$ = new ClassNode('__temp__', null, $$[$0-4+3-1]);
|
||||
case 103:this.$ = new yy.ClassNode('__temp__', null, $$[$0-4+3-1]);
|
||||
break;
|
||||
case 104:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 105:this.$ = new AssignNode(new ValueNode($$[$0-3+1-1]), $$[$0-3+3-1], 'this');
|
||||
case 105:this.$ = new yy.AssignNode(new yy.ValueNode($$[$0-3+1-1]), $$[$0-3+3-1], 'this');
|
||||
break;
|
||||
case 106:this.$ = new AssignNode(new ValueNode($$[$0-5+1-1]), $$[$0-5+4-1], 'this');
|
||||
case 106:this.$ = new yy.AssignNode(new yy.ValueNode($$[$0-5+1-1]), $$[$0-5+4-1], 'this');
|
||||
break;
|
||||
case 107:this.$ = [];
|
||||
break;
|
||||
|
@ -239,17 +239,17 @@ case 111:this.$ = $$[$0-1+1-1];
|
|||
break;
|
||||
case 112:this.$ = $$[$0-2+2-1].newInstance();
|
||||
break;
|
||||
case 113:this.$ = (new CallNode($$[$0-2+2-1], [])).newInstance();
|
||||
case 113:this.$ = (new yy.CallNode($$[$0-2+2-1], [])).newInstance();
|
||||
break;
|
||||
case 114:this.$ = new ExtendsNode($$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 114:this.$ = new yy.ExtendsNode($$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 115:this.$ = new CallNode($$[$0-3+1-1], $$[$0-3+3-1], $$[$0-3+2-1]);
|
||||
case 115:this.$ = new yy.CallNode($$[$0-3+1-1], $$[$0-3+3-1], $$[$0-3+2-1]);
|
||||
break;
|
||||
case 116:this.$ = new CallNode($$[$0-3+1-1], $$[$0-3+3-1], $$[$0-3+2-1]);
|
||||
case 116:this.$ = new yy.CallNode($$[$0-3+1-1], $$[$0-3+3-1], $$[$0-3+2-1]);
|
||||
break;
|
||||
case 117:this.$ = new CallNode('super', [new SplatNode(new LiteralNode('arguments'))]);
|
||||
case 117:this.$ = new yy.CallNode('super', [new yy.SplatNode(new yy.LiteralNode('arguments'))]);
|
||||
break;
|
||||
case 118:this.$ = new CallNode('super', $$[$0-2+2-1]);
|
||||
case 118:this.$ = new yy.CallNode('super', $$[$0-2+2-1]);
|
||||
break;
|
||||
case 119:this.$ = false;
|
||||
break;
|
||||
|
@ -259,27 +259,27 @@ case 121:this.$ = [];
|
|||
break;
|
||||
case 122:this.$ = $$[$0-4+2-1];
|
||||
break;
|
||||
case 123:this.$ = new ValueNode(new LiteralNode('this'));
|
||||
case 123:this.$ = new yy.ValueNode(new yy.LiteralNode('this'));
|
||||
break;
|
||||
case 124:this.$ = new ValueNode(new LiteralNode('this'));
|
||||
case 124:this.$ = new yy.ValueNode(new yy.LiteralNode('this'));
|
||||
break;
|
||||
case 125:this.$ = 'inclusive';
|
||||
break;
|
||||
case 126:this.$ = 'exclusive';
|
||||
break;
|
||||
case 127:this.$ = new ValueNode(new LiteralNode('this'), [new AccessorNode($$[$0-2+2-1])]);
|
||||
case 127:this.$ = new yy.ValueNode(new yy.LiteralNode('this'), [new yy.AccessorNode($$[$0-2+2-1])]);
|
||||
break;
|
||||
case 128:this.$ = new RangeNode($$[$0-5+2-1], $$[$0-5+4-1], $$[$0-5+3-1]);
|
||||
case 128:this.$ = new yy.RangeNode($$[$0-5+2-1], $$[$0-5+4-1], $$[$0-5+3-1]);
|
||||
break;
|
||||
case 129:this.$ = new RangeNode($$[$0-5+2-1], $$[$0-5+4-1], $$[$0-5+3-1]);
|
||||
case 129:this.$ = new yy.RangeNode($$[$0-5+2-1], $$[$0-5+4-1], $$[$0-5+3-1]);
|
||||
break;
|
||||
case 130:this.$ = new RangeNode($$[$0-4+2-1], null, $$[$0-4+3-1]);
|
||||
case 130:this.$ = new yy.RangeNode($$[$0-4+2-1], null, $$[$0-4+3-1]);
|
||||
break;
|
||||
case 131:this.$ = new RangeNode(null, $$[$0-4+3-1], $$[$0-4+2-1]);
|
||||
case 131:this.$ = new yy.RangeNode(null, $$[$0-4+3-1], $$[$0-4+2-1]);
|
||||
break;
|
||||
case 132:this.$ = new ArrayNode([]);
|
||||
case 132:this.$ = new yy.ArrayNode([]);
|
||||
break;
|
||||
case 133:this.$ = new ArrayNode($$[$0-4+2-1]);
|
||||
case 133:this.$ = new yy.ArrayNode($$[$0-4+2-1]);
|
||||
break;
|
||||
case 134:this.$ = [$$[$0-1+1-1]];
|
||||
break;
|
||||
|
@ -299,55 +299,55 @@ case 141:this.$ = $$[$0-1+1-1];
|
|||
break;
|
||||
case 142:this.$ = $$[$0-3+1-1] instanceof Array ? $$[$0-3+1-1].concat([$$[$0-3+3-1]]) : [$$[$0-3+1-1]].concat([$$[$0-3+3-1]]);
|
||||
break;
|
||||
case 143:this.$ = new TryNode($$[$0-3+2-1], $$[$0-3+3-1][0], $$[$0-3+3-1][1]);
|
||||
case 143:this.$ = new yy.TryNode($$[$0-3+2-1], $$[$0-3+3-1][0], $$[$0-3+3-1][1]);
|
||||
break;
|
||||
case 144:this.$ = new TryNode($$[$0-4+2-1], null, null, $$[$0-4+4-1]);
|
||||
case 144:this.$ = new yy.TryNode($$[$0-4+2-1], null, null, $$[$0-4+4-1]);
|
||||
break;
|
||||
case 145:this.$ = new TryNode($$[$0-5+2-1], $$[$0-5+3-1][0], $$[$0-5+3-1][1], $$[$0-5+5-1]);
|
||||
case 145:this.$ = new yy.TryNode($$[$0-5+2-1], $$[$0-5+3-1][0], $$[$0-5+3-1][1], $$[$0-5+5-1]);
|
||||
break;
|
||||
case 146:this.$ = [$$[$0-3+2-1], $$[$0-3+3-1]];
|
||||
break;
|
||||
case 147:this.$ = new ThrowNode($$[$0-2+2-1]);
|
||||
case 147:this.$ = new yy.ThrowNode($$[$0-2+2-1]);
|
||||
break;
|
||||
case 148:this.$ = new ParentheticalNode($$[$0-3+2-1]);
|
||||
case 148:this.$ = new yy.ParentheticalNode($$[$0-3+2-1]);
|
||||
break;
|
||||
case 149:this.$ = new ParentheticalNode(new LiteralNode(''));
|
||||
case 149:this.$ = new yy.ParentheticalNode(new yy.LiteralNode(''));
|
||||
break;
|
||||
case 150:this.$ = new WhileNode($$[$0-2+2-1]);
|
||||
case 150:this.$ = new yy.WhileNode($$[$0-2+2-1]);
|
||||
break;
|
||||
case 151:this.$ = new WhileNode($$[$0-4+2-1], {
|
||||
case 151:this.$ = new yy.WhileNode($$[$0-4+2-1], {
|
||||
guard: $$[$0-4+4-1]
|
||||
});
|
||||
break;
|
||||
case 152:this.$ = new WhileNode($$[$0-2+2-1], {
|
||||
case 152:this.$ = new yy.WhileNode($$[$0-2+2-1], {
|
||||
invert: true
|
||||
});
|
||||
break;
|
||||
case 153:this.$ = new WhileNode($$[$0-4+2-1], {
|
||||
case 153:this.$ = new yy.WhileNode($$[$0-4+2-1], {
|
||||
invert: true,
|
||||
guard: $$[$0-4+4-1]
|
||||
});
|
||||
break;
|
||||
case 154:this.$ = $$[$0-2+1-1].addBody($$[$0-2+2-1]);
|
||||
break;
|
||||
case 155:this.$ = $$[$0-2+2-1].addBody(Expressions.wrap([$$[$0-2+1-1]]));
|
||||
case 155:this.$ = $$[$0-2+2-1].addBody(yy.Expressions.wrap([$$[$0-2+1-1]]));
|
||||
break;
|
||||
case 156:this.$ = $$[$0-2+2-1].addBody(Expressions.wrap([$$[$0-2+1-1]]));
|
||||
case 156:this.$ = $$[$0-2+2-1].addBody(yy.Expressions.wrap([$$[$0-2+1-1]]));
|
||||
break;
|
||||
case 157:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 158:this.$ = new WhileNode(new LiteralNode('true')).addBody($$[$0-2+2-1]);
|
||||
case 158:this.$ = new yy.WhileNode(new yy.LiteralNode('true')).addBody($$[$0-2+2-1]);
|
||||
break;
|
||||
case 159:this.$ = new WhileNode(new LiteralNode('true')).addBody(Expressions.wrap([$$[$0-2+2-1]]));
|
||||
case 159:this.$ = new yy.WhileNode(new yy.LiteralNode('true')).addBody(yy.Expressions.wrap([$$[$0-2+2-1]]));
|
||||
break;
|
||||
case 160:this.$ = new ForNode($$[$0-2+1-1], $$[$0-2+2-1], $$[$0-2+2-1].vars[0], $$[$0-2+2-1].vars[1]);
|
||||
case 160:this.$ = new yy.ForNode($$[$0-2+1-1], $$[$0-2+2-1], $$[$0-2+2-1].vars[0], $$[$0-2+2-1].vars[1]);
|
||||
break;
|
||||
case 161:this.$ = new ForNode($$[$0-2+1-1], $$[$0-2+2-1], $$[$0-2+2-1].vars[0], $$[$0-2+2-1].vars[1]);
|
||||
case 161:this.$ = new yy.ForNode($$[$0-2+1-1], $$[$0-2+2-1], $$[$0-2+2-1].vars[0], $$[$0-2+2-1].vars[1]);
|
||||
break;
|
||||
case 162:this.$ = new ForNode($$[$0-2+2-1], $$[$0-2+1-1], $$[$0-2+1-1].vars[0], $$[$0-2+1-1].vars[1]);
|
||||
case 162:this.$ = new yy.ForNode($$[$0-2+2-1], $$[$0-2+1-1], $$[$0-2+1-1].vars[0], $$[$0-2+1-1].vars[1]);
|
||||
break;
|
||||
case 163:this.$ = {
|
||||
source: new ValueNode($$[$0-2+2-1]),
|
||||
source: new yy.ValueNode($$[$0-2+2-1]),
|
||||
vars: []
|
||||
};
|
||||
break;
|
||||
|
@ -366,9 +366,9 @@ case 166:this.$ = (function () {
|
|||
break;
|
||||
case 167:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 168:this.$ = new ValueNode($$[$0-1+1-1]);
|
||||
case 168:this.$ = new yy.ValueNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 169:this.$ = new ValueNode($$[$0-1+1-1]);
|
||||
case 169:this.$ = new yy.ValueNode($$[$0-1+1-1]);
|
||||
break;
|
||||
case 170:this.$ = [$$[$0-1+1-1]];
|
||||
break;
|
||||
|
@ -411,13 +411,13 @@ case 178:this.$ = {
|
|||
guard: $$[$0-6+6-1]
|
||||
};
|
||||
break;
|
||||
case 179:this.$ = new SwitchNode($$[$0-5+2-1], $$[$0-5+4-1]);
|
||||
case 179:this.$ = new yy.SwitchNode($$[$0-5+2-1], $$[$0-5+4-1]);
|
||||
break;
|
||||
case 180:this.$ = new SwitchNode($$[$0-7+2-1], $$[$0-7+4-1], $$[$0-7+6-1]);
|
||||
case 180:this.$ = new yy.SwitchNode($$[$0-7+2-1], $$[$0-7+4-1], $$[$0-7+6-1]);
|
||||
break;
|
||||
case 181:this.$ = new SwitchNode(null, $$[$0-4+3-1]);
|
||||
case 181:this.$ = new yy.SwitchNode(null, $$[$0-4+3-1]);
|
||||
break;
|
||||
case 182:this.$ = new SwitchNode(null, $$[$0-6+3-1], $$[$0-6+5-1]);
|
||||
case 182:this.$ = new yy.SwitchNode(null, $$[$0-6+3-1], $$[$0-6+5-1]);
|
||||
break;
|
||||
case 183:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
|
@ -427,83 +427,83 @@ case 185:this.$ = [[$$[$0-3+2-1], $$[$0-3+3-1]]];
|
|||
break;
|
||||
case 186:this.$ = [[$$[$0-4+2-1], $$[$0-4+3-1]]];
|
||||
break;
|
||||
case 187:this.$ = new IfNode($$[$0-3+2-1], $$[$0-3+3-1]);
|
||||
case 187:this.$ = new yy.IfNode($$[$0-3+2-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 188:this.$ = new IfNode($$[$0-3+2-1], $$[$0-3+3-1], {
|
||||
case 188:this.$ = new yy.IfNode($$[$0-3+2-1], $$[$0-3+3-1], {
|
||||
invert: true
|
||||
});
|
||||
break;
|
||||
case 189:this.$ = $$[$0-5+1-1].addElse((new IfNode($$[$0-5+4-1], $$[$0-5+5-1])).forceStatement());
|
||||
case 189:this.$ = $$[$0-5+1-1].addElse((new yy.IfNode($$[$0-5+4-1], $$[$0-5+5-1])).forceStatement());
|
||||
break;
|
||||
case 190:this.$ = $$[$0-3+1-1].addElse($$[$0-3+3-1]);
|
||||
break;
|
||||
case 191:this.$ = $$[$0-1+1-1];
|
||||
break;
|
||||
case 192:this.$ = new IfNode($$[$0-3+3-1], Expressions.wrap([$$[$0-3+1-1]]), {
|
||||
case 192:this.$ = new yy.IfNode($$[$0-3+3-1], yy.Expressions.wrap([$$[$0-3+1-1]]), {
|
||||
statement: true
|
||||
});
|
||||
break;
|
||||
case 193:this.$ = new IfNode($$[$0-3+3-1], Expressions.wrap([$$[$0-3+1-1]]), {
|
||||
case 193:this.$ = new yy.IfNode($$[$0-3+3-1], yy.Expressions.wrap([$$[$0-3+1-1]]), {
|
||||
statement: true
|
||||
});
|
||||
break;
|
||||
case 194:this.$ = new IfNode($$[$0-3+3-1], Expressions.wrap([$$[$0-3+1-1]]), {
|
||||
case 194:this.$ = new yy.IfNode($$[$0-3+3-1], yy.Expressions.wrap([$$[$0-3+1-1]]), {
|
||||
statement: true,
|
||||
invert: true
|
||||
});
|
||||
break;
|
||||
case 195:this.$ = new IfNode($$[$0-3+3-1], Expressions.wrap([$$[$0-3+1-1]]), {
|
||||
case 195:this.$ = new yy.IfNode($$[$0-3+3-1], yy.Expressions.wrap([$$[$0-3+1-1]]), {
|
||||
statement: true,
|
||||
invert: true
|
||||
});
|
||||
break;
|
||||
case 196:this.$ = new OpNode($$[$0-2+1-1], $$[$0-2+2-1]);
|
||||
case 196:this.$ = new yy.OpNode($$[$0-2+1-1], $$[$0-2+2-1]);
|
||||
break;
|
||||
case 197:this.$ = new OpNode('-', $$[$0-2+2-1]);
|
||||
case 197:this.$ = new yy.OpNode('-', $$[$0-2+2-1]);
|
||||
break;
|
||||
case 198:this.$ = new OpNode('+', $$[$0-2+2-1]);
|
||||
case 198:this.$ = new yy.OpNode('+', $$[$0-2+2-1]);
|
||||
break;
|
||||
case 199:this.$ = new OpNode('--', $$[$0-2+2-1]);
|
||||
case 199:this.$ = new yy.OpNode('--', $$[$0-2+2-1]);
|
||||
break;
|
||||
case 200:this.$ = new OpNode('++', $$[$0-2+2-1]);
|
||||
case 200:this.$ = new yy.OpNode('++', $$[$0-2+2-1]);
|
||||
break;
|
||||
case 201:this.$ = new OpNode('--', $$[$0-2+1-1], null, true);
|
||||
case 201:this.$ = new yy.OpNode('--', $$[$0-2+1-1], null, true);
|
||||
break;
|
||||
case 202:this.$ = new OpNode('++', $$[$0-2+1-1], null, true);
|
||||
case 202:this.$ = new yy.OpNode('++', $$[$0-2+1-1], null, true);
|
||||
break;
|
||||
case 203:this.$ = new OpNode('?', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 203:this.$ = new yy.OpNode('?', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 204:this.$ = new OpNode('+', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 204:this.$ = new yy.OpNode('+', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 205:this.$ = new OpNode('-', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 205:this.$ = new yy.OpNode('-', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 206:this.$ = new OpNode('==', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 206:this.$ = new yy.OpNode('==', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 207:this.$ = new OpNode('!=', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 207:this.$ = new yy.OpNode('!=', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 208:this.$ = new OpNode($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 208:this.$ = new yy.OpNode($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 209:this.$ = new OpNode($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 209:this.$ = new yy.OpNode($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 210:this.$ = new OpNode($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 210:this.$ = new yy.OpNode($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 211:this.$ = new OpNode($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 211:this.$ = new yy.OpNode($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 212:this.$ = new OpNode($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 212:this.$ = new yy.OpNode($$[$0-3+2-1], $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 213:this.$ = new OpNode($$[$0-5+2-1], $$[$0-5+1-1], $$[$0-5+4-1]);
|
||||
case 213:this.$ = new yy.OpNode($$[$0-5+2-1], $$[$0-5+1-1], $$[$0-5+4-1]);
|
||||
break;
|
||||
case 214:this.$ = new InNode($$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 214:this.$ = new yy.InNode($$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 215:this.$ = new OpNode('in', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 215:this.$ = new yy.OpNode('in', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 216:this.$ = new OpNode('instanceof', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
case 216:this.$ = new yy.OpNode('instanceof', $$[$0-3+1-1], $$[$0-3+3-1]);
|
||||
break;
|
||||
case 217:this.$ = new OpNode($$[$0-4+2-1], new InNode($$[$0-4+1-1], $$[$0-4+4-1]));
|
||||
case 217:this.$ = new yy.OpNode($$[$0-4+2-1], new yy.InNode($$[$0-4+1-1], $$[$0-4+4-1]));
|
||||
break;
|
||||
case 218:this.$ = new OpNode($$[$0-4+2-1], new ParentheticalNode(new OpNode('in', $$[$0-4+1-1], $$[$0-4+4-1])));
|
||||
case 218:this.$ = new yy.OpNode($$[$0-4+2-1], new yy.ParentheticalNode(new yy.OpNode('in', $$[$0-4+1-1], $$[$0-4+4-1])));
|
||||
break;
|
||||
case 219:this.$ = new OpNode($$[$0-4+2-1], new ParentheticalNode(new OpNode('instanceof', $$[$0-4+1-1], $$[$0-4+4-1])));
|
||||
case 219:this.$ = new yy.OpNode($$[$0-4+2-1], new yy.ParentheticalNode(new yy.OpNode('instanceof', $$[$0-4+1-1], $$[$0-4+4-1])));
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
@ -701,7 +701,7 @@ exports.main = function commonjsMain(args) {
|
|||
}
|
||||
return exports.parser.parse(source);
|
||||
}
|
||||
if (typeof module !== "undefined" && require.main === module) {
|
||||
if (typeof module !== 'undefined' && require.main === module) {
|
||||
exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args);
|
||||
}
|
||||
}
|
|
@ -12,7 +12,6 @@ if process?
|
|||
Lexer = require('./lexer').Lexer
|
||||
parser = require('./parser').parser
|
||||
helpers = require('./helpers').helpers
|
||||
helpers.extend global, require './nodes'
|
||||
# TODO: Remove registerExtension when fully deprecated
|
||||
if require.extensions
|
||||
fs = require 'fs'
|
||||
|
@ -82,3 +81,5 @@ parser.lexer =
|
|||
@tokens = tokens
|
||||
@pos = 0
|
||||
upcomingInput: -> ""
|
||||
|
||||
parser.yy = require './nodes'
|
||||
|
|
|
@ -33,6 +33,7 @@ unwrap = /function\s*\(\)\s*\{\s*return\s*([\s\S]*);\s*\}/
|
|||
o = (patternString, action, options) ->
|
||||
return [patternString, '$$ = $1;', options] unless action
|
||||
action = if match = (action + '').match(unwrap) then match[1] else "(#{action}())"
|
||||
action = action.replace /\b(?:[A-Z][a-z]+Node|Expressions)\b/g, 'yy.$&'
|
||||
[patternString, "$$ = #{action};", options]
|
||||
|
||||
# Grammatical Rules
|
||||
|
|
Loading…
Reference in New Issue