Я хочу справиться с исправлением ошибок из bison2.4.1.
Я сослался на книгу Орейли (lex & yacc) и на некоторые веб-сайты, чтобы поместить токен ошибки в свое правило,
но я думаю, что это не работает. это не помогает мне справляться с восстановлением после ошибок!
мой код выглядит следующим образом:
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");}
;
Я дал слова "Party: id_a ;" (это должно быть два идентификатора имени после «Вечеринки».)
и он пошел прямо к yyerror() и показал синтаксическую ошибку...
Я понятия не имею, почему он не обрабатывает эту ошибку.