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

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

?? tokenize.cpp

?? PL編譯器
?? CPP
字號:
// Tokenize.cpp: implementation of the CTokenize class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "PascalCompiler.h"
#include "Tokenize.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif


//定義保留字表,用字符指針數組保存
char *pKeyword[KEY_NUM]={"BEGIN","END","IF","THEN","ELSE","WHILE","DO","INTEGER","VAR"};



//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CTokenize::CTokenize()
{

}

CTokenize::~CTokenize()
{

}

//定義詞法分析函數
void CTokenize::PASCALscan(FILE * fSource,FILE * fObject)
{
	int i=0;	
	int j;

	//從源文件中讀取一個字符
	ch = fgetc(fSource);
	
	while (ch != EOF)
	{
		//如果讀入的是空格、換行、水平制表、回車其中之一
		while ((' '==ch) || ('\n'==ch) || ('\t'==ch) || ('\r'==ch))
			ch=fgetc(fSource);	//跳過以上無意義字符
		
		//字母處理
		if (isalpha(ch))		
		{
			token[0] = ch;			//保存識別出的字母
			i = 1;					//標記此字母

			ch = fgetc(fSource);	//繼續讀下一個字符
			
			//如果是字母和數字則組合成標識符
			while (isalnum(ch))		
			{
				token[i++] = ch;			//將組合標識符保存
				ch = fgetc(fSource);		//繼續讀下一個字符
			}
			token[i] = '\0';				//標識符組合結束

			//查保留字
			for (j=0; j<KEY_NUM; j++)
			{
				if (0 == strcmp(token,pKeyword[j]))
					break;
			}

			if (j >= KEY_NUM)					//不是保留字
			{
				strncpy(token,token,8);
				token[8] = '\0';
				fprintf(fObject,"%d\t\t\t%s\n",SYN_ID,token);
			}

			else								//是保留字
			{	
				if (!strcmp(token,pKeyword[0]))
					fprintf(fObject,"%d\t\t\t%s\n",SYN_BEGIN,token);

				if (!strcmp(token,pKeyword[1]))
					fprintf(fObject,"%d\t\t\t%s\n",SYN_END,token);

				if (!strcmp(token,pKeyword[2]))
					fprintf(fObject,"%d\t\t\t%s\n",SYN_IF,token);

				if (!strcmp(token,pKeyword[3]))
					fprintf(fObject,"%d\t\t\t%s\n",SYN_THEN,token);
				
				if (!strcmp(token,pKeyword[4]))
					fprintf(fObject,"%d\t\t\t%s\n",SYN_ELSE,token);
				
				if (!strcmp(token,pKeyword[5]))
					fprintf(fObject,"%d\t\t\t%s\n",SYN_WHILE,token);
				
				if (!strcmp(token,pKeyword[6]))
					fprintf(fObject,"%d\t\t\t%s\n",SYN_DO,token);
					
				if (!strcmp(token,pKeyword[7]))
					fprintf(fObject,"%d\t\t\t%s\n",SYN_INTEGER,token);

				if (!strcmp(token,pKeyword[8]))
					fprintf(fObject,"%d\t\t\t%s\n",SYN_VAR,token);
			}
		}

		//數字處理
		else if (isdigit(ch))				
		{
			token[0] = ch;
			i = 1;
			ch = fgetc(fSource);

			//如果下一個字符是數字
			while (isdigit(ch))					
			{
				token[i++] = ch;			//保留組合整數
				ch = fgetc(fSource);		//讀下一個字符
			}

			int temp = atoi(token);
			if (temp > 65535)
			{
				token[i] = '\0';
				fprintf(fObject,"%s\t\t\t%s\n","數字大于65535",token);
			}

			else
			{
				token[i] = '\0';			//整數組合結束
				fprintf(fObject,"%d\t\t\t%s\n",SYN_NUM,token);
			}
		}

		//加號處理
		else if ('+' == ch)
		{
			token[0] = ch;
			token[1] = '\0';
			ch = fgetc(fSource);	

			fprintf(fObject,"%d\t\t\t%s\n",SYN_PLUS,token);
		}

		//減號處理
		else if ('-' == ch)
		{
			token[0] = ch;
			token[1] = '\0';
			ch = fgetc(fSource);	
			fprintf(fObject,"%d\t\t\t%s\n",SYN_SUB,token);
		}

		//乘號處理
		else if ('*' == ch)
		{
			token[0] = ch;
			token[1] = '\0';
			ch = fgetc(fSource);	
			fprintf(fObject,"%d\t\t\t%s\n",SYN_MUL,token);
		}

		//分號處理
		else if (';' == ch)
		{
			token[0] = ch;
			token[1] = '\0';
			ch = fgetc(fSource);	
			fprintf(fObject,"%d\t\t\t%s\n",SYN_SEMI,token);
		}

		//句號處理
		else if ('.' == ch)
		{
			token[0] = ch;
			token[1] = '\0';
			ch = fgetc(fSource);
			fprintf(fObject,"%d\t\t\t%s\n",SYN_PERIOD,token);
		}

		//逗號處理
		else if (',' == ch)
		{
			token[0] = ch;
			token[1] = '\0';
			ch = fgetc(fSource);	
			fprintf(fObject,"%d\t\t\t%s\n",SYN_COMMA,token);
		}

		//左小括號處理
		else if ('(' == ch)
		{
			token[0] = ch;
			token[1] = '\0';
			ch = fgetc(fSource);	
			fprintf(fObject,"%d\t\t\t%s\n",SYN_LPAREN,token);
		}

		//右小括號號處理
		else if (')' == ch)
		{
			token[0] = ch;
			token[1] = '\0';
			ch = fgetc(fSource);	
			fprintf(fObject,"%d\t\t\t%s\n",SYN_RPAREN,token);
		}

		//小于號處理
		else if ('<' == ch)
		{
			token[0] = ch;
			ch = fgetc(fSource);

			//小于等于號處理
			if ('=' == ch)
			{
				token[1] = ch;
				token[2] = '\0';
				ch = fgetc(fSource);	
				fprintf(fObject,"%d\t\t\t%s\n",SYN_LE,token);
			}

			//不等于號處理
			else if ('>' == ch)
			{
				token[1] = ch;
				token[2] = '\0';
				ch = fgetc(fSource);	
				fprintf(fObject,"%d\t\t\t%s\n",SYN_NE,token);
			}

			//小于號
			else
			{
				token[1] = '\0';	
				fprintf(fObject,"%d\t\t\t%s\n",SYN_LT,token);
			}
		}

		//大于號處理
		else if ('>' == ch)
		{
			token[0] = ch;
			ch = fgetc(fSource);

			//大于等于號處理
			if ('=' == ch)
			{
				token[1] = ch;
				token[2] = '\0';
				ch = fgetc(fSource);	
				fprintf(fObject,"%d\t\t\t%s\n",SYN_ME,token);
			}

			//大于號
			else
			{
				token[1] = '\0';
				fprintf(fObject,"%d\t\t\t%s\n",SYN_LG,token);
			}
		}

		//等于號處理
		else if('=' == ch)
		{
			token[0] = ch;
			ch = fgetc(fSource);
			if ('=' == ch)
			{
				token[1] = ch;
				token[2] = '\0';
				ch = fgetc(fSource);	
				fprintf(fObject,"%d\t\t\t%s\n",SYN_EQ,token);
			}
		}

		//:=號處理
		else if(':' == ch)
		{
			token[0] = ch;
			ch = fgetc(fSource);
			if ('=' == ch)
			{
				token[1] = ch;
				token[2] = '\0';
				ch = fgetc(fSource);	
				fprintf(fObject,"%d\t\t\t%s\n",SYN_COLE,token);
			}

			else
			{
				token[1] = '\0';
				fprintf(fObject,"%d\t\t\t%s\n",SYN_COLON,token);
			}
		}

		//斜杠號處理
		else if ('/' == ch)
		{
			token[0] = ch;
			ch = fgetc(fSource);

			//多行注釋處理
			if ('*' == ch)
			{
				char temp = fgetc(fSource);
				do
				{
					ch = temp;
					temp = fgetc(fSource);
				}while ((ch != '*' || temp != '/') && (temp != EOF));

				ch = fgetc(fSource);
			}

			//單行注釋處理
			else if ('/' == ch)
			{
				do
				{
					ch = fgetc(fSource);
				}while ((ch != '\n') && (ch != EOF));

				ch = fgetc(fSource);
			}

			//除號
			else
			{
				token[1] = '\0';
				fprintf(fObject,"%d\t\t\t%s\n",SYN_DIV,token);
			}
		}

		//錯誤處理
		else		
		{
			token[0] = ch;
			token[1] = '\0';
			ch = fgetc(fSource);
			fprintf(fObject,"%s\t\t\t%s\n","ERROR",token);
		}
	}
		
	fclose(fSource);
	fclose(fObject);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大片国产精品| 亚洲一二三级电影| 欧美不卡在线视频| 欧美日韩不卡在线| 91久久一区二区| 99久久精品国产毛片| 久久精品国产网站| 视频在线观看一区| 亚洲婷婷综合久久一本伊一区| 久久婷婷成人综合色| 欧美一级在线免费| 国产精品久久久久婷婷| 精品精品国产高清一毛片一天堂| 在线成人免费观看| 欧美日韩一区二区不卡| 欧美三片在线视频观看| 色综合激情久久| 色婷婷av一区二区三区gif | 日本乱人伦aⅴ精品| 91黄色免费网站| 色婷婷久久久亚洲一区二区三区| 成人短视频下载| caoporn国产精品| 99热国产精品| 一本色道久久综合狠狠躁的推荐 | 2020国产精品自拍| 日韩丝袜美女视频| 日韩欧美国产系列| 精品国产一区二区精华| 精品成人佐山爱一区二区| 久久综合久色欧美综合狠狠| 久久影院电视剧免费观看| 久久九九影视网| 欧美国产日韩在线观看| 国产精品国产三级国产aⅴ入口 | eeuss国产一区二区三区| 99久久精品免费观看| 色婷婷精品大在线视频| 欧美久久婷婷综合色| 国产视频911| 国产精品夫妻自拍| 亚洲激情自拍偷拍| 亚洲国产精品一区二区尤物区| 艳妇臀荡乳欲伦亚洲一区| 婷婷综合在线观看| 老司机午夜精品99久久| 国产成a人亚洲| 色94色欧美sute亚洲线路一ni| 欧美日韩一区二区在线视频| 日韩一区二区三区电影在线观看 | 午夜精品久久久久久久99水蜜桃| 日本不卡在线视频| 国产精品中文欧美| 91色在线porny| 欧美男生操女生| 久久午夜电影网| 亚洲伦理在线免费看| 日韩激情中文字幕| 国v精品久久久网| 欧美性大战xxxxx久久久| 4hu四虎永久在线影院成人| 久久综合一区二区| 亚洲激情欧美激情| 蜜乳av一区二区| 国产精品一区二区不卡| av综合在线播放| 777亚洲妇女| 国产精品女主播av| 亚洲已满18点击进入久久| 韩国精品在线观看| 91高清视频在线| 精品99一区二区三区| 亚洲卡通动漫在线| 经典一区二区三区| 欧美亚一区二区| 亚洲精品一区二区精华| 亚洲亚洲人成综合网络| 国产美女精品人人做人人爽| 欧美亚洲自拍偷拍| 国产色一区二区| 日韩不卡手机在线v区| 成人国产精品免费| 日韩欧美电影一二三| 亚洲人亚洲人成电影网站色| 理论片日本一区| 欧美亚洲综合另类| 中文字幕制服丝袜一区二区三区| 免费高清不卡av| 欧美影视一区二区三区| 国产日韩欧美精品综合| 日韩电影在线观看电影| 色偷偷一区二区三区| 国产网红主播福利一区二区| 日韩国产欧美一区二区三区| 色狠狠av一区二区三区| 国产精品免费人成网站| 激情欧美一区二区三区在线观看| 91美女在线观看| 久久久精品tv| 毛片不卡一区二区| 欧美在线免费视屏| ...av二区三区久久精品| 国产一区二区三区观看| 91麻豆精品国产91久久久资源速度 | 成人午夜电影小说| 欧美日韩久久久一区| 亚洲免费大片在线观看| 成人国产在线观看| 国产欧美日韩不卡| 国产乱子伦一区二区三区国色天香| 欧美亚洲一区二区在线观看| 最新高清无码专区| 不卡一二三区首页| 国产精品美女久久久久久久久| a亚洲天堂av| 国产精品国产三级国产a| 成人午夜精品一区二区三区| 国产日产欧产精品推荐色| 国内精品久久久久影院色| 精品精品国产高清a毛片牛牛 | 欧美日韩在线不卡| 一区二区高清在线| 欧洲色大大久久| 国产精品人妖ts系列视频| 大尺度一区二区| 欧美精彩视频一区二区三区| 国产一区二区不卡在线| 久久久五月婷婷| 国产成人精品免费一区二区| 国产日韩欧美精品一区| 国产mv日韩mv欧美| 国产精品理论在线观看| 99久久精品免费看国产免费软件| 最新高清无码专区| 日本高清免费不卡视频| 亚洲一区二区影院| 欧美午夜一区二区三区免费大片| 一区二区三区四区中文字幕| 欧美日韩一区二区在线视频| 午夜一区二区三区在线观看| 欧美嫩在线观看| 玖玖九九国产精品| 国产日本欧美一区二区| 99免费精品在线观看| 亚洲制服欧美中文字幕中文字幕| 91在线看国产| **欧美大码日韩| 在线中文字幕一区二区| 午夜国产不卡在线观看视频| 日韩一级黄色大片| 国产精品一区二区在线播放| 国产精品美女久久福利网站| 欧美性生活影院| 蜜桃视频在线观看一区二区| 久久精品亚洲国产奇米99| 99视频有精品| 亚洲成国产人片在线观看| 日韩一区二区高清| 国产成人精品午夜视频免费| 亚洲男同性视频| 91精品国产欧美一区二区18| 国产aⅴ精品一区二区三区色成熟| 中文字幕日韩av资源站| 欧美精三区欧美精三区| 国产一区在线观看麻豆| 亚洲男同性视频| 日韩欧美亚洲另类制服综合在线| 成人黄色电影在线| 亚洲大片一区二区三区| 精品国产麻豆免费人成网站| 91麻豆精品一区二区三区| 免播放器亚洲一区| 亚洲视频在线观看一区| 宅男在线国产精品| a级精品国产片在线观看| 日韩制服丝袜av| 亚洲欧洲日韩av| 日韩欧美亚洲一区二区| 色哟哟一区二区在线观看| 蜜桃视频一区二区| 亚洲乱码精品一二三四区日韩在线| 制服丝袜亚洲色图| 99re成人精品视频| 日本亚洲欧美天堂免费| 成人欧美一区二区三区1314 | 国产精品午夜在线| 精品三级在线观看| 欧美精品xxxxbbbb| 欧美怡红院视频| 色综合久久精品| 成人av免费在线观看| 国产精品亚洲视频| 美女国产一区二区三区| 婷婷国产在线综合| 夜夜嗨av一区二区三区网页| 亚洲品质自拍视频| 亚洲欧美自拍偷拍色图| 国产精品美女久久福利网站| 国产亚洲欧美在线| 久久久777精品电影网影网|