试图让yacc代码进行编译

时间:2011-09-10 08:41:53

标签: 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            {
   ...

1 个答案:

答案 0 :(得分:1)

你有;错误 - 它应该在行动代码之后,而不是之前。

EG。在这里,分号是错误的:

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