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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lexical1.cpp

?? 編譯器很好用
?? CPP
字號:
#include<iostream.h>
#include<fstream.h>
#include<string.h>

	char *reserve[21]={"and","begin","const","div","do","else","end","function","if","integer",		
		"not","or","procedure","program","read","real","then","type","var","while","write"};	//保留字表
	
	char* symbol[20];		//簡易符號表
	int num[20];			//常量表
	char line[100];				//放入文件的一行
	static int ii=0,jj=0;//當前文件讀頭位置,行未標志,行號

int scanner(ifstream&);
void getnbc(ifstream&, char&);
void getchar(ifstream&, char&);
int search_reserve(char*);
int search_symbol(char*);
int search_num(char*);
void retract(char&);

	
void main( )
{
	int end;
	ifstream sf("c:\\file.txt");
	if(sf.fail())
	{
		cerr<<"error opening file file.txt\n";
		return;
	}
	end=scanner(sf);
	cout<<end<<endl;
	while(end!=26)
	{	
	end=scanner(sf);
	cout<<end<<endl;
	}	
	sf.close();
}

int scanner(ifstream& sf)
{
	char token[11];
	int token_num=0;
	int c;
	char current;
	getnbc(sf,current);

	switch(current)
	{
	case'a':
	case'b':
	case'c':
	case'd':
	case'e':
	case'f':
	case'g':
	case'h':
	case'i':
	case'j':
	case'k':
	case'l':
	case'm':
	case'n':
	case'o':
	case'p':
	case'q':
	case'r':
	case's':
	case't':
	case'u':
	case'v':
	case'w':
	case'x':
	case'y':
	case'z':	token[token_num]=current;	
				token_num++;
				getchar(sf,current);
				while((current<='z'&&current>='a')||(current<='9'&&current>='0'))
				{
					if(token_num<10)
					{
						token[token_num]=current;
						token_num++;
					}
					getchar(sf,current);
				}
				token[token_num]='\0';
				retract(current);
				c=search_reserve(token);
				if(c==-1)
				{
					cout<<token<<"  |";
					return 21;
				}
				else
				{
					cout<<token<<"  |";
					return c;
				}
				break;

	case'0':
	case'1':
	case'2':
	case'3':
	case'4':
	case'5':
	case'6':
	case'7':
	case'8':
	case'9':	token[token_num]=current;	
				token_num++;
				getchar(sf,current);
				while(current<='9'&&current>='0')
				{
					if(token_num<10)
					{
						token[token_num]=current;
						token_num++;
					}
					getchar(sf,current);
				}
				token[token_num]='\0';
				retract(current);
				cout<<token<<"  |";
				return 22;
				break;
	case',':	cout<<','<<"  |";
				return 23;
	case';':	cout<<';'<<"  |";
				return 24;
	case':':	getchar(sf,current);
				if(current=='=')
				{
					cout<<':'<<'='<<"  |";
					return 44;
				}else
				{
					retract(current);
					cout<<':'<<"  |";
					return 25;
				}
	case'.':	getchar(sf,current);
				if(current=='.')
				{
					cout<<'.'<<'.'<<"  |";
					return 31;
				}else
				{
					retract(current);
					cout<<'.'<<"  |";
					return 26;
				}
	case'(':	cout<<'('<<"  |";
				return 27;
	case')':	cout<<')'<<"  |";
				return 28;
	case'[':	cout<<'['<<"  |";
				return 29;
	case']':	cout<<']'<<"  |";
				return 30;
	//缺單目加
	//缺單目減
	case'+':	cout<<'+'<<"  |";
				return 34;
	case'-':	cout<<'-'<<"  |";
				return 35;	
	case'*':	cout<<'*'<<"  |";
				return 36;
	case'/':	cout<<'/'<<"  |";
				return 37;	
	case'=':	cout<<'='<<"  |";
				return 38;
	case'<':	getchar(sf,current);
				if(current=='>')
				{
					cout<<'<'<<'>'<<"  |";
					return 41;
				}
				if(current=='=')
				{
					cout<<'<'<<'='<<"  |";
					return 42;
				}
				else
				{
					retract(current);
					cout<<'<'<<"  |";
					return 39;
				}
	case'>':	getchar(sf,current);
				if(current=='=')
				{
					cout<<'>'<<'='<<"  |";
					return 43;
				}else
				{
					retract(current);
					cout<<'>'<<"  |";
					return 40;
				}
	case'{':	cout<<'{'<<"  |";
				return 45;
	case'}':	cout<<'}'<<"  |";
				return 46;
	case'#':	cout<<'#'<<"  |";
				return 47;
	default:	cout<<"error"<<"  |";
				return -1;
	}
}

