2009-11-25 15 views
9

Je stocke les arguments passés à main dans yacc dans un fichier. Maintenant je veux que la lexe lise son entrée de ce fichier plutôt que le terminal. Je sais que je peux pointer yyin vers un fichier comme yyin = fopen("fn","r"); mais cela ne fonctionne que si main est en lex. Quand j'utilise cette déclaration yyin dans main dans yacc, il montre une erreur alors s'il vous plaît suggérer quelque chose pour surmonter ce problème.dans lex comment faire yyin pointer vers un fichier avec la fonction principale dans yacc?

Répondre

23

Vous avez probablement juste besoin de déclarer

extern FILE * yyin; 

Si cela ne résout pas le problème, s'il vous plaît donner le message d'erreur que vous avez obtenu.

+0

merci mon pote ça a marché ... – ajai