1 / 12
文档名称:

法分析器实验报告.doc

格式:doc   大小:195KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

法分析器实验报告.doc

上传人:陈潇睡不醒 2021/1/10 文件大小:195 KB

下载得到文件列表

法分析器实验报告.doc

相关文档

文档介绍

文档介绍:一、实验目的
了解词法分析程序的两种设计方法:;。
二、实验内容及要求
1.根据状态转换图直接编程
编写一个词法分析程序,它从左到右逐个字符的对源程序进行扫描,产生一个个的单词的二元式,形成二元式(记号)流文件输出。在此,词法分析程序作为单独的一遍,如下图所示。
具体任务有:
(1)组织源程序的输入
(2)拼出单词并查找其类别编号,形成二元式输出,得到单词流文件
(3)删除注释、空格和无用符号
(4)发现并定位词法错误,需要输出错误的位置在源程序中的第几行。将错误信息输出到屏幕上。
(5)对于普通标识符和常量,分别建立标识符表和常量表(使用线性表存储),当遇到一个标识符或常量时,查找标识符表或常量表,若存在,则返回位置,否则返回0并且填写符号表或常量表。
标识符表结构:变量名,类型(整型、实型、字符型),分配的数据区地址
注:词法分析阶段只填写变量名,其它部分在语法分析、语义分析、代码生成等阶段逐步填入。
常量表结构:常量名,常量值
2.能对任何S语言源程序进行分析
在运行词法分析程序时,应该用问答形式输入要被分析的S源语言程序的文件名,然后对该程序完成词法分析任务。
3.能检查并处理某些词法分析错误
词法分析程序能给出的错误信息包括:总的出错个数,每个错误所在的行号,错误的编号及错误信息。
4. 本实验要求处理以下两种错误(编号分别为1,2):
1:非法字符:单词表中不存在的字符处理为非法字符,处理方式是删除该字符,给出错误信息,“某某字符非法”。
2:源程序文件结束而注释未结束。注释格式为:/* …… */
三、实验程序设计说明
1.实验方案设计
2.程序源代码
#include<>
#include<>
#include<string>
#include<iostream>
using namespace std;
string keywords[20]={"include","void","main","int","char","float","double","if","else","then","break","continue","for","do","while","printf","scanf","begin","end","return"};
char aa[99999]=" ";
string id[10000];
int pp=0;
string nu[10000];
int qq=0;
void initscanner() //程序初始化:输入并打开源程序文件和目标程序文件,初始化保留字表
{
int i=0;
FILE *fp;
if((fp=fopen("","r"))==NULL)
{
printf("Open error!");
exit(0);
}
char ch=fgetc(fp);
while(ch!=EOF)
{
aa[i]=ch;
i++;
ch=fgetc(fp);
}
fclose(fp);
}
int decide1(char a) //判断是否是字母
{
if((a>='a'&&a<='z')||(a>='A'&&a<='Z'))
return 1;
else return 0;
}
int decide2(char a) //判断是否是数字
{
if(a>='0'&&a<='9')
return 1;
else return 0;
}
int isalpha(int st) //识别保留字和标识符
{
char wordbuf[20]=" ";
int n=0;
for( ; ; )
{
wordbuf[n]=aa[st];
st++;
n++;
if((decide2(aa[st])==1)||(decide1(aa[st])==1)||(aa[st]=='_'))
wordbuf[n]=aa[st];
else break;
}
int flag=0;
for(int k=0;k<20;k++)
{
if(strcmp(keywords[k].c_str(),wordbuf)==0) flag=1;
}
if(flag==0)
{
int flagg=-1;
for(i

最近更新

2024年保安员考试题(研优卷) 32页

医学人文素质教育对医学生团队合作能力的培养.. 33页

小学英语教学研讨会心得体会(最终定稿) 3页

2024年内蒙古伊克昭盟行政职业能力测验题库及.. 148页

2024年南阳职业学院单招职业适应性测试题库完.. 54页

2024年周口职业技术学院单招职业适应性测试题.. 57页

2024年四川汽车职业技术学院单招职业适应性测.. 55页

2024年国家保安员资格考试题库完整答案 33页

2024年天津市行政职业能力测验题库带答案 149页

2024年宝鸡职业技术学院单招职业适应性测试题.. 55页

2024年山西省吕梁市行政职业能力测验题库(全.. 149页

2024年山西省阳泉市行政职业能力测验题库含答.. 148页

2024年广州卫生职业技术学院单招职业适应性测.. 53页

2024年张家界航空工业职业技术学院单招职业适.. 54页

2024年无锡城市职业技术学院单招职业适应性测.. 56页

2024年时政必考试题库(培优) 29页

2024年松原职业技术学院单招职业适应性测试题.. 55页

2024年江西农业工程职业学院单招职业适应性测.. 53页

2024年河北省秦皇岛市行政职业能力测验题库(.. 147页

2024年泉州幼儿师范高等专科学校单招职业适应.. 54页

2024年浙江省地质勘查局所属事业单位招聘18人.. 59页

2024年浙江金华市轨道交通集团限公司招聘30人.. 60页

2024年湖北黄石经济技术开发区管委会事业单位.. 90页

语音厅小游戏策划方案 3页

游戏推广员的周报 6页

田径国家一级裁判模拟试题 61页

四年级英语下册第四单元教案 17页

丙烯酰胺与nn一亚甲基双丙烯酰胺的凝胶反应 13页

ck520立式车床总体及床身设计 37页

先天性心脏病患儿护理查房 26页