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

📄 check.h

📁 一个进行整数计算的C语言词法分析器
💻 H
字号:
char keyword[17][10]=
{"void","int","double","unsigned","long","while","break","switch","case","continue",
"default","do","if","else","for","return","printf"};
 
int IsKeyword (char ch[])
 {
	for(int i=0;i<17;i++)
	{
		if(!strcmp(keyword[i],ch))
		return 1;
	 }
  return 0;
 }

int IsConst(char ch[])
{
	for(int i=0;i<MAX;i++)
	{
		if((ch[i]!='\0')&&(!Isdigit(ch[i]))) return 0;
	}
	return 1;
}

int IsID(char ch[])
{ 
     int i=0;
     while(ch[i])
     {
        	if(!(ch[0]>=0x41&&ch[0]<=0x5A||ch[0]>=0x61&&ch[0]<=0x7A)) 
			{	
				return 0;
				break;
			}
		if(!(ch[i]>=0x41&&ch[i]<=0x5A||ch[i]>=0x61&&ch[i]<=0x7A||ch[i]>=0x30&&ch[i]<=0x39))
               	return 0;
		       i++;
	}
	         if(ch&&strcmp(ch,"\0"))  return 1;
	         else return 0;
}
            //是ID时返回1,不是ID时返回0

char Sspecialsymbol[20][2]=
	 {"+","-","*","/","<","]",">","=","!",";","}",",","(",")","[","{",'\"'};
char Dspecialsymbol[13][5]=
	 {"<=",">=","==","!=","||","&&","++","--","%d","+=","-=","*=","/="};


int IsSymbol(char ch[])
{
	 int i=0;
   	 while(i<=16)
	 {
		if(!strcmp(Sspecialsymbol[i],ch))  return 1;
		i++;
     }
	 for(i=0;i<=12;i++)
     {
             if(!strcmp(ch,Dspecialsymbol[i]))  return 1;
     }   
      
     return 0;
}

void check(word& w)
{
		if(IsKeyword(w.ch))
		{
			w.type=0;
			strcpy(w.chname,"KEYWORD");
			return;
		}
		if(IsID(w.ch))
		{
			w.type=1;
			strcpy(w.chname,"VARIABLE");
			return;
		}
		if(IsConst(w.ch))
		{
			w.type=2;
			strcpy(w.chname,"CONST");
			return;
		}
		if(IsSymbol(w.ch))
		{
			w.type=3;
			strcpy(w.chname,"SYMBOL");
			return;
		}
		w.type=4;
		strcpy(w.chname,"ERRORSYM");
}

⌨️ 快捷键说明

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