第一次写的

源代码在线查看: table.cpp

软件大小: 52 K
上传用户: dante55
关键词:
下载地址: 免注册下载 普通下载 VIP

相关代码

				// Table.cpp: implementation of the Table class.
				//
				//////////////////////////////////////////////////////////////////////
				
				#include "Table.h"
				
				//////////////////////////////////////////////////////////////////////
				// Construction/Destruction
				//////////////////////////////////////////////////////////////////////
				
				Table::Table(Simpsc *p)
				{
					pl=p;
					lev=0;
					tx[0]=0;
				}
				
				
				void Table::Enter(obj k,Word *Token)
				{
					
					if (pl->gra->ReturnLevel()>lev)
						tx[++lev]=tx[lev-1];
					else if (pl->gra->ReturnLevel())
						lev--;
				
					tx[lev]++;
					if (tx[lev]>=TABLE_MAX) return;
					strcpy(table[tx[lev]].name,pl->gra->ReturnName(Token));
					table[tx[lev]].kind=k;
					switch (k)
					{
					case constant:
						break;
					case variable:
						table[tx[lev]].level=pl->gra->ReturnLevel();
						table[tx[lev]].adr=pl->gra->ReturnAddr();
						break;
					case procedure:
						table[tx[lev]].level=pl->gra->ReturnLevel();
						break;
					}
				}
				
				void Table::GetVal(int num)
				{
					table[tx[lev]].val=num;
				}
				
				int Table::ReturnIndex()
				{
					return tx[lev];
				}
				
				int Table::Position(char *id)
				{
					int i=tx[lev];
					while (stricmp(table[i].name,id) && i>0) i--;
					return i;
				}
							

相关资源