導航:首頁 > 編程語言 > lexyacc外部程序

lexyacc外部程序

發布時間:2023-01-29 21:46:35

① 不知道如何生成flex的C程序

這是我以前寫過的一個scanner.l

你試試,應該可以用。

%{
#include <stdio.h>
#include <string.h>
%}

digit [0-9]
number {digit}+
pint ("+")?{number}
mint "-"{number}
realnumber ("+"|"-")?{number}"."?{number}
true "TRUE"
false "FALSE"
letter [a-zA-Z]
identifier {letter}+
newline \n
whitespace [ \t]+
%%

"PROGRAM" {return PROGRAM;}
"BEGIN" {return BEGIN;}
"END" {return END;}
"CONST" {return CONST;}
"INTEGER" {return INTEGER;}
"REAL" {return REAL;}
"BOOLEAN" {return BOOLEAN;}
"ARRAY" {return ARRAY;}
"IF" {return IF;}
"THEN" {return THEN;}
"ELSE" {return ELSE;}
"ENDIF" {return ENDIF;}
"WHILE" {return WHILE;}
"DO" {return DO;}
"REPEAT" {return REPEAT;}
"UNTIL" {return UNTIL;}
"FOR" {return FOR;}
"TO" {return TO;}
"READ" {return READ;}
"WRITE" {return WRITE;}

":=" {strcpy(yylval.cval,yytext);return ASSIGN;}
"=" {strcpy(yylval.cval,yytext);return EQ;}
"<" {strcpy(yylval.cval,yytext);return LT;}
"<=" {strcpy(yylval.cval,yytext);return NMT;}
"<>" {strcpy(yylval.cval,yytext);return NEQ;}
">" {strcpy(yylval.cval,yytext);return MT;}
">=" {strcpy(yylval.cval,yytext);return NLT;}
"+" {strcpy(yylval.cval,yytext);return PLUS;}
"-" {strcpy(yylval.cval,yytext);return MINUS;}
"*" {strcpy(yylval.cval,yytext);return MULTIPLY;}
"/" {strcpy(yylval.cval,yytext);return OVER;}
"AND" {strcpy(yylval.cval,yytext);return AND;}
"OR" {strcpy(yylval.cval,yytext);return OR;}
"NOT" {strcpy(yylval.cval,yytext);return NOT;}
":" {return COLON;}
"#" {return STOP;}
"," {strcpy(yylval.cval,yytext);return COMMA;}
";" {return SEMI;}
"[" {return LSB;}
"]" {return RSB;}
"(" {return LPAREN;}
")" {return RPAREN;}

{pint} {strcpy(yylval.cval,yytext);return PINT;}
{mint} {strcpy(yylval.cval,yytext);return MINT;}
{realnumber} {strcpy(yylval.cval,yytext);return REALNUMBER;}
{true} {strcpy(yylval.cval,yytext);return TRUE;}
{false} {strcpy(yylval.cval,yytext);return FALSE;}
{identifier} {strcpy(yylval.cval,yytext);return ID;}
{newline} {}
{whitespace} {}
. {return ERROR;}
%%

int yywrap()
{
return 1;
}

② Yacc(bison.exe)

將BISON_HAIRY設為F:\LEXYACC\BisonFlex\bison.hairy

BISON_SIMPLE設為F:\LEXYACC\BisonFlex\bison.simple即可

閱讀全文

與lexyacc外部程序相關的資料

熱點內容
哪個app可以賣二手課程 瀏覽:474
互聯網app如何算毛利 瀏覽:300
excel文件處理插件 瀏覽:666
在電腦上怎麼找不到微信文件夾 瀏覽:116
u盤打開後有文件沒內容 瀏覽:210
編程怎麼輸出逗號 瀏覽:421
微信玩紅包怎麼定大小 瀏覽:825
電腦病毒測試代碼 瀏覽:118
得物app為什麼總是更新 瀏覽:965
銀企對賬程序 瀏覽:164
r讀取excel文件 瀏覽:363
上古卷軸5控制台附魔代碼 瀏覽:514
緩存文件合並找不到文件 瀏覽:871
桌面保存一下文件找不到 瀏覽:645
程序美工標准 瀏覽:191
漂流瓶的文件在哪裡 瀏覽:319
數據的正負偏差怎麼計算 瀏覽:242
文件名用不用帶TXT 瀏覽:968
小米十數據線是哪個 瀏覽:463
caddws文件 瀏覽:962

友情鏈接