2009-02-18 8 views
0

Je suis en train d'entrer dans ma fonction yyparse, qui est défini dans Bison code généré, mais je reçois un message de GDB direDebugging Bison code généré avec GDB

Reading file "foo.tab.c"...No such file or directory.

Le fichier généré par Bison est appelé foo.cc. Pourquoi cherche-t-il plutôt foo.tab.c?

Répondre

2

Le fichier .cc est vraiment une entrée pour le programme Bison. Le foo.tab.c est la sortie - un fichier C généré par Bison. Il contient des tables de recherche pour accélérer l'analyse et quelques définitions par défaut pour la plupart de tout ce dont vous avez besoin. Ce fichier est compilé et contribue au code objet. Vous pourriez trouver le documentation utile.

1

Les fichiers d'entrée pour Bison doivent suivre la convention yacc et être nommés foo.y. Lorsqu'il est traité, le fichier de sortie doit être foo.tab.c. Pour C++, il s'agit de foo.yxx à foo.tab.cxx. Utilisez-vous l'argument -o ou -output-file pour Bison.?

Cela pourrait être le problème, utilisez plutôt les conventions mentionnées.