我正在为汇编编译器制作 ac,我希望我的程序从给他 2 个参数开始: - 包含代码的源文件 (.c) - 包含编译器生成的汇编代码的目标文件。启动示例:./compiler sum_test.c result.asm
这实际上有效: echo "int main(){int a; int b; int c; a = 2; b=3; c=a+b;}" | ./编译器
但我真的很想从文件中读取代码。
我无法将 sum_test.c 中的所有内容解析为 STDIN,我的程序卡住并等待输入..
这是我的主要功能和我尝试过的:
int main(int argc, char** argv)
{
extern FILE * yyin;
yyin = fopen( argv[1], "r");
yyin = stdin;
labelVrai = labelFaux = labelFin = labelDebut = labelSuite = labelWhileDebut = labelWhileFin = n_labels = labelN_else = 0;
dico_global = dictionnaire_create();
dico_local = creer_piledico();
if ( yyparse() != 0 )
{ fprintf(stderr,"Syntaxe incorrecte\n"); return 1; }
dictionnaire_destroy(dico_global);
destroy_piledico(dico_local);
return 0;
}
如果你能帮助我,那就太好了,谢谢。