我正在使用 Flex 和 Bison 作为解析器生成器,但是我的扫描仪中的启动状态存在问题。
我正在使用排他规则来处理评论,但这个语法似乎与引用的标记不匹配:
%x COMMENT
// { BEGIN(COMMENT); }
<COMMENT>[^\n] ;
<COMMENT>\n { BEGIN(INITIAL); }
"==" { return EQUALEQUAL; }
. ;
在这个简单的例子中,这一行:
// a == b
不完全匹配作为评论,除非我包含此规则:
<COMMENT>"==" ;
我如何绕过这个而不必将所有这些令牌添加到我的独家规则中?