2011-09-10 11 views
0

私はもうプロジェクトからコードをコンパイルしようとしています。いくつかのyacc/lexコードが含まれています。 bison、bison ++、bisonC++のyaccでコンパイルしようとしました。しかし、誰もそれをコンパイルできないようです。私は実際にバイソン/ yacc /レックスを知らないので、どんなヒントもありがたいです。ここでyaccコードをコンパイルしようとしています

はエラーメッセージです:ここで

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

あなたは;間違って持っている - それは、アクションのコードの後、ないその前にする必要がありますが。

例:ここでは、セミコロンは間違って配置されています:

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

はい、それは機能しました!ありがとう。このコードはそのまま動作するはずなので、奇妙です。 – psiphi75

+0

この答えがあなたの問題psiphi75を解決した場合は、それを正解としてください。さもなければ、スタックオーバーフローのユーザーは将来あなたの質問に答えることを拒否するかもしれません。 – librik

+0

librikありがとう、私はそれを認識しませんでした。 – psiphi75

関連する問題