资源简介
吉林大学编译原理课件+一些源码,非常全,请放心下载
代码片段和文件信息
// analyze.cpp: implementation of the Canalyze class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “face.h“
#include “analyze.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Canalyze::Canalyze()
{
/*scope栈的层数*/
Level=-1;
intPtr = NULL; /*该指针一直指向整数类型的内部表示*/
charPtr = NULL; /*该指针一直指向字符类型的内部表示*/
boolPtr = NULL; /*该指针一直指向布尔类型的内部表示*/
Error = false;
}
Canalyze::~Canalyze()
{
}
/*********************实用函数实现***************************/
/**********************************************************/
/**************** 符号表相关操作 **********************/
/**********************************************************/
/********************************************************/
/* 函数名 PrintFieldTable */
/* 功 能 打印纪录类型的域表 */
/* 说 明 */
/********************************************************/
void Canalyze::PrintFieldChain(fieldChain *currentP)
{
fprintf(listing“\n--------------Field chain--------------------\n“);
fieldChain *t=currentP;
while (t!=NULL)
{ /*输出标识符名字*/
fprintf(listing “%s: “t->id );
/*输出标识符的类型信息*/
switch(t->UnitType->kind)
{case intTy : fprintf(listing “intTy “); break;
case charTy: fprintf(listing “charTy “); break;
case arrayTy: fprintf(listing “arrayTy “); break;
case recordTy:fprintf(listing “recordTy “);break;
default : fprintf(listing “error type! “); break;
}
fprintf(listing “off = %d\n“t->off);
t = t->Next;
}
}
/********************************************************/
/* 函数名 PrintOnelayer */
/* 功 能 打印符号表的一层 */
/* 说 明 有符号表打印函数PrintSymbTable调用 */
/********************************************************/
void Canalyze::PrintOnelayer(int level)
{
SymbTable *t= scope[level];
fprintf(listing“\n-------SymbTable in level %d ---------\n“level);
while (t!=NULL)
{ /*输出标识符名字*/
fprintf(listing “%s: “t->idName);
AttributeIR *Attrib = &(t->attrIR );
/*输出标识符的类型信息,过程标识符除外*/
if (Attrib->idtype!=NULL) /*过程标识符*/
switch(Attrib->idtype->kind)
{case intTy : fprintf(listing “intTy “); break;
case charTy: fprintf(listing “charTy “); break;
case arrayTy: fprintf(listing “arrayTy “); break;
case recordTy:fprintf(listing “recordTy “);break;
default : fprintf(listing “error type! “); break;
}
/*输出标识符的类别,并根据不同类型输出不同其它属性*/
switch(Attrib->kind)
{case typeKind :
fprintf(listing “typekind “); break;
case varKind :
fprintf(listing “varkind “);
fprintf(listing “Level = %d “ Attrib->More.VarAttr.level);
fprintf(listing “Offset= %d “ Attrib->More.VarAttr.off
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-03-17 21:01 编译原理\
目录 0 2014-06-30 11:18 编译原理\SNL语言例子\
目录 0 2014-06-30 11:18 编译原理\SNL语言例子\一般例子\
文件 309 2013-05-12 21:38 编译原理\SNL语言例子\一般例子\c1.txt
文件 355 2002-11-12 00:00 编译原理\SNL语言例子\一般例子\c2.txt
文件 447 2002-11-12 00:00 编译原理\SNL语言例子\一般例子\c4.txt
文件 616 2002-11-12 00:00 编译原理\SNL语言例子\一般例子\c5.txt
文件 416 2002-11-12 00:00 编译原理\SNL语言例子\一般例子\c6.txt
文件 519 2002-11-12 00:00 编译原理\SNL语言例子\一般例子\c7.txt
文件 557 2002-11-12 00:00 编译原理\SNL语言例子\一般例子\c8.txt
文件 251 2002-05-18 00:00 编译原理\SNL语言例子\一般例子\easy.txt
文件 564 2002-05-18 00:00 编译原理\SNL语言例子\一般例子\exp.txt
文件 121 2002-08-20 00:00 编译原理\SNL语言例子\一般例子\scan.txt
文件 547 2002-05-09 00:00 编译原理\SNL语言例子\一般例子\sd1.txt
文件 57 2013-05-12 21:49 编译原理\SNL语言例子\一般例子\x.txt
目录 0 2014-06-30 11:18 编译原理\SNL语言例子\优化测试例\
文件 360 2002-11-01 00:00 编译原理\SNL语言例子\优化测试例\const.txt
文件 181 2002-05-18 00:00 编译原理\SNL语言例子\优化测试例\eccexam1.txt
文件 291 2002-05-18 00:00 编译原理\SNL语言例子\优化测试例\eccexam2.txt
文件 416 2002-05-07 00:00 编译原理\SNL语言例子\优化测试例\loop1.txt
文件 571 2002-05-07 00:00 编译原理\SNL语言例子\优化测试例\loop2.txt
文件 493 2002-05-07 00:00 编译原理\SNL语言例子\优化测试例\loop3.txt
目录 0 2014-06-30 11:18 编译原理\SNL语言例子\应用实例\
文件 514 2002-11-12 00:00 编译原理\SNL语言例子\应用实例\cs1.txt
文件 267 2003-02-25 00:00 编译原理\SNL语言例子\应用实例\factorial.txt
文件 718 2002-11-12 00:00 编译原理\SNL语言例子\应用实例\sort.txt
文件 295 2002-11-12 00:00 编译原理\SNL语言例子\错误检查例.txt
目录 0 2014-06-30 11:18 编译原理\可视化SNLC\
文件 24 2004-02-18 10:47 编译原理\可视化SNLC\sn.txt
文件 3223889 2003-10-23 11:10 编译原理\可视化SNLC\SNLC安装文件.exe
目录 0 2014-06-30 11:18 编译原理\可视化SNLC\源代码\
............此处省略214个文件信息
相关资源
- 数据结构与算法课件ppt
- 软件工程课件西安电子科技大学出版
- 编译原理实验:词法分析,语法分析
- 物理学课件-真空中的静电场
- cs231a课件第一部分
- 信号与系统PPT 英文版 奥本海姆
- 编译原理龙书答案
- 编译原理 第三章课后习题答案
- 番茄工作法(pomotime)PowerPoint.rar
- 易语言变量和数组的编译原理
- 超详细课件哈工大第七版理论力学
- 中国科学技术大学 研究生课程 机器学
- 编译原理语法分析器、词法分析器
- 多源信息融合教材及课件
- 山东大学编译原理PL/0语言 compiler实验
- 信号与系统郑君里北邮课件
- 电子科技大学 电磁场与电磁波课件
- 同济高等数学第六版PPT课件.rar
- 人民大学数据库课件
- 小马老师2019年上半年软考高项课件
- linux高级程序设计第三版全书源代码
- 清华大学-王爱英-计算机组成原理课件
- flash as3.0 课件 十二生肖的学习
- 单片机原理与应用设计课件\\张毅刚编
- 2019年独家Kubernetes K8S与Jenkins的CI CD高
- 电子科技大学半导体物理资料课件p
- 武大计算机系数据库原理与技术课件
- 川大数据库系统(SSD6)历年考题、
- 计算机组成原理课件ppt比看白中英的
- 电子科技大学矩阵理论往年试题+课件
评论
共有 条评论