- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
福建农林大学-编译原理课程设计(原创)
福建农林大学计算机与信息学院
计算机类
课程设计报告
课程名称: 编译原理 课程设计题目: 语法分析器 姓 名: 系: 计算机 专 业: 年 级: 学 号: 指导教师:
2011~2012学年第一学期
福建农林大学计算机与信息学院计算机类
课程设计结果评定
评语: 成绩: 指导教师签字: 任务下达日期: 评定日期: 目 录
1 正则表达式 1
1.1 正则表达式 1
1.2 确定化(化简)后的状态转换图 1
1.3 分析程序代码 1
1.4 程序运行截图 1
1.5 小结 1
2 LL(1)分析 2
2.1 LL(1)文法 2
2.2 LL(1)预测分析表 2
2.3 分析程序代码 2
2.4 程序运行截图 2
2.5 小结 2
3 算符优先分析 3
3.1 算符优先文法 3
3.2 算符优先关系表 3
3.3 分析程序代码 3
3.4 程序运行截图 3
3.5 小结 3
4 LR分析 4
4.1 LR文法 4
4.2 LR分析表 4
4.3 分析程序代码 4
4.4 程序运行截图 4
4.5 小结 4
参考文献: 4
1 正则表达式
1.1 正则表达式
(a|b)*(aa|bb)(a|b)* (注:该正规式为示例,可更改)
1.2 确定化(化简)后的状态转换图
1.3 分析程序代码
程序要求:用户输入一个符号串,程序判断是否为给定方法的句子。
五号字,固定值12磅行间距。
程序要有注释
#include stdio.h
#include string.h
#include stdio.h
#include iostream
#define STRM 5
#define STRN 2
class CodeParse
{
public:
void CodeParse::disPlayResult(int argc,char * argv[]);
private:
int analyzer(char *words);
};
int CodeParse::analyzer(char *words)
{
int index=0,tab_pint=1;
int map_table[STRM][STRN] = {{1,2},{2,3},{4,3},{2,4},{4,4}};
while(words[index]!=\0)
{
if(words[index]==a)
{
tab_pint=map_table[tab_pint][0];
}
else if(words[index]==b)
{
tab_pint=map_table[tab_pint][1];
}
else
{
printf(Error of the input\n);
return 0;
}
index++;
}
if (tab_pint==4)
return 1;
else
return 0;
}
void CodeParse::disPlayResult(int argc,char * argv[])
{
if (analyzer(argv[1])0)
std::coutThe str is rightstd::endl;
else
std::coutinput ERRORstd::endl;
}
int main(int argc,char * argv[])
{
if(argc!=2)
std::coutThe commond is errorstd::endl;
else
{
CodeParse codeParse;
codeParse.disPlayResult(argc,argv);
}
return 0;
}
1.4 程序运行截图
1.5 小结:
2 LL(1)分析
2.1 LL(1)文法
E→TE (注:该文法为示例,可更改)
E→+TE|ε
T→FT
T→*FT|ε
F→(E)|i
2.2 LL(1)预测分析表
Id + * ( ) # E E-TE’ E-TE’ E’ E’-+TE’ E’-ε E’-ε T T-FT’ T-FT’ T’ T’-ε T’-*FT’ T’-ε T’-ε F F-id F-(E) 2.3 分析程序代码
程序要求:用户输入一个符号串,程序判断是否为给定方法的句子。
五号字,固定
文档评论(0)