以下内容:
space ([ \t\f\r])+
opt_space ([ \t\f\r])*
cpp ^{opt_space}#{opt_space}
word [A-Za-z_][A-Za-z_0-9]*
arg_macro {cpp}define{space}{word}
/*arg_macro ^{opt_space}#{opt_space}define{space}{word}*/
%%
{arg_macro} ;
%%
我收到错误消息
test.l:9: unrecognized rule
如果我取消注释arg_macro
的第二个版本并对第一个版本发表评论,则错误消息将消失。
任何想法为什么?
答案 0 :(得分:1)
如果从cpp定义中删除^
,并将其放在arg_macro定义中,那么很高兴。
space ([ \t\f\r])+
opt_space ([ \t\f\r])*
cpp {opt_space}#{opt_space}
word [A-Za-z_][A-Za-z_0-9]*
arg_macro ^{cpp}define{space}{word}