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);