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