首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在尝试编译yacc代码

正在尝试编译yacc代码
EN

Stack Overflow用户
提问于 2011-09-10 16:41:53
回答 1查看 220关注 0票数 0

我正在尝试从一个不再存在的项目中编译一些代码。它包含一些yacc/lex代码。我尝试过使用来自bison、bison++和bisonc++的yacc进行编译。但似乎没有一个人能够编译它。我不太了解bison/yacc/lex,所以如果有任何提示,我将不胜感激。

以下是错误消息:

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

代码如下:

代码语言:javascript
复制
   ...
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            {
   ...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-10 16:46:35

你弄错了; -它应该在动作的代码之后,而不是在它之前。

例如:在这里,分号放错了地方:

代码语言:javascript
复制
testvector main ; { i386_seq::num_testvectors =   cur_testvector+1; }
----------------^
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7370630

复制
相关文章

相似问题

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