compiler-errors - 试图获取yacc代码进行编译

标签 compiler-errors bison yacc lex

我正在尝试从不再存在的项目中编译一些代码。它包含一些yacc/lex代码。我试过用bison,bison++和bisonc++的yacc进行编译。但是他们似乎都没有能力对其进行编译。我不太了解bison/yacc/lex,所以任何提示都将不胜感激。

这是错误消息:

lex -t generator/parse_testvectors.l            \
    > generator/parse_testvectors.lex.c
yacc -o generator/parse_testvectors.C           \
    generator/parse_testvectors.y
generator/parse_testvectors.y:75.51-99: syntax error, unexpected {...}
generator/parse_testvectors.y:88.124-173: syntax error, unexpected {...}
generator/parse_testvectors.y:98.9-102.9: syntax error, unexpected {...}
generator/parse_testvectors.y:105.9-113.9: syntax error, unexpected {...}
generator/parse_testvectors.y:138.9-142.9: syntax error, unexpected {...}
...

这是代码:
   ...
68 %token  MEMORY_KEYWORD
69 %token  STACK_KEYWORD
70 %token  STACK_TOP_KEYWORD
71 %token  FRAME_POINTER_KEYWORD
72
73 %%
74 main         :       testvector { i386_seq::num_testvectors = cur_testvector+1; }
75                          |       testvector main ; { i386_seq::num_testvectors =   cur_testvector+1; }
76
77 testvector               :       testvector_begin assignments testvector_end ;
78
79 assignments              :       register_assignments flag_assignments stack_assignment memory_assignment
80            {
   ...

最佳答案

您输入的;错误-应该在操作代码之后,而不是在操作代码之后。

例如。在这里,分号放错了位置:

testvector main ; { i386_seq::num_testvectors =   cur_testvector+1; }
----------------^

关于compiler-errors - 试图获取yacc代码进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7370630/

相关文章:

java - 与OSGI中的类加载相混淆

c++ - yyparse() 的未解析外部符号

yacc:区分整数和 float

c - 如何在不创建临时文件的情况下从 char * 创建 FILE*

c - 如何使用 bison 和 flex 制作多实例命令行解析器和检查器以在固件(裸机构建环境)中使用?

compiler-errors - yacc错误没有类型声明,但是我已经在Tiger.grm中声明了这些?

c - 针对 libopcodes 编译时出错

c++ - 在模板类中声明模板友元类时出现编译器错误

java - 找不到扫描仪方法的符号错误

parsing - yylval 有可能是结构而不是联合吗?