目前在lex中的写法是
ws [ \t]
digit [0-9]
letter [a-zA-Z_]
number [\-]?{digit}+
%%
[ \t] {}
[\n] {count(); return('\n');}
{number} {return(NUMBER);}
{letter}({letter}|{digit})* {return(ID); }
"VAR" {return(VA);}
"BEGIN" {return(BEG);}
(中间略过)
"(" {return('(');}
")" {return(')');}
. {printf("error token <%s>\n",yytext); return(ERROR);}
这样写理论上如果输入 ASQoswp 不是应该会return(ID)?
但是弄出来却会显示
"error token A"
"error token S"
...
"error token p"
也就是对到了 最后一行 没抓到ID?
是哪里写错了吗?
有人可以帮我看一下吗><