Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
%{ #ifdef abc . . . // C declarations . %} . . // Yacc Declaration . %% . . //expected inputs and corresponding actins . %% #endif
尽管这段代码为我编译,但我强烈觉得#ifdef abc没有正确放置。这种类型的代码对 Yacc 有效吗?
#ifdef abc
我在 YACC 的经验很少。
谢谢
%{和之间的代码%}逐字放在生成的 C 源文件的顶部,而规则之后的代码也逐字放在生成文件的末尾。
%{
%}
所以你的问题的答案是:是的,它在 Yacc 和生成的源中都是正确的。然而,从可读性的角度来看,Yacc 代码可能被认为是可疑的。