J'ai écrit un simple assembleur en utilisant flex et bison. Cela a fonctionné parfaitement jusqu'à ce que je fasse un petit changement. Était une règle supplémentaire inoffensive dans les spécifications lex et yacc. Après cela, il lance une faute de segmentation chaque fois que je l'exécute. J'ai essayé de tracer la source de cette faille seg mais il s'avère qu'il se produit avant que le principal dans le dossier de lex soit exécuté. Puis j'ai enlevé l'addition que j'ai faite et je l'ai recompilée, ça montre toujours la même erreur.faute de segmentation flex/bison avant main()
Qu'est-ce qui ne va pas ???
Je l'ai fait quelque chose comme ça
- Table de recherche, Symbole Table, Code Générateur dans des fichiers séparés
- Parser dans un fichier ".y" importer les fichiers mentionnés ci-dessus
- Scanner lexicales dans un fichier ".L" importer le "* .tab.h" fichier
- lié lex.yy.c et parser.tab.c pour faire un exécutable
Merci à l'avance
savez-vous exactement où votre code se casse? Si vous pouviez donner la ligne exacte où le code se sépare, cela aiderait probablement. – rtpg
Eh bien c'est ce que j'ai essayé de trouver, en plaçant printf() s à divers endroits, j'ai placé un avant l'appel à yyparse(), il n'a pas été imprimé! . On dirait que ça ne va même pas à main()! –