目前在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?
是哪裡寫錯了嗎?
有人可以幫我看一下嗎><