token.cpp

来自「语法分析程序 实现C语言的语法分析过程」· C++ 代码 · 共 53 行

CPP
53
字号
/*//此文件是Token类的定义,此类从文件读入token序列,并存到数据结构中,且能取得下一条token,判断是否还有token
class Token
{
	private:
		vector<TOKEN> vc_Token;
		ifstream in;
	public:
		Token(const char filename[]);
		bool isHasToken();
		TOKEN getToken();
		~Token();
};*/

#include "main.h"

using namespace std;

Token::Token(const char filename[])
{
	pos=0;
	in.open(filename,ios_base::in);
	if(!in) 
	{
		cerr<<"open file"<<filename<<"error\n"; 
		exit(1);
	}
	while(1)
	{
		TOKEN to;
		if(in>>to.strName>>to.strType>>to.line)
		{
			vc_Token.push_back(to); 
		}
		else break;
	}
	in.close();
}

TOKEN Token::getToken()
{
	if(isHasToken())
		return vc_Token[pos++];
}

bool Token::isHasToken()
{
	if(pos<vc_Token.size()) return true;
	else return false;
}

Token::~Token(){}

⌨️ 快捷键说明

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