1
我想爲簡單的計算器做解析器,但我不能理解我得到錯誤的簡單輸入。 Flex的文件看起來像這樣野牛,簡單的計算器程序
%{
#include "exp.tab.h"
#include <string.h>
%}
blanks [ \t\n]+
%%
{blanks} { /* ignore */ }
[0-9]+ {yylval= strtol(yytext, NULL, 10);
return(NUMB);}
%%
野牛文件看起來像這樣:
%{
#include <stdio.h>
%}
%token NUMB
%left '+'
%%
exp:
NUMB { $$ = $1; }
| exp '+' exp { $$ = $1 + $3; }
%%
int yyerror(char *s) {
printf("yyerror : %s\n",s);
}
int main(void) {
yyparse();
}
對於輸入
123 + 12
我得到錯誤message.Why會出現這種情況?
標記時請注意。 Flex用於Adobe/Apache框架。 Gnu-flex用於詞法分析器。 – JeffryHouser 2013-05-08 19:12:35
@ Reboog711,'flex-lexer',其實...... – Charles 2013-05-08 21:46:11
@Charles謝謝;我不知道。我剛剛修改了「Flex Tag Wiki」以提及flex-lexer標籤:http://stackoverflow.com/tags/flex/info – JeffryHouser 2013-05-08 22:50:21