[Yacc] Des messages d'erreur plus clairs ?
Bonjour, je suis en train de bosser avec yacc, et lorsque j'exécute le code que j'ai fait, j'obtiens à chaque fois une syntax error...
Pour l'instant je n'utilise pas de fichier lex à part, mais seulement une fonction yylex() basique :
Code:
1 2 3 4 5 6 7 8 9
| yylex()
{
int c;
while((c = getchar()) != ' ')
{
yylval = c;
return (c);
}
} |
Ainsi qu'une fonction d'erreur trop basique :
Code:
1 2 3 4 5
| int yyerror(char *msg)
{
printf("Erreur : %s\n", msg);
return 0;
} |
Ce que je voudrais c'est avoir plus d'information sur les erreurs. J'ai vu qu'il existait un mode YYERROR_VERBOSE, et une variable yylineno, mais je n'ai pas réussi à les utiliser...
J'aimerais bien pouvoir afficher une fonction du type :
Code:
1 2 3 4 5
| int yyerror(char *msg)
{
printf("Ligne %d - Erreur aux environs de %s : %s\n", yylineno, tokenErreur, msg);
return 0;
} |
avec tokenErreur qui correspondrait au mot sur lequel l'erreur a été détectée...
Quelqu'un pourrait m'aider ?
Merci d'avance !!