⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cffxq.txt

📁 编译原理课程设计-词法分析器
💻 TXT
字号:
%{
#include "stdio.h"
#include "ctype.h"
#include "string.h"
#define KEYWORD	0
#define WHILE	1
#define END	2
#define IF		3
#define THEN 	4
#define ELSE	5
#define ID	6
#define EQ	7
#define UN	8
#define LT	9
#define LE	10
#define NE	11
#define GT	12
#define GE	13
OUT(int c,char *val);
%}
digit		[0-9]
alpha		[a-zA-Z]
alnum		[a-zA-Z0-9]
%% 
while		return WHILE;
if          		return IF;
then       		return THEN;
else         		return ELSE;
end          		return END;
begin1         		return KEYWORD;
{alpha}{alnum}*		return ID;
{digit}+		return UN;
"="             	return EQ;
"<"             	return LT;
"<>"	 	return NE;
"<="           	return LE;
">"		return GT;
">="		return GE;
%%
OUT(int c,char *val)
{
printf("(");
switch(c)
{
case 0:printf("begin,%s)	",val);break;
case 1:printf("关键字,%s)	",val);break;
case 2:printf("关键字,%s)	",val);break;
case 3:printf("关键字,%s)	",val);break;
case 4:printf("关键字,%s)	",val);break;
case 5:printf("关键字,%s)	",val);break;
case 6:printf("标志符,%s)	",val);break;
case 7:printf("等号,%s)	 ",val);break;
case 8:printf("无符数,%s)	",val);break;
case 9:printf("关系符,%s)	",val);break;
case 10:printf("关系符,%s)	",val);break;
case 11:printf("关系符,%s)	",val);break;
case 12:printf("关系符,%s)	",val);break;
case 13:printf("关系符,%s)	",val);break;
default:break;
}
}
yywrap()
{
return 1;
}
void main()
{
int c;
if((yyin=fopen("text.txt","r"))==NULL)
{printf("Can't open file text\n");exit(0);}
while(c=yylex())
{
static j=0;
if(c<=13){OUT(c,yytext);j++;}
else continue;
if(j==j/4*4)printf("\n\n");
}
printf("\n");
printf("\n");
return;
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -