www.pudn.com > pl0_compiler_c.rar > table.h


// table.h: interface for the table class. 
////////////////////////////////////////////////////////////////////// 
#ifndef __TABLE_H 
#define __TABLE_H 
#include "pl0.h" 
#include "errors.h" 
#include "yufa.h" 
#define TABLE_SIZE	100 
 
enum object {constant,variable,procedure}; 
 
struct table_type 
{ 
	char name[IDENT_LENGTH+1]; 
	object kind; 
	union{ 
		int val; 
		struct{ 
			int level,adr,size; 
		}; 
	}; 
}; 
 
class Ctable 
{ 
public: 
	Ctable(CPlCompiler*); 
	void Enter(enum object k); 
	int Position(char *id); 
	int TableIndex(){return tx[lev];} 
public: 
	table_type table[TABLE_SIZE]; 
private: 
	int tx[MAX_LEVEL+1]; 
	int lev; 
 
	CPlCompiler *pl; 
}; 
 
#endif