mirror of
https://github.com/jashkenas/coffeescript.git
synced 2022-11-09 12:23:24 -05:00
upgrading to latest jison, rebuilding the parser
This commit is contained in:
parent
29267593c2
commit
fd8b540a66
2 changed files with 9 additions and 32 deletions
|
@ -209,7 +209,7 @@ case 99:this.$ = [$$[$0-1+1-1]];
|
|||
break;
|
||||
case 100:this.$ = $$[$0-3+1-1].concat([$$[$0-3+3-1]]);
|
||||
break;
|
||||
case 101:this.$ = yytext;
|
||||
case 101:this.$ = new LiteralNode(yytext);
|
||||
break;
|
||||
case 102:this.$ = new SplatNode($$[$0-4+1-1]);
|
||||
break;
|
||||
|
@ -436,8 +436,6 @@ parse: function parse(input) {
|
|||
var symbol, state, action, a, r, yyval={},p,len,ip=0,newState, expected;
|
||||
symbol = lex();
|
||||
while (true) {
|
||||
// this.trace('stack:',JSON.stringify(stack), '\n\t\t\tinput:', this.lexer._input);
|
||||
// this.trace('vstack:',JSON.stringify(vstack));
|
||||
// set first input
|
||||
state = stack[stack.length-1];
|
||||
// read action for current state and first input
|
||||
|
@ -448,13 +446,11 @@ parse: function parse(input) {
|
|||
for (p in table[state]) if (this.terminals_[p] && p != 1) {
|
||||
expected.push("'"+this.terminals_[p]+"'");
|
||||
}
|
||||
self.trace("stack:",JSON.stringify(stack), 'symbol:',symbol, 'input', this.lexer.upcomingInput());
|
||||
if (this.lexer.upcomingInput) self.trace('input', this.lexer.upcomingInput());
|
||||
parseError('Parse error on line '+(yylineno+1)+'. Expecting: '+expected.join(', ')+"\n"+(this.lexer.showPosition && this.lexer.showPosition()),
|
||||
{text: this.lexer.match, token: symbol, line: this.lexer.yylineno});
|
||||
}
|
||||
|
||||
// this.trace('action:',action);
|
||||
this.trace('action:',action);
|
||||
|
||||
// this shouldn't happen, unless resolve defaults are off
|
||||
if (action.length > 1) {
|
||||
|
@ -481,7 +477,6 @@ parse: function parse(input) {
|
|||
reductions++;
|
||||
|
||||
len = this.productions_[a[1]][1];
|
||||
// this.trace('reduce by: ', this.productions ? this.productions[a[1]] : a[1]);
|
||||
|
||||
// perform semantic action
|
||||
yyval.$ = vstack[vstack.length-len]; // default to $$ = $1
|
||||
|
@ -491,11 +486,8 @@ parse: function parse(input) {
|
|||
return r;
|
||||
}
|
||||
|
||||
// this.trace('yyval=',JSON.stringify(yyval.$));
|
||||
|
||||
// pop off stack
|
||||
if (len) {
|
||||
// this.trace('production length:',len);
|
||||
stack = stack.slice(0,-1*len*2);
|
||||
vstack = vstack.slice(0, -1*len);
|
||||
}
|
||||
|
@ -509,10 +501,8 @@ parse: function parse(input) {
|
|||
|
||||
case 3: // accept
|
||||
|
||||
// this.trace('stack:',stack, '\n\tinput:', this.lexer._input);
|
||||
// this.trace('vstack:',JSON.stringify(vstack));
|
||||
// this.trace('Total reductions:', reductions);
|
||||
// this.trace('Total shifts:', shifts);
|
||||
this.reductionCount = reductions;
|
||||
this.shiftCount = shifts;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -535,4 +525,4 @@ exports.main = function commonjsMain(args) {
|
|||
if (require.main === module) {
|
||||
exports.main(require("system").args);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue