首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yacc文件解析

Yacc文件解析
EN

Stack Overflow用户
提问于 2012-05-17 01:27:47
回答 1查看 177关注 0票数 1

我正在编写一个c to汇编编译器,我希望我的程序一开始就给他两个参数:-包含代码的源文件(.c) -将包含编译器生成的汇编代码的目标文件。启动示例:./compiler sum_test.c result.asm

这实际上是有效的: echo "int main(){int;int;int;a= 2;b=3;c=a+b;}“|./编译器

但我真的想从文件中读取代码。

我在解析sum_test.c到STDIN的所有内容时遇到了问题,我的程序卡住了,等待输入。

这是我的主要函数,也是我尝试过的:

代码语言:javascript
复制
   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;
}

如果你能帮我,那就太好了,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-17 01:55:32

我不确定是否有任何其他问题,但您需要删除行yyin = stdin;。它会覆盖您打开的文件的文件指针。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10623599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档