PL0的编译系统,使用MFC编写界面,采用浮动窗口来仿VC的环境
源代码在线查看: table.cpp
// Table.cpp : implementation file
//
#include "stdafx.h"
#include "My1.h"
#include "Table.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTable
CTable::CTable()
{
}
CTable::CTable(CCompiler *compiler)
{
mCompiler =compiler;
lev =0;
tx[0] =0;
table[0].name[0]=0;
}
CTable::~CTable()
{
}
void CTable::Enter(enum object k)
{
if (mCompiler->mPhraseAnalysis->Level()>lev)
tx[++lev]=tx[lev-1];
else if (mCompiler->mPhraseAnalysis->Level() lev--;
tx[lev]++;
if (tx[lev]>=TABLE_SIZE) return;
strcpy(table[tx[lev]].name,mCompiler->mWordAnalysis->id);
table[tx[lev]].kind=k;
switch (k)
{
case constant:
table[tx[lev]].val=mCompiler->mWordAnalysis->num;
break;
case variable:
table[tx[lev]].level=mCompiler->mPhraseAnalysis->Level();
table[tx[lev]].adr=mCompiler->mPhraseAnalysis->DataAddr();
break;
case procedure:
table[tx[lev]].level=mCompiler->mPhraseAnalysis->Level();
break;
}
}
int CTable::Position(char *id)
{
int i=tx[lev];
while (stricmp(table[i].name,id) && i>0) i--;
return i;
}
BEGIN_MESSAGE_MAP(CTable, CWnd)
//{{AFX_MSG_MAP(CTable)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTable message handlers
|
相关资源 |
|
-
PL0的编译系统,使用MFC编写界面,采用浮动窗口来仿VC的环境
-
这是个ACCESS版的考勤系统,用ASP编写的,比较简单,适合小企业使用!
-
一个用VC++编写的计算器。 使用高级按钮界面友好。
-
本系统是在大学期间,为JAVA课题设计而编写的,如果系统使用数据库,程序将变得简洁,水平有限,希望大家指正.
-
同学通讯录系统,利用MFC编写,利用了数据库的技术
-
一个基于不需引擎的文件管理系统,使用了许多界面比较好的控件
-
这是一个通用的人事管理系统,用VB编写,界面友好,代码流畅
-
使用MFC编写的实现绘图功能的程序源代码
|