编译原理实验报告
题 目 表达式语法分析程序的构造 学 院 专 业 班 级 学 号 学生姓名 指导教师
西安思源学院教务处制
二〇一 年
实验四 表达式语法分析程序的构造
一、实验目的
1掌握C++语言编译的语法分析程序
2分别掌握LL(1)、算符优先、LR等语法分析方法的构造。
二、实验环境
Microsoft Visual C++ 6.0
三、实验内容
给定某一文法,试构造其简单优先矩阵(或LL(1)矩阵),并编制程序。 给出相应句子的语法分析过程,判其正确性。 例如:给定文法G: E→T E1 E1→+TE1/ε T→FT1 T1→*F/ε F→id/(E)
(1)先构造其SELECT集合,判定其是否为LL(1)文法 (2)是则构造其分析表
(3)给出句子id+id*id$的语法分析过程
四、设计说明
LL(1):
#include
char c[N4]={'$','z','*','z','+','z'}; char *B[N1][N2]={
};
\\\\\
\
void FXB() { int i,j;
cout<<\分析表为: \for(i=0;i for(j=0;j } cout< char *w[5]={\ cout<<\文法为: \ for(s=0;s<5;s++) } void SELECT() { } void showa() { int i; cout<<\分析栈为:\ for(i=0;i