2012-07-13 2 views
0
%{ 
#ifdef abc 
. 
. 
. // C declarations 
. 
%} 
. 
. // Yacc Declaration 
. 
%% 
. 
. //expected inputs and corresponding actins 
. 
%% 

#endif 

비록이 코드가 컴파일된다고해도, 나는 정확히 #ifdef abc이 올바르게 배치되지 않았다고 느낍니다. 이 유형의 코드는 Yacc에 유효합니다.이 유형의 yacc 코드가 유효합니까?

저는 YACC에 대한 경험이 거의 없습니다. 규칙 후 코드는 그대로 있지만, 생성 된 파일의 마지막에 넣어 동안

감사

%{%} 사이
+0

YACC 자체를 속이거나, 코드에 조건부 매크로를 넣는 대신이 방법이 유효하다고 생각됩니다. –

+0

@ H2CO3 나는이 코드가 컴파일되고 예상대로 작동한다는 것이 이상하다는 것을 알고있다. –

답변

2

코드는 생성 된 C 소스 파일의 상단에 그대로 배치됩니다.

귀하의 질문에 대한 답변은 다음과 같습니다. 네, Yacc과 생성 된 소스에서 모두 맞습니다. 그러나 가독성 측면에서 볼 때 Yacc 코드는 모호한 것으로 간주 될 수 있습니다.

+0

감사합니다. +1을 알지 못했습니다. –

관련 문제