void getnbc(ifstream& sf, char& current)
{
GET:	getchar(sf,current);
	
	if(current==' '||current=='\0'||current=='\t')		//濾掉空格,回車,tab鍵
	{
		do{
			getchar(sf,current);
		}while(current==' '||current=='\0'||current=='\t');
	}
	
	if(current=='{')
	{
		do{
			getchar(sf,current);
		}while(current!='}');
		goto GET;
	}

	
}

void getchar(ifstream& sf, char& current)
{
	static int lineno=1;
	if(ii==jj)
	{
		ii=jj=0;
		sf.getline(line,100);
		cout<<endl<<"line"<<lineno<<":   "<<line<<endl;
		
		for( ;line[jj]!='\0';jj++);

		lineno=lineno+1;
		current=line[ii];
		return;
	}
	
	current=line[++ii];
	if(current>='A'&&current<='Z')
		current+=32;
}

int search_reserve(char* token)
{
	for(int i=0;i<=20;i++)
	{
		if(strcmp(token,reserve[i])==0)
			return i;
	}
	
	return search_symbol(token);
}
int search_symbol(char* token)
{
	for(int j=0;j<=19;j++)
	{
		if(symbol[j]==NULL)
		{
			symbol[j]=new char[11];
			strcpy(symbol[j],token);
				return -1;
		}
		if(strcmp(symbol[j],token)==0)
			return -1;
	}

	cout<<"symbol table is full!"<<endl;
		return -1;
}

