Bison flex';s无法识别的规则(关于可选短语)
我编写了一个简单的flex文件:Bison flex';s无法识别的规则(关于可选短语),bison,flex-lexer,yacc,lex,Bison,Flex Lexer,Yacc,Lex,我编写了一个简单的flex文件: %{ #include "question.tab.h" %} %% COMMON(/[45]\.0)? return GOTCHA; [a-z]+ return ETC; %% 并试图编译。(flex-d question.l) 然后输出如下 question.l:7: unrecognized rule question.l:7: unrecognized rule question.l:7: un
%{
#include "question.tab.h"
%}
%%
COMMON(/[45]\.0)? return GOTCHA;
[a-z]+ return ETC;
%%
并试图编译。(flex-d question.l
)然后输出如下
question.l:7: unrecognized rule
question.l:7: unrecognized rule
question.l:7: unrecognized rule
question.l:7: unrecognized rule
question.l:7: unrecognized rule
question.l:7: unrecognized rule
question.l:7: unrecognized rule
question.l:7: unrecognized rule
question.l:7: unrecognized rule
question.l:7: unrecognized rule
我希望flex
在捕获COMMON
、COMMON/4.0
、COMMON/5.0
时返回GOTCHA
我应该修复regexp的哪一部分
感谢您的支持。符号是flex中的一个特殊字符。它用于lookaheads,您使用它的方式是非法的(flex只允许在表达式的末尾使用lookaheads,而不允许在组内使用) 由于您实际上不希望使用前向,但要匹配文字斜杠,您应该将其置于引号中或使用反斜杠对其进行转义