我的 bison / flex 解析器首先从文件中读取输入:
FILE *myfile = fopen(file.c_str(), "r");
yyin = myfile;
yyparse();
在那之后的某个时刻,它从内存中的字符串读取并解析输入:
yy_scan_string(str.c_str());
yyparse();
yy_delete_buffer(YY_CURRENT_BUFFER);
到目前为止,它似乎运作良好。但是,当程序需要使用第一个代码再次读取和解析文件中的输入时,它不起作用(以分段错误终止)。这个问题有解决办法吗?