这种类型的yacc代码有效吗?

时间:2012-07-13 06:08:58

标签: c macros yacc

%{
#ifdef abc
.
.
. // C declarations
.
%}
.
. //  Yacc Declaration
.
%%
.
. //expected inputs and corresponding actins
.
%%

#endif

虽然这段代码为我编译,但即便如此,我强烈认为#ifdef abc未正确放置。这种类型的代码对Yacc有效吗?

我在YACC的经验很少。

由于

1 个答案:

答案 0 :(得分:2)

%{%}之间的代码逐字地放在生成的C源文件的顶部,而规则之后的代码也是逐字地放在生成的文件的末尾。< / p>

所以问题的答案是:是的,它在Yacc和生成的源中都是正确的。但是,从可读性的角度来看,Yacc代码可能被认为是可疑的。