亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? token.cpp

?? 編譯器中的詞法分析部分
?? CPP
字號:
#include<iostream>
using namespace std;
#define NAMEMAX 20
#define LENGTH 30
#define REALNUM 27
#define NUM 20
/*************************************************/
typedef struct{
	int type;
	int index;
	char name[NAMEMAX];
}list;
typedef struct{
	char name[NAMEMAX];
	int type;
}key_word;
/*************************************************/
key_word key[LENGTH];
int key_index=0,token_index=0,line_index=0,list_index=0;
FILE *fp_read, *fp_token, *fp_list;
list l;
char ch;
list List[NUM];
/*************************************************/
void init();
void clean(char *c);
void scan();
void ID_check();
void Notice_check();
void Num_check();
void others();
void Print();
int match(char ch);
int check();
int find();
/*************************************************/
void main()
{
	init();
	scan();
}
void init()
{
	FILE *fp;
	char tem[NAMEMAX];
	int i=0;
	fp=fopen("key.txt","r");
	if(fp==NULL)
		cout<<"對不起,要讀的文件不能打開"<<endl;
	else
	{
		for(int j=0;j<REALNUM;j++)
		{
			clean(tem);
			ch=fgetc(fp);
			while(((ch!=' ')&&(ch!=10)))
			{
				tem[i]=ch;
				i++;
				ch=fgetc(fp);
			}
			i=0;
			strcpy(key[key_index].name,tem);
			fscanf(fp,"%d",&key[key_index].type);
			key_index++;
			ch=fgetc(fp);
		}
	}
	fclose(fp);
}
void scan()
{	
	char file_name[NAMEMAX];
	cout<<"請輸入你要編譯的文件:"<<endl;
	cin>>file_name;
	fp_read=fopen(file_name,"r");
	fp_token=fopen("token.txt","w");
	fp_list=fopen("list.txt","w");
	if(fp_read==NULL||fp_token==NULL||fp_list==NULL)
	{
		cout<<"對不起,文件不能打開"<<endl;
		return;
	}
	ch=fgetc(fp_read);
	while(ch!=EOF)
	{
		clean(l.name);
		if(((ch>64)&&(ch<90))||((ch>96)&&(ch<123)))
			ID_check();
		else
		{
			if(ch=='/')
				Notice_check();
			else
			{
				if(((ch>47)&&(ch<58)))
					Num_check();
				else
					others();
			}
		}
	}
	fclose(fp_read);
	fclose(fp_token);
	fclose(fp_list);		
}
void clean(char *c)
{
	for(int i=0;i<NAMEMAX;i++)
		c[i]=NULL;
}
void ID_check()
{
	int i=0,tag=0;
	while(((ch>64)&&(ch<90))||((ch>96)&&(ch<123))||ch=='_'||((ch>47)&&(ch<58)))
	{
		l.name[i]=ch;
		i++;
		ch=fgetc(fp_read);
	}
	for(i=0;i<REALNUM;i++)
	{
		if(!strcmp(l.name,key[i].name))
		{
			l.type=key[i].type;
			l.index=-1;
			tag=1;
			break;
		}
	}
	if(tag!=1)
	{
		l.type=24;
		l.index=token_index++;
	}
	Print();
}
void Notice_check()
{
	char ch_next;
	ch=fgetc(fp_read);
	if(ch='*')
	{
		while(1)
		{
			ch=fgetc(fp_read);
			if(ch=='*')
			{
				ch_next=fgetc(fp_read);
				if(ch_next=='/')
				{
					ch=fgetc(fp_read);
					return;
				}
			}
		}
	}
	else if(ch='/')
	{
		ch=fgetc(fp_read);
		while(ch!='/t')
			ch=fgetc(fp_read);
		ch=fgetc(fp_read);
		return;
	}
	else
	{
		l.index=-1;
		l.name[0]='/';
		l.type=25;
		Print();
	}
}
void Num_check()
{
	int i=0;
	l.type=23;
	while(((ch>47)&&(ch<58)))
	{
		l.name[i]=ch;
		i++;
		ch=fgetc(fp_read);
		if(ch=='.')
		{
			l.name[i]='.';
			l.type=26;
			i++;
			ch=fgetc(fp_read);
			while(((ch>47)&&(ch<58)))
			{	l.name[i]=ch;
				i++;
				ch=fgetc(fp_read);
			}
		}
	}
	l.index=token_index++;
	Print();	
}
void others()
{	
	char tem;
	if(ch== '<')
	{
		tem=ch;
		ch=fgetc(fp_read);
		if(ch=='<')
		{
			l.type=9;
			l.name[0]=l.name[1]='<';
			l.index=-1;
			Print();
			ch=fgetc(fp_read);
			return;
		}
		else
		{
			l.type=2;
			l.name[0]='<';
			l.index=-1;
			Print();
			return;
		}
	}
	else if(ch== '+')
	{
		tem=ch;
		ch=fgetc(fp_read);
		if(ch=='+')
		{
			l.type=10;
			l.name[0]=l.name[1]='+';
			l.index=-1;
			Print();
			ch=fgetc(fp_read);
			return;
		}
		else
		{
			l.type=11;
			l.name[0]='+';
			l.index=-1;
			Print();
			return;
		}
	}
	else if(ch==10||ch==13)
	{
		line_index++;
		ch=fgetc(fp_read);
		return;
	}
	else if(ch==' '||ch==9)
	{
		ch=fgetc(fp_read);
		return;
	}
	else
	{
		int flag=match(ch);
		if(flag==-1)
			cout<<"error出現(xiàn)在"<<line_index<<"行";
		else
		{
			l.index=-1;
			l.name[0]=key[flag].name[0];
			l.type=key[flag].type;
			Print();
		}
		ch=fgetc(fp_read);
	}
}
int match(char ch)
{
	for(int i=0;i<REALNUM;i++)
	{
		if(ch==key[i].name[0])
			return i;
	}
	return -1;
}
void Print()
{
	int flag;
	if(l.type==23||l.type==24||l.type==26)
	{
		flag=check();
		if(flag)
		{
			fprintf(fp_list,"%3d  %3d  %s\n",l.type,l.index,l.name);
		}
	}
		if(!flag)
		{
			l.index=find();
			fprintf(fp_token,"%3d  %3d  %s\n",l.type,l.index,l.name);
		}
		else
			fprintf(fp_token,"%3d  %3d  %s\n",l.type,l.index,l.name);
}
int check()
{
	int flag;
	for(int i=0;i<list_index;i++)
	{
		flag=strcmp(l.name,List[i].name);
		if(!flag)
		{
			return 0;
		}
	}
	l.index=list_index;
	List[list_index].index=l.index;
	strcpy(List[list_index].name,l.name);
	List[list_index].type=l.type;
	list_index++;
	return 1;
}
int find()
{
	for(int i=0;i<list_index;i++)
	{
		if(!strcmp(l.name,List[i].name))
			return i;
	}
	return -1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩成人在线一区| 中文字幕巨乱亚洲| 精品久久人人做人人爽| 亚洲视频在线观看三级| 琪琪一区二区三区| 91免费国产在线观看| 欧美一区二区在线看| 国产精品超碰97尤物18| 免费在线一区观看| 在线观看日韩精品| 国产精品福利影院| 国产一二精品视频| 日韩一区二区三区视频| 亚洲免费在线视频一区 二区| 九色综合狠狠综合久久| 欧美亚洲一区二区三区四区| 亚洲国产成人在线| 国产综合久久久久影院| 欧美高清你懂得| 成人免费一区二区三区视频| 国产一二三精品| 欧美电影免费观看完整版| 一区二区三区国产| 99在线视频精品| 国产女同互慰高潮91漫画| 免费观看在线综合色| 欧美日韩一区二区三区在线| 亚洲黄网站在线观看| 91在线你懂得| 国产精品热久久久久夜色精品三区| 另类欧美日韩国产在线| 69精品人人人人| 视频在线观看一区| 欧美精品在线一区二区| 亚洲mv在线观看| 在线观看视频一区二区| 国产欧美一区二区三区在线老狼| 国产伦精一区二区三区| 久久免费美女视频| 黄网站免费久久| 欧美精品一区二区高清在线观看| 久久精品久久综合| 精品精品国产高清一毛片一天堂| 麻豆国产欧美一区二区三区| 精品久久久久久综合日本欧美| 久久er99精品| 精品成人一区二区三区四区| 国产在线视频一区二区三区| 久久精品人人做人人爽人人| 成人性视频网站| 亚洲啪啪综合av一区二区三区| 在线精品视频免费播放| 天天综合网天天综合色| 日韩免费视频一区| 国产精品影音先锋| 亚洲日本成人在线观看| 欧美性生活影院| 免费的成人av| 欧美国产一区二区| 色综合咪咪久久| 婷婷亚洲久悠悠色悠在线播放| 欧美一区二区网站| 国产成人在线色| 亚洲精品免费在线| 制服丝袜中文字幕一区| 激情亚洲综合在线| 亚洲丝袜美腿综合| 欧美一区二区三区在线电影| 国产精品1区2区3区| 亚洲私人黄色宅男| 欧美一区二区三区性视频| 国产一区二区伦理片| 亚洲精品中文在线观看| 91精品国产免费久久综合| 国产乱国产乱300精品| 亚洲一区二区三区四区五区中文 | 午夜日韩在线电影| 欧美精品一区二区三区在线播放 | 一区二区三区资源| 日韩一区二区免费高清| 波多野结衣中文字幕一区| 图片区日韩欧美亚洲| 欧美激情在线观看视频免费| 欧美日韩国产高清一区| 福利电影一区二区三区| 日本午夜精品视频在线观看| 日韩美女视频一区| 精品国产污污免费网站入口 | 91久久精品一区二区三| 国产原创一区二区| 亚洲成av人片在www色猫咪| 欧美—级在线免费片| 91精品国产综合久久蜜臀| av电影一区二区| 激情小说欧美图片| 婷婷激情综合网| 亚洲特级片在线| 国产色一区二区| 日韩一二在线观看| 欧美日韩在线播放三区四区| 成人av网站免费观看| 国产综合久久久久久久久久久久 | 亚洲一区二区av在线| 国产欧美日本一区视频| 日韩欧美一级精品久久| 欧美日韩综合在线免费观看| 91免费国产在线| 白白色亚洲国产精品| 久久国产成人午夜av影院| 午夜欧美大尺度福利影院在线看| 亚洲欧美怡红院| 国产精品久久久久久亚洲毛片 | 成人做爰69片免费看网站| 美女视频一区在线观看| 日本伊人色综合网| 午夜视频在线观看一区二区三区| 一区二区三区av电影| 亚洲欧美日韩在线| 亚洲丝袜另类动漫二区| 亚洲四区在线观看| 亚洲精品视频在线| 一区二区三区四区不卡在线| 日韩美女视频一区| 亚洲精品国产一区二区三区四区在线| 中文字幕免费在线观看视频一区| 久久久久国产免费免费| 国产无一区二区| 中文字幕免费观看一区| 国产精品乱码一区二三区小蝌蚪| 国产日韩av一区| 国产精品久久久久aaaa| 亚洲人成伊人成综合网小说| 亚洲男人的天堂一区二区 | 欧美电影免费观看高清完整版在线| 日韩一级二级三级| 久久精品欧美日韩| 国产精品视频第一区| 亚洲欧美日韩国产手机在线| 一区二区国产盗摄色噜噜| 亚洲成人动漫av| 日本不卡123| 国产最新精品免费| 成人av高清在线| 欧美中文字幕亚洲一区二区va在线| 在线观看日产精品| 日韩欧美在线网站| 国产亚洲欧美日韩在线一区| 亚洲色图20p| 老司机精品视频在线| 国产成人精品免费在线| 成人av手机在线观看| 欧美性受xxxx黑人xyx性爽| 日韩亚洲欧美成人一区| 国产午夜精品一区二区| 亚洲综合丝袜美腿| 极品少妇xxxx精品少妇偷拍| 99麻豆久久久国产精品免费| 在线电影院国产精品| 国产日本欧美一区二区| 亚洲第一福利一区| 风间由美一区二区三区在线观看 | 久久久久久免费网| 亚洲精品国产无套在线观| 奇米一区二区三区av| 99久久精品国产毛片| 日韩精品一区二区三区在线播放| 国产精品久久看| 六月丁香婷婷久久| 91丝袜高跟美女视频| 亚洲精品一区二区三区蜜桃下载| 亚洲日本青草视频在线怡红院| 美女视频黄 久久| 在线观看日韩精品| 国产欧美综合在线观看第十页| 亚洲超碰精品一区二区| 成人黄色网址在线观看| 日韩三级中文字幕| 一区二区三区成人在线视频 | 视频一区二区三区中文字幕| 成人一级片网址| 日韩精品一区二区三区老鸭窝| 亚洲色图第一区| 成人激情校园春色| 26uuu久久综合| 婷婷成人综合网| 在线观看欧美黄色| 亚洲男帅同性gay1069| 国产成人8x视频一区二区| 欧美一级欧美三级在线观看| 亚洲精品日日夜夜| 97精品国产露脸对白| 国产欧美一区二区精品婷婷 | 亚洲男人电影天堂| 成人午夜私人影院| 国产片一区二区三区| 激情五月婷婷综合网| 欧美成人三级电影在线| 麻豆成人91精品二区三区| 欧美日韩精品一区二区三区| 一区二区三区成人在线视频|