2011-09-10 10 views
0

더 이상 존재하지 않는 프로젝트의 코드를 컴파일하려고합니다. yacc/lex 코드가 포함되어 있습니다. bison, bison ++ 및 bisonC++에서 yacc로 컴파일하려고했습니다. 그러나 그들 중 누구도 그것을 컴파일 할 수없는 것 같습니다. 나는 정말로 bison/yacc/lex를 모른다. 그래서 어떤 힌트라도 감사 할 것이다. 여기 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

관련 문제