導航:首頁 > 編程語言 > 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外部程序相關的資料

熱點內容
ps入門必備文件 瀏覽:348
以前的相親網站怎麼沒有了 瀏覽:15
蘋果6耳機聽歌有滋滋聲 瀏覽:768
怎麼徹底刪除linux文件 瀏覽:379
編程中字體的顏色是什麼意思 瀏覽:534
網站關鍵詞多少個字元 瀏覽:917
匯川am系列用什麼編程 瀏覽:41
筆記本win10我的電腦在哪裡打開攝像頭 瀏覽:827
醫院單位基本工資去哪個app查詢 瀏覽:18
css源碼應該用什麼文件 瀏覽:915
編程ts是什麼意思呢 瀏覽:509
c盤cad佔用空間的文件 瀏覽:89
不銹鋼大小頭模具如何編程 瀏覽:972
什麼格式的配置文件比較主流 瀏覽:984
增加目錄word 瀏覽:5
提取不相鄰兩列數據如何做圖表 瀏覽:45
r9s支持的網路制式 瀏覽:633
什麼是提交事務的編程 瀏覽:237
win10打字卡住 瀏覽:774
linux普通用戶關機 瀏覽:114

友情鏈接