Je veux générer deux fonctions d'analyse séparées à partir de lex/yacc. Normalement yacc vous donne une fonction yyparse() que vous pouvez appeler quand vous avez besoin de faire de l'analyse, mais j'ai besoin de plusieurs yypars différents, chacun associé à des lexers et des grammaires différents. La page man semble suggérer le drapeau -p (préfixe), mais cela n'a pas fonctionné pour moi. J'ai obtenu des erreurs de la part de gcc qui indiquait que yylval n'était pas correctement rebaptisé (c'est-à-dire qu'il prétend que plusieurs jetons différents ne sont pas définis). Est-ce que quelqu'un connaît la procédure générale pour générer ces fonctions séparées?Comment générer différentes fonctions yyparse à partir de lex/yacc pour les utiliser dans le même programme?
grâce
(a) Quelles versions des outils utilisez-vous? (b) Avez-vous cherché des occurrences inattendues de 'yy' dans les grammaires/lexers censés utiliser un autre préfixe? Nous avons utilisé des scripts 'sed' pour les aeons (ce qui signifie plus de 20 ans) pour le faire - parce que les options de préfixes n'étaient pas toujours disponibles il y a longtemps - avec beaucoup de succès. ... Je devrais qualifier le truc 'grep yy'; 'flex -P zz lex.l' laisse beaucoup d'occurrences 'yy' dans la source C, lex.zz.c, mais aucune n'est visible en dehors du fichier objet (' nm -g lex.zz.o'). –