导航:首页 > 编程语言 > 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外部程序相关的资料

热点内容
导航网站源码jsp 浏览:528
程序员可以自带键盘吗 浏览:194
给小白演示编程是什么 浏览:810
json获取数组长度 浏览:579
魅族浏览器书签文件夹 浏览:806
怎么看三国志13版本 浏览:85
找不到应用的文件 浏览:679
dnf台服地图代码大全 浏览:118
aix系统文件查找某个字符 浏览:624
编程猫id是什么 浏览:69
Linux下读取很大的文件 浏览:693
WiFi密码怎么分享 浏览:778
为某学校设计一个网络建设方案 浏览:76
如何把c程序编程软件 浏览:853
cudp文件传输 浏览:452
mac文件保存找不到桌面 浏览:614
数控编程软件使用最多是哪个 浏览:324
root版本 浏览:61
html表格颜色代码 浏览:805
java双目运算符 浏览:159

友情链接