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

📄 lex.c

📁 C-词法分析
💻 C
字号:
%{
/****************************************************************************
mylexer.l
ParserWizard generated Lex file.

Date: 2007年11月8日
****************************************************************************/
#include<stdlib.h>
#include<stdio.h>
#include<string.h>

char reversedWords[6][10]={"else","if","int","return","void","while"};
char temp1;
char temp2;
%}
letter [a-zA-Z]
digit [0-9]
delim " "|"\t"|"\n"
ID {letter}{letter}*
NUM {digit}{digit}*
Spe "+"|"-"|"*"|"/"|"<"|"<="|">"|">="|"=="|"!="|"="|";"|","|"("|")"|"["|"]"|"{"|"}"
any {delim}+

/////////////////////////////////////////////////////////////////////////////
// declarations section

// place any declarations here

%%
"/*" { printf("Comments:\n");
	  temp1 = getchar();
	 temp2 = getchar();
	 while (!(temp1=='*'&&temp2=='/'))
	 {
		putchar(temp1);
		temp1 = temp2;
		temp2= getchar();
	 }
	 printf("\n");
		
}
{Spe} {
   printf("Special symbols:%s\n",yytext);
   }		
{ID} {
   int find = 0;
   int i;
   for( i = 0; i < 6; i++)
   {
		if( strcmp(reversedWords[i],yytext)==0){
			printf("Reserved Words:%s\n",yytext);
			find = 1;
			break;
			}
   }
   
   if(!find)
	printf("ID:%s\n",yytext);
}
{NUM} {
	printf("Num:%s\n",yytext);
	}
{any} {}
/////////////////////////////////////////////////////////////////////////////
// rules section

// place your Lex rules here

%%

/////////////////////////////////////////////////////////////////////////////
// programs section

int main(void)
{
	yylex();
	return 0;
}

⌨️ 快捷键说明

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