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 :
Ainsi qu'une fonction d'erreur trop basique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 yylex() { int c; while((c = getchar()) != ' ') { yylval = c; return (c); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
avec tokenErreur qui correspondrait au mot sur lequel l'erreur a été détectée...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int yyerror(char *msg) { printf("Ligne %d - Erreur aux environs de %s : %s\n", yylineno, tokenErreur, msg); return 0; }
Quelqu'un pourrait m'aider ?
Merci d'avance !!
Partager