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

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

?? glossary.cpp

?? 編譯器 用C語言對(duì)下述文法和單詞表定義的語言設(shè)計(jì)編制一個(gè)編譯器
?? CPP
字號(hào):
/******************************************************************************
 * glossary.cpp
 *
 * 2008-03-28 20:41
 * 周鑫(zhouxin63766@yahoo.com.cn)
 *
 ******************************************************************************/

#include <QObject>
#include <QFile>
#include <QMessageBox>
#include <cctype>

#include "glossary.h"
 
Glossary::Glossary()
{
	_lineNo = 1;
	fileEnd = false;
	sourceFile = NULL;
}

Glossary::~Glossary()
{
	if ( sourceFile != NULL )
	{
		sourceFile->close();
		delete sourceFile;
		sourceFile = NULL;
	}
}

bool Glossary::openFile( const QString &fileName )
{
	if ( sourceFile != NULL )
	{
		sourceFile->close();
		delete sourceFile;
		sourceFile = NULL;
	}
	sourceFile = new QFile( fileName );
	if ( sourceFile == NULL || !(sourceFile->open( QIODevice::ReadOnly )) )
	{
		return false;
	}
	_lineNo = 1;
	fileEnd = false;
	tokenBuffer.clear();
	return true;
}

Token Glossary::judgeValidToken( QString &lexeme )
{
	int i;
	lexeme = lexeme.toUpper();
	for ( i = 0; i < TABLENGTH; i++ )
	{
		if ( lexeme == TokenTab[i].lexeme )
		{
			return TokenTab[i];
		}
	}
	Token token;
	token.type = ERRTOKEN;
	token.lexeme = lexeme;
	token.value = 0.0;
	token.pFunction = NULL;
	return token;
}

