La recuperación de errores no parece estar implementada en Jison. véase
[~/srcPLgrado/jison/jison-aSb(error)]$ cat aSb.jison %lex %% \s+ {} [ab] { return yytext; } . { return "INVALID"; } /lex %% S: /* empty */ { $$ = ''; console.log("empty"); } | 'a' S 'b' { $$ = $1 + $2 + $3; console.log("S -> aSb"); } | 'a' S error ; %%
parse: function parse(input) { var self = this, stack = [0], vstack = [null], // semantic value stack lstack = [], // location stack ... recovering = 0, TERROR = 2, EOF = 1; while (true) { // retreive state number from top of stack state = stack[stack.length - 1]; ... // handle parse error >> _handle_error: if (typeof action === 'undefined' || !action.length || ! ...action[0]) { var errStr = ''; if (!recovering) {
Casiano Rodríguez León