Я пытаюсь создать калькулятор с flex и bison, который получает набор операций (результаты присваиваются переменным). Калькулятор использует память для хранения этих переменных. Когда я делаю эти вычисления через терминал (клавиатура стандартного ввода), все работает нормально. Однако когда я пытаюсь использовать файл, в памяти ничего не сохраняется.
У меня есть .y и .l
Это то, что я указал в .y.
extern FILE* yyin;
А в основном методе:
yyin = fopen(argv[1], "rt");
yyparse ();
listTofile(list, argv[2]); //method that backups memory into a file
fclose(yyin);
Когда я, например, наберу A = 2 + 2, в файле будут храниться переменная name и результат. Это прекрасно сработает, когда подскажут у меня инструкцию.
Однако, когда предоставляется файл, парсер обнаруживает все, но ничего не сохраняет (проверяется с помощью flex -d)