Bonjour,
J'utilise Visual C++ 6.0 sous windows XP, et je suis en train d'apprendre à utiliser Bison. J'ai recopié un code Yacc du tutoriel fourni avec Bison pour générer une simple calculatrice (j'appelle le fichier Yacc calc.y), et ai pu générer un fichier en language C.
J'y ai ajouté la fonction yylex(void), toujours prise du meme tutorial, dont voici le code:
Malgré cela, le programme ainsi compilé me retourne toujours une "syntax error" lorsque je tente d'entrer une formule mathématique à parser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 int yylex (void) { int c; // Skip white space. while ((c = getchar ()) == ' ' || c == '\t') ; // Process numbers. if (c == '.' || isdigit (c)) { ungetc (c, stdin); scanf ("%lf", &yylval); return NUM; } // Return end-of-input. if (c == EOF) return 0; //Return a single char. return c; }
Il m'est par ailleurs impossible de débugger le code c++, le debugger de visual c++ rentrant systématiquement dans le fichier calc.y, et ignorant le fichier calc.cpp contenant le code en c (les points d'arrêt sont ignorés).
Je remercie quiconque pourrait suggérer un moyen de remédier à ce problème.
Merci d'avance,
Samuel
P.S: je suis conscient que mon problème est basique et il est très possible qu'il existe une solution détaillée quelque part sur le net. Si c'est le cas je m'excuse de ce post inutile et espère une réponse incluant un lien vers cette solution.
Partager