资源简介
编译原理的综合性实验,有详细实验报告以及完整代码
代码片段和文件信息
#include
#include
#include
#include
#define KeyWordNum 13//关键字的个数
#define maxvartablep 500//符号表的最大行数
char *KeyWord[KeyWordNum]={“ ““program““var““procedure““begin““end““if“
“then““else““while““do““integer““real“};//12个关键词,其中第个设置为空是为了第二个的syn从开始
int line;//记录程序的行数
int error_count;//错误编号
int syn;//种别码
int var_count;//变量的数目
char token[20]temp1[10]temp2[10]temp3op1[10]op2[10];//一些单词码,临时数组,操作数
char place1[10]place2[10];//变量和常量的临时单元
char strTempID[10];//新的临时变量单元
int flag;//错误标记
int vartablep=0;//符号表的总行数 datap=0
int nNXQnT;//四元式的个数和临时变量的个数
int i;//常用变量
FILE *fin*fout*fp;//文件指针
struct{
char name[8];
int address;
}vartable[maxvartablep];//符号表,用来记录变量
struct
{
char op[10];
char argv1[10];
char argv2[10];
char result[10];
}pQuad[maxvartablep];//四元式
//QUATERNION *pQuad;
//函数的定义
void init();//初始化
void P_declear();
void P_begin();
char* S_let();
void P_analize();
void S_if();
void S_while();
void P_begin();
void enter(char *name);
void lookup(char *name);
void Scaner();
void parser();
void printQuaternion();
void main()
{
printf(“请按任意键来运行简单的编译器,谢谢“);
getchar();
system(“cls“); // 清屏函数
init();//初始化
Scaner();//词法扫描,把结果写入Scaner.txt文件中
parser();//语法和语义分析程序
printf(“\n-----------------------------------------\n“);
printf(“程序编译完毕,结果以四元式输出如下\n\n“);
printQuaternion();//显示输出所有的四元式
printf(“\n-----------------------------------------\n“);
}
void init()//初始化
{
line=1;
error_count=0;
}
void error(int n)//出错处理
{
flag=1;
error_count++;
switch(n)
{
case 1: printf(“Error %d 格式出错缺少‘program‘ 错于第%d行\n“error_countline);
break;
case 2: printf(“Error %d 格式出错缺少程序名错于第%d行\n“error_countline);
break;
case 3: printf(“Error %d 格式出错缺少; 错于第%d行\n“error_countline);
break;
case 4: printf(“Error %d 格式出错缺少var 错于第%d行\n“error_countline);
break;
case 5: printf(“Error %d 未写任何语句错于第%d行!\n“error_countline);
break;
case 6: printf(“Error %d 程序结束缺少. 错于第%d行!\n“error_countline);
break;
case 7: printf(“Error %d 说明语句出错! 错于第%d行\n“error_countline);
break;
case 8: printf(“Error %d 不存在匹配的end 错于第%d行!\n“error_countline);
break;
case 9: printf(“Error %d 语句出错错于第%d行!\n“error_countline);
break;
case 10:printf(“Error %d 赋值语句出错错于第%d行!\n“error_countline);
break;
case 11: printf(“Error %d 非法标识符错于第%d行!\n“error_countline);
break;
case 12: printf(“Error %d 没有匹配的注释符‘*/‘ 错于第%d行!\n“error_countline);
break;
case 13: printf(“Error %d 非正常结束错于第%d行!\n“error_countline);
break;
case 14: printf(“Error %d 非法字符错于第%d行!\n“error_countline);
break;
case 15: printf(“Error %d if语句出错错于第%d行!\n“error_countline);
break;
case 16: printf(“Error %d while语句出错错于第%d行!\n“error_countline);
break;
case 17: printf(“Error %d 符号表溢出错于第%d行!\n“error_countline);
break;
case 18: printf(“Error %d 变量重复定义错于第%d行!\n“error_countline);
brea
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 33792 2010-05-31 13:35 综合实验\Debug\vc60.idb
文件 45056 2010-05-31 13:35 综合实验\Debug\vc60.pdb
文件 217178 2010-05-31 13:35 综合实验\Debug\综合实验.exe
文件 230688 2010-05-31 13:35 综合实验\Debug\综合实验.ilk
文件 53391 2010-05-31 13:35 综合实验\Debug\综合实验.obj
文件 226120 2010-05-31 13:35 综合实验\Debug\综合实验.pch
文件 443392 2010-05-31 13:35 综合实验\Debug\综合实验.pdb
文件 408 2008-12-31 15:37 综合实验\fin.txt
文件 970 2010-05-31 13:35 综合实验\Scaner.txt
文件 277 2008-12-31 16:11 综合实验\种别码.txt
文件 21484 2010-05-31 13:29 综合实验\综合实验.cpp
文件 3427 2010-05-31 13:29 综合实验\综合实验.dsp
文件 524 2010-05-31 13:32 综合实验\综合实验.dsw
文件 33792 2010-05-31 13:35 综合实验\综合实验.ncb
文件 48640 2010-05-31 13:35 综合实验\综合实验.opt
文件 1172 2010-05-31 13:35 综合实验\综合实验.plg
文件 1144023 2010-05-31 13:44 综合实验\编译原理实验报告.doc
目录 0 2010-05-31 13:35 综合实验\Debug
目录 0 2010-05-31 13:44 综合实验
----------- --------- ---------- ----- ----
2504334 19
相关资源
- 哈工大软件学院编译原理语法分析源
- 基于Pascal语言的语法分析器
- 词法分析、语法分析、语义分析
- 编译原理词法、语法、语义分析器
- 词法分析语法分析语义分析
- 算术表达式的语法分析及语义分析程
- 编译原理实验 语义分析与中间代码
- 编译原理 语法分析器
- 递归下降分析法的实现
- 语义分析实验报告 经典
- 自顶向下的语法分析器
- 四川大学编译原理课程设计报告C-词法
- 编译原理,词法分析&语法分析及源代
- 赋值语句词法和语法分析程序
- 《编译原理》课程设计指导书 算术表
- yacc实现的语法分析器
- 语法分析器实验报告
- 编译原理——语法分析器递归下降分
- LL(1)语法分析 任意输入一个文法符
- 编译课程设计报告通过编程实现语法
- 编译原理 递归下降语法分析程序代码
- 编译原理大作业 完整编译器
- 编译原理--词法分析器+语法分析器 源
- pl0语法分析器
- LR(0)语法分析的实现
- PL/0语言词法及语法分析系统的设计与
- LR(0)完整的语法分析方法(拓广文
- 编译原理上机源代码LR语法分析器
- 哈工大编译原理实验三语义分析实验
- 用YACC实现语法分析器
评论
共有 条评论