www.pudn.com > Micro.rar > SymbolTable.h


#pragma once 
 
#include  "Semantic.h" 
#include  "Common.h" 
#include  "Lex.h" 
 
class CSymbolTable 
{ 
public: 
	CSymbolTable(void); 
	~CSymbolTable(void); 
}; 
 
typedef struct symbol { 
	int   type;// ID  INTLITERAL  FUNCTION's ID 
	struct { 
		char  text[WORD_LEN];// for ID  FUNCTION's ID 
		int   int_val;       // for INTLITERAL 
	}; 
} Symbol; 
 
typedef struct symboltable { 
	int     freepointer;     // point to the first free unit in the smb 
	Symbol  smb[ MAX_SYMBOL ]; // common.h 
} SymbolTable; 
 
void  init_global_symboltable(); 
void  init_local_symboltable(); 
 
Symbol *	lookup(cstr s); 
Symbol *	lookup(int  v); 
void	enter(cstr s, token); 
void	enter(int  v); 
char * extract(expr_rec & s); 
char * extract(op_rec   & op);