Ich möchte die Fehlerkorrektur von bison2.4.1 behandeln.über die Fehlerwiederherstellung von bison2.4.1
beziehen ich mich auf ein Buch oreilly (lex & yacc) und einige Websites die Fehler-Token in meiner Regel zu setzen,
aber ich denke, es funktioniert nicht. Es hilft mir nicht bei der Fehlerbehebung!
mein Code ist wie folgt:
PDL:
DataDesc ComputationDesc {Build_front_proc($1,$2);}
;
DataDesc:
PartyDecl AccLvDesc {$$ = echo_dataDesc($1, $2);}
;
// Party Description
PartyDecl:
PARTY ':' ID ',' ID ENDL {if($3->is_func || $5->is_func)
yyerror("it is a reserved word!\n");
$$ = echo_partyDecl($3->name,$5->name);}
|error ENDL {printf("There is a error");}
;
Ich habe Worte "Partei: ID_A;" (Es soll nach „Party“ zwei ID-Name sein.)
und es ging direkt in yyerror() und zeigte Syntaxfehler ...
Ich habe keine Ahnung, warum es diesen Fehler nicht behandeln.
mögliche Duplikate von [Fehlerbehandlung in YACC] (http://stackoverflow.com/questions/9796608/error-handling-in-yacc) – Kaz