台灣最大程式設計社群網站
線上人數
874
 
會員總數:244685
討論主題:188778
歡迎您免費加入會員
討論區列表 >> C/C++ >> flex+bison
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
flex+bison
價值 : 40 QP  點閱數:179 回應數:0

樓主

play20217
門外漢
0 5
28 3
發送站內信

.l檔:
%{
#include "myGrammar.tab.h"
%}

%%

"F." {printf("%s: is a 樓\n",yytext);return F;}
"No." {printf("%s: is a 號\n",yytext);return NO;}
"Aly." {printf("%s: is a 弄\n",yytext);return ALY;}
"Ln." {printf("%s: is a 巷\n",yytext);return LN;}
"Sec." {printf("%s: is a 段\n",yytext);return SEC;}
"Rd." {printf("%s: is a 路\n",yytext);return RD;}
"Dist." {printf("%s: is a 區\n",yytext);return DIST;}
"City" {printf("%s: is a 市\n",yytext);return CITY;}
[0-9]+ {printf("%s: is a NUMBER\n",yytext);return NUMBER;}
[A-Za-z]+ {printf("%s: is a NAME\n",yytext);return NAME;}
\n {return EOL;}
[ ,\t] {/**/}

%%


.y檔:
%{
#include <stdio.h>
char *str = (char*) malloc(sizeof(char) * 100);
%}

%token NUMBER NAME
%token F NO ALY LN SEC RD DIST CITY
%token EOL

%%

grammar: /**/
|grammar exp EOL{printf("=%s\n", str);}
;

exp:factor{ strcat(str, $1);
$$ = str;}
|factor exp{strcat(str, $2);
strcat(str, $1);
$$ = str;}
;

factor:term CITY{strcat(str, $1);
strcat(str, "市");
strcpy($$, str);}
|term DIST{ strcat(str, $1);
strcat(str, "區");
strcpy($$, str);}
|term RD{ strcat(str, $1);
strcat(str, "路");
strcpy($$, str);}
|SEC term{ strcat(str, $1);
strcat(str, "段");
strcpy($$, str);}
|LN term{ strcat(str, $1);
strcat(str, "巷");
strcpy($$, str);}
|ALY term{ strcat(str, $1);
strcat(str, "弄");
strcpy($$, str);}
|NO term{ strcat(str, $1);
strcat(str, "號");
strcpy($$, str);}
|term F{ strcat(str, $1);
strcat(str, "樓");
strcpy($$, str);}
;

term:NUMBER{strcat(str, $1);
strcpy($$, str);}
|NAME{strcat(str, $1);
strcpy($$, str);}
;
%%

int main(int argc,char **argv){
return yyparse();
}

void yyerror(const char* message)
{
fprintf(stderr, "error:%s\n", message);
}


請問我要做一個英文地址轉中文的簡易編譯器,但我輸入ex. 78他不會判斷錯誤格式,
而且我再輸入5F., No. 23, Aly. 10, Ln. 100, Beining Rd., Zhongzheng Dist., Keelung City後,也沒有照著grammar exp EOL{printf("=%s\n", str);}
輸出任何內容,請問有甚麼解決辦法?








搜尋相關Tags的文章: [ 編譯器 ] ,
本篇文章發表於2019-06-13 22:10
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.