token.h

来自「compiler principle how to ananilyze」· C头文件 代码 · 共 59 行

H
59
字号
// Token.h: interface for the Token class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_TOKEN_H__54D3F2E2_73B8_4263_87FF_7508EEA45273__INCLUDED_)
#define AFX_TOKEN_H__54D3F2E2_73B8_4263_87FF_7508EEA45273__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <string>
using namespace std;


class Token {

// (type,value)			meaning						    lexeme
//============================================================================================
// 1)  from SymbolEntry
// (VN,index)			V: Non-terminal symbol			[A-Za-z][A-Za-z_0-9]*
// (VT,index)			V: terminal symbol				\'Escape\' | 'epsilon'
//	Escape -> NoEscapeChar Escape | '\\\\' Escape | '\\\'' Escape | epsilon;
//	NoEscapeChar -> [^\'];

// (GN,index)			GT(GrammarTitle): GrammarName			[A-Za-z][A-Za-z_0-9]*

// (ALTER,index)			KEYWORD: meta-symbol			|		
// (ARROW,index)			KEYWORD: meta-symbol			->
// (DELIMITER,index)		KEYWORD: meta-symbol			;
// (EPSILON,index)			KEYWORD: meta-symbol			epsilon
// (LEFT_BRACKET,index)		KEYWORD: meta-symbol			[
// (RIGHT_BRACKET,index)	KEYWORD: meta-symbol			]
//--------------------------------------------------------------------------------------------
// 2) lexer using (DONE, NONE) to notify the parser ending of the token stream
// (tDONE, tNONE)		EOF								EOF
//--------------------------------------------------------------------------------------------
// 3) Token objects' initial value
//--------------------------------------------------------------------------------------------
// (tEMPTY, tNONE)		Token objects' initial value 
	
public:
  enum {tDONE=-262, tEMPTY=-263, tNONE=-1 };

public:
  
  int type;
  int value;						
									
  Token(int atype, int avalue=Token::tNONE);
  Token();
  bool operator==(const Token& tk) const;
  bool operator!=(const Token& tk) const;

  string toStr() const;
};

#endif // !defined(AFX_TOKEN_H__54D3F2E2_73B8_4263_87FF_7508EEA45273__INCLUDED_)

⌨️ 快捷键说明

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