我已经使用 Flex/Bison 大约 6 个小时了,这是我无法解决的第一个问题:
我有以下文件...
state state1: {
1-3: 255
4: 255
}
...我使用 cat 和 | 将其传递给我的 flex/bison 程序。flex 文件包含这一行:
\bstate\b { return STATE; }
再往下看:
.* { fprintf(stderr, "Lexer error on line %d: \"%s\"\n", linenum, yytext); exit(-1); }
人们应该认为 \bstate\b 应该在文件中匹配,但事实并非如此。相反,我得到以下输出:
"exer error on line 1: "state state1: {
这在几个方面很奇怪。首先,Lexer 接缝中的 L 已被替换为 ",但更重要的是,状态没有匹配。为什么???
当然 \bstate\b 在 .* 之前,并且它们在正确的部分。
谢谢你的帮助,简