Token Glossary::getToken()
{
	Token token;
	char ch;
	tokenBuffer.clear();
	token.lexeme = tokenBuffer;

	while ( 1 )
	{
		if ( sourceFile->atEnd() || fileEnd )
		{
			token.type = NONTOKEN;
			fileEnd = true;
			return token;
		}
		sourceFile->getChar( &ch );
		if ( ch == '\n' )
		{
			_lineNo++;
		}
		// space 包括 空格、TAB和換行
		else if ( !isspace(ch) )
		{
			break;
		}
	}
	tokenBuffer.append( ch );

	// 保留字或參數(shù)
	if ( isalpha(ch) )
	{
		while ( 1 )
		{
			if ( sourceFile->atEnd() )
			{
				fileEnd = true;
				break;
			}
			else
			{
				sourceFile->getChar( &ch );
				if ( isalnum(ch) )
				{
					tokenBuffer.append( ch );
				}
				else
				{
					break;
				}
			}
		}
		sourceFile->ungetChar( ch );
		token = judgeValidToken( tokenBuffer );
		token.lexeme = tokenBuffer;
		return token;
	}
	// 數(shù)字
	else if( isdigit(ch) )
	{
		while ( 1 )
		{
			if ( sourceFile->atEnd() )
			{
				fileEnd = true;
				break;
			}
			sourceFile->getChar( &ch );
			if ( isdigit(ch) )
			{
				tokenBuffer.append( ch );
			}
			else
			{
				break;
			}
		}
		if ( ch == '.' )
		{
			tokenBuffer.append( ch );
			while ( 1 )
			{
				if ( sourceFile->atEnd() )
				{
					fileEnd = true;
					break;
				}
				sourceFile->getChar( &ch );
				if ( isdigit(ch) )
				{
					tokenBuffer.append( ch );
				}
				else
				{
					break;
				}
			}
		}

		sourceFile->ungetChar( ch );
		token.type = CONSTANT;
		token.value = tokenBuffer.toDouble();
		return token;
	}

	// 其它符號(hào)
	else
	{
		switch ( ch )
		{
			case ';':
				token.type = SEMICO;
				break;
			case '(':
				token.type = LBRACKET;
				break;
			case ')':
				token.type = RBRACKET;
				break;
			case ',':
				token.type = COMMA;
				break;
			case '+':
				token.type = PLUS;
				break;
			case '*':
				token.type = MUL;
				break;
			case '^':
				token.type = POWER;
				break;
			case '-':
				if ( sourceFile->atEnd() )
				{
					fileEnd = true;
					break;
				}
				sourceFile->getChar( &ch );
				if ( ch == '-' )
				{
					while ( ch != '\n' && !sourceFile->atEnd() )
					{
						sourceFile->getChar( &ch );
					}
					sourceFile->ungetChar( ch );
					return getToken();
				}
				else
				{
					sourceFile->ungetChar( ch );
					token.type = MINUS;
					break;
				}
			case '/':
				if ( sourceFile->atEnd() )
				{
					fileEnd = true;
					break;
				}
				sourceFile->getChar( &ch );
				if( ch == '/' )
				{
					while(ch != '\n'&& !sourceFile->atEnd() )
					{
						sourceFile->getChar( &ch );
					}
					sourceFile->ungetChar( ch );
					return getToken();
			       	}
				else
				{
					sourceFile->ungetChar( ch );
					token.type = DIV;
					break;
				}
			default:
				token.type = ERRTOKEN;
				break;
		}
	}
	return token;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人久久影院| 一区二区中文视频| 乱中年女人伦av一区二区| 337p亚洲精品色噜噜| 午夜精品爽啪视频| 日韩欧美国产综合一区| 麻豆91在线播放免费| 日本一区二区视频在线| 99国产精品久久| 亚洲午夜久久久| 精品日韩欧美在线| 成人爽a毛片一区二区免费| 中文字幕永久在线不卡| 欧美性一二三区| 狠狠色丁香久久婷婷综合丁香| 国产日韩欧美精品综合| 日本高清成人免费播放| 日韩av在线播放中文字幕| 久久久久久久久久电影| 色综合天天综合网天天看片| 男女性色大片免费观看一区二区| 久久久综合精品| 欧美视频日韩视频在线观看| 麻豆精品在线视频| 国产精品福利av| 91精品国产高清一区二区三区| 国产精品一线二线三线| 亚洲一区二区精品3399| 精品国产自在久精品国产| 91丝袜高跟美女视频| 五月激情六月综合| 日本一区二区成人| 欧美日韩国产一二三| 国产麻豆一精品一av一免费| 亚洲综合精品久久| 欧美激情综合在线| 欧美一区二区高清| 91福利在线免费观看| 国产suv精品一区二区6| 日本不卡一二三区黄网| 国产一区二区三区在线观看精品 | 亚洲欧美日韩人成在线播放| 9191国产精品| 99精品热视频| 国产精品一区一区三区| 天堂va蜜桃一区二区三区漫画版| 自拍偷拍欧美激情| 久久亚洲综合色一区二区三区| 欧美性感一区二区三区| 成人av动漫在线| 国产精品88888| 男女性色大片免费观看一区二区| 亚洲欧美日韩国产综合| 国产亚洲精品中文字幕| 日韩欧美国产高清| 欧美精品少妇一区二区三区 | 欧美在线视频不卡| 成人av午夜影院| 国产福利视频一区二区三区| 麻豆91在线播放| 热久久久久久久| 午夜精品一区二区三区免费视频 | 日本人妖一区二区| 亚洲精品日韩专区silk| 国产精品热久久久久夜色精品三区| 日韩一区二区视频| 欧美久久久久久久久久| 欧美精品一级二级三级| 欧美精品777| 欧美日本一区二区三区四区| 欧美日韩在线直播| 日本乱人伦一区| 欧美亚洲国产一区在线观看网站| 91女厕偷拍女厕偷拍高清| 91在线国产观看| 日本道在线观看一区二区| 91福利资源站| 欧美另类一区二区三区| 欧美日韩一区二区三区四区| 欧美精品欧美精品系列| 在线不卡中文字幕| 91精品国产91久久综合桃花| 日韩午夜在线影院| 久久先锋影音av鲁色资源网| 久久先锋影音av鲁色资源| 国产亚洲精品bt天堂精选| 欧美国产在线观看| 亚洲伦理在线精品| 尤物视频一区二区| 午夜精品一区在线观看| 精品夜夜嗨av一区二区三区| 国产精品一卡二| 97se亚洲国产综合自在线不卡| 91香蕉视频污在线| 在线一区二区三区做爰视频网站| 欧美精品久久天天躁| 日韩精品一区二区三区视频在线观看| 欧美不卡一区二区| 中文字幕欧美日韩一区| 一区二区高清免费观看影视大全| 亚洲成人三级小说| 久久99国产精品免费网站| 国产白丝网站精品污在线入口| 91麻豆免费看片| 欧美高清激情brazzers| 久久久精品免费网站| 亚洲黄色免费电影| 激情国产一区二区| 99国产精品国产精品久久| 精品视频在线免费| 欧美国产丝袜视频| 亚洲动漫第一页| 国产精品一级二级三级| 欧美综合一区二区三区| 精品奇米国产一区二区三区| 亚洲欧美乱综合| 激情综合色播激情啊| 欧美综合色免费| 国产日韩欧美综合在线| 亚洲成人午夜电影| 成人免费观看视频| 日韩欧美国产综合| 亚洲最新视频在线观看| 国产在线视频一区二区三区| 欧美亚洲另类激情小说| 国产午夜精品久久久久久久| 亚洲午夜羞羞片| 北条麻妃一区二区三区| 欧美一区二区三区爱爱| 亚洲女爱视频在线| 国产成人免费9x9x人网站视频| 欧美手机在线视频| 国产精品激情偷乱一区二区∴| 蜜桃精品视频在线观看| 欧美自拍丝袜亚洲| 中文字幕乱码久久午夜不卡| 麻豆精品一区二区av白丝在线| 色狠狠桃花综合| 中文字幕永久在线不卡| 国产一区二区免费看| 欧美一二三四区在线| 亚洲制服欧美中文字幕中文字幕| 成人动漫视频在线| 久久精品一区蜜桃臀影院| 久久99精品久久久久久| 欧美一区二区黄| 五月婷婷综合在线| 久久综合99re88久久爱| 视频一区二区三区在线| 色妹子一区二区| 亚洲欧美综合在线精品| 国产iv一区二区三区| 久久精品欧美日韩| 精品影院一区二区久久久| 51精品久久久久久久蜜臀| 亚洲成人你懂的| 欧美三区在线视频| 亚洲尤物视频在线| 色婷婷一区二区三区四区| 国产精品国模大尺度视频| 国产不卡在线播放| 国产视频一区在线观看 | 国产一区三区三区| 欧美成人一区二区| 狠狠色丁香婷婷综合| 久久色成人在线| 韩国在线一区二区| 久久你懂得1024| 国产高清精品久久久久| 国产人成亚洲第一网站在线播放| 国产黑丝在线一区二区三区| 国产精品免费aⅴ片在线观看| 成人黄色777网| 亚洲视频一区在线观看| 色综合久久久久网| 一级中文字幕一区二区| 欧美视频在线一区二区三区| 午夜精品一区二区三区免费视频 | 激情综合色综合久久综合| 欧美一区欧美二区| 美女任你摸久久| 久久久久久久久久美女| 成人h动漫精品| 亚洲最色的网站| 日韩视频在线你懂得| 国产毛片精品视频| 亚洲视频小说图片| 欧美亚洲综合色| 久久99久久精品| 1024亚洲合集| 欧美日韩一级视频| 久久66热偷产精品| 日本成人在线网站| 欧美国产日韩精品免费观看| 色婷婷精品大视频在线蜜桃视频 | 日韩精品一区二| 国产69精品久久777的优势| 亚洲美女偷拍久久| 欧美电视剧在线观看完整版| 丁香婷婷综合激情五月色|