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 : 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);
	}
}
Ainsi qu'une fonction d'erreur trop basique :
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 :
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;
}
avec tokenErreur qui correspondrait au mot sur lequel l'erreur a été détectée...


Quelqu'un pourrait m'aider ?


Merci d'avance !!