в lex как заставить yyin указать на файл с основной функцией в yacc?

Я сохраняю аргументы, переданные main в yacc в файле. Теперь я хочу, чтобы lex считывал свои данные из этого файла, а не из терминала. Я знаю, что могу указать yyin на файл как yyin = fopen("fn","r"); но это работает только тогда, когда main находится в lex. Когда я использую это объявление yyin в main в yacc, оно показывает ошибку, поэтому, пожалуйста, предложите что-то для преодоления этой проблемы.

1 ответов


вам, вероятно, просто нужно объявить

extern FILE * yyin;

Если это не решит проблему, пожалуйста, дайте сообщение об ошибке вы получили.