void retract(char& current)
{
	ii--;
	current=line[ii];
}


				

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区视频在线播放| 亚洲青青青在线视频| 欧美成人一区二区| 亚洲国产岛国毛片在线| 亚洲在线中文字幕| 国产综合色产在线精品| 色天使色偷偷av一区二区| 日韩丝袜情趣美女图片| 亚洲视频一区在线观看| 捆绑调教美女网站视频一区| 日本高清免费不卡视频| 国产欧美日韩亚州综合| 免费人成黄页网站在线一区二区 | 日韩伦理av电影| 老司机精品视频导航| 欧美天堂亚洲电影院在线播放| 日本一区二区三区国色天香| 免费欧美高清视频| 欧美三级资源在线| 亚洲视频免费观看| 国产91精品免费| 精品精品国产高清a毛片牛牛| 五月综合激情日本mⅴ| 色婷婷精品大视频在线蜜桃视频| 日本一区二区在线不卡| 精品亚洲porn| 欧美va亚洲va香蕉在线| 日韩vs国产vs欧美| 717成人午夜免费福利电影| 亚洲国产欧美日韩另类综合| 97久久超碰国产精品| 国产精品国产三级国产aⅴ无密码| 国产麻豆成人精品| 久久日韩精品一区二区五区| 久久成人免费日本黄色| 91麻豆精品国产91久久久久| 日日夜夜免费精品| 91精品国产美女浴室洗澡无遮挡| 丝袜美腿亚洲综合| 欧美剧情片在线观看| 亚洲成av人**亚洲成av**| 精品视频在线视频| 日本中文一区二区三区| 日韩欧美国产一区在线观看| 蜜桃久久久久久| 精品日产卡一卡二卡麻豆| 国产做a爰片久久毛片| 久久久99精品免费观看不卡| 国产一区二区精品久久99| 国产偷国产偷精品高清尤物| av午夜一区麻豆| 亚洲综合色噜噜狠狠| 337p亚洲精品色噜噜| 久久国产精品露脸对白| 国产欧美综合在线观看第十页| 国产成人av一区二区三区在线| 国产精品免费视频观看| 色av一区二区| 免费观看在线综合| 中文字幕免费不卡| 欧美调教femdomvk| 久久电影网站中文字幕| 一色桃子久久精品亚洲| 在线观看精品一区| 久草热8精品视频在线观看| 国产欧美日韩视频在线观看| 色婷婷av一区二区| 久久er精品视频| 欧美国产视频在线| 欧美日韩在线不卡| 国产69精品久久久久777| 亚洲乱码中文字幕| 欧美xxxx在线观看| 色先锋久久av资源部| 激情六月婷婷综合| 亚洲女人的天堂| 91在线观看污| 狠狠色狠狠色综合| 一区二区三区高清不卡| 日韩va欧美va亚洲va久久| 蜜臀va亚洲va欧美va天堂| 久久先锋影音av| 色综合中文字幕| 极品销魂美女一区二区三区| 亚洲视频一区二区在线观看| 欧美成人精品高清在线播放 | 一区二区三区精品在线观看| 日韩一区二区免费视频| 91小宝寻花一区二区三区| 美女免费视频一区二区| 亚洲激情在线激情| 欧美国产成人精品| 日韩一级大片在线观看| 在线中文字幕不卡| 成人午夜伦理影院| 国内精品久久久久影院薰衣草| 亚洲国产精品一区二区久久恐怖片| 国产亚洲欧美日韩日本| 欧美一级夜夜爽| 欧美性大战久久久久久久蜜臀| 国产91露脸合集magnet| 久久精品国产亚洲aⅴ| 亚洲国产综合视频在线观看| 最近中文字幕一区二区三区| 国产亚洲欧美中文| 久久综合色8888| 日韩一区和二区| 国产丝袜美腿一区二区三区| 日韩欧美一区二区视频| 欧美午夜精品久久久久久超碰| 99久久综合国产精品| 国产福利一区在线观看| 韩国一区二区三区| 久久se精品一区二区| 久久精品国产精品亚洲综合| 人人超碰91尤物精品国产| 日韩国产欧美一区二区三区| 亚洲成av人**亚洲成av**| 亚洲最新视频在线播放| 亚洲精品国久久99热| 亚洲靠逼com| 亚洲人成7777| 夜夜夜精品看看| 亚洲一区在线观看免费| 亚洲va国产va欧美va观看| 亚洲成人av在线电影| 亚洲成人av免费| 婷婷国产v国产偷v亚洲高清| 日韩精品一级二级 | 欧美情侣在线播放| 欧美高清精品3d| 精品三级av在线| 国产日产亚洲精品系列| 亚洲欧美在线另类| 亚洲一区精品在线| 日本一不卡视频| 国产一区二区三区最好精华液| 盗摄精品av一区二区三区| 99国产精品久久久| 欧美日韩视频专区在线播放| 日韩精品一区二区三区蜜臀| 久久看人人爽人人| 亚洲色图清纯唯美| 日韩电影在线观看电影| 国产精品原创巨作av| 91麻豆精东视频| 在线成人免费视频| 久久久久久影视| 亚洲精品国产精华液| 麻豆精品在线观看| av一区二区久久| 欧美乱妇15p| 欧美韩日一区二区三区四区| 亚洲精品国产无套在线观| 美女尤物国产一区| 99精品国产热久久91蜜凸| 欧美精品久久久久久久久老牛影院| 欧美精品一区二区三区在线播放 | 亚洲日本在线天堂| 日本最新不卡在线| 99久久久久免费精品国产| 91麻豆精品91久久久久久清纯| 国产精品污网站| 日本不卡一二三区黄网| 99精品在线观看视频| 制服丝袜日韩国产| 综合久久久久综合| 激情久久五月天| 欧美视频在线观看一区| 欧美国产综合一区二区| 日韩极品在线观看| 91免费观看国产| 久久精品人人爽人人爽| 日韩精品一级二级| 色999日韩国产欧美一区二区| www成人在线观看| 性做久久久久久免费观看 | 久久精品视频一区二区三区| 亚洲一区二区在线播放相泽| 福利一区二区在线| 欧美mv和日韩mv的网站| 亚洲国产va精品久久久不卡综合| 不卡大黄网站免费看| 久久综合五月天婷婷伊人| 亚洲成人一区二区| 91黄色免费观看| 综合欧美亚洲日本| 成人小视频免费在线观看| 欧美精品一区二| 久久国产日韩欧美精品| 7777精品伊人久久久大香线蕉完整版| 最新国产の精品合集bt伙计| 成人免费观看男女羞羞视频| 久久久精品欧美丰满| 看片的网站亚洲| 欧美一区二区网站| 日本最新不卡在线| 精品日韩在线观看| 九九视频精品免费| 精品国内片67194|