导航:首页 > 编程语言 > 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

友情链接