- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告编译原理
北京科技大学 计算机与通信工程学院
实 验 报 告
实验名称:_________编译原理实验报告_______
学生姓名:_________ ________________
专 业:_________ _________________
班 级:_________ _________________
学 号:_________________________
指导教师:_________ _________________
实验成绩:________________________________
实验地点:________________________________
实验时间:____2015___年___07__月_______日
一、实验目的与实验要求
1、实验目的
通过一个词法分析程序将一段给出的C语言代码的词法部分分析出来;
通过一个语法分析程序将一段给出的C语言代码的语法分析出来。
2、实验要求
二、实验设备(环境)及要求
Win7家庭普通版;Visual Studio 2013;
三、实验内容与步骤
1、实验1
(1)实验内容
对于给定一段代码,通过词法分析程序将程序中的各个类型的字表分析,包括保留字、分隔符表、运算符表、标识符、整型数、浮点类型数、字符类型、字符串类型等表文件。
(2)主要步骤
通过读入程序的文本文件,然后将分析的结果一次保存在本地文本文件。
然后通过指定的命令来将分析的结果读取出来。
附录:源码
#include stdio.h
#include string.h
#include stdlib.h
char *key0[] = { , auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, _Complex, _Imaginary, union, unsigned, void, volatile, while };
/*保留字表*/
char *key1[] = { , (, ), [, ], {, }, ,, ;, };
/*分隔符表*/
char *key2[] = { , +, -, *, /, %, , , ==, =, =, !=, !, , ||, , , ~, |, ^, , =, ?:, -, ++, --, ., +=, -=, *=, /= };
/*运算符表*/
int xx0[35], xx1[10], xx2[31];
int temp_key3 = 0, temp_c40 = 0, temp_c41 = 0, temp_c42 = 0, temp_c43 = 0;
/******* 初始化函数 *******/
void load()
{
int mm;
for (mm = 0; mm = 34; mm++)
{
xx0[mm] = 0;
}
for (mm = 0; mm = 9; mm++)
{
xx1[mm] = 0;
}
for (mm = 0; mm = 30; mm++)
{
xx2[mm] = 0;
}
FILE *floading;
if ((floading = fopen(key0.txt, w)) == NULL)
{
printf(Error! Cant create file : key0.txt);
return;
}
fclose(floading);
/*建立保留字表文件:key0.txt*/
if ((floading = fopen(key1.txt, w)) == NULL)
{
printf(Error! Cant create file : key1.txt);
return;
}
/*建立分隔符表文件:key1.txt*/
if ((floading = fopen(key2.txt, w)) == NULL)
{
printf(Error! Cant create file : key2.txt);
return;
}
fclose(floading);
/*建立运算符表文件:key2.txt*/
if ((floading = fopen(key3.txt, w)) == NULL)
{
printf(Error! Cant create file : key3.
您可能关注的文档
最近下载
- 2023税务局大比武数字人事“两测”练习专业能力-行政管理考试题库及答案.pdf
- 2023北京北师大二附中高一(上)期中化学试卷含答案.docx
- 小学数学拓展提高(行程问题——追及问题)精选应用题30个.doc
- 《原子的结构》说课稿.docx VIP
- 2024-2028年2024-2029年中国高蛋白饲料行业供需趋势及投资风险研究报告.docx
- 成都城投集团笔试题目.pdf
- 2022高三联考作文“择一事,终一生”精准审题指导素材及优秀范文四篇.docx
- 必威体育精装版班主任艺术:做一个幸福的班主任(共50张PPT).ppt
- 《控制图+第3部分:验收控制图GBT+17989.3-2020》详细解读.pdf
- 人教版八年级物理上册全册大单元教学解读课件.ppt
文档评论(0)