电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

实验二语法分析(算符优先)

实验二语法分析(算符优先)_第1页
1/6
实验二语法分析(算符优先)_第2页
2/6
实验二语法分析(算符优先)_第3页
3/6
实验二 语法分析 算符优先分析程序 一.实验要求 ⑴ 选择最有代表性的语法分析方法,如算符优先法、递归子程序法或LR 分析法 ⑵ 选择对各种常见程序语言都用的语法结构,如赋值语句(尤指表达式)作为分析对象,并且与所选语法分析方法要比较贴切。 ⑶ 实习时间为6 学时 二.实验内容及要求 (1)根据给定文法,先求出FirstVt 和LastVt 集合,构造算符优先关系表(要求算符优先关系表 输出到屏幕或者输出到文件); (2)根据算法和优先关系表分析给定表达式是否是该文法识别的正确的算术表达式(要求输出归约过程) (3)给定表达式文法为: G(E’): E’→#E# E→E+T | T T→T*F |F F→(E)|i (4)分析的句子为: (i+i)*i 和i+i)*i 三、实验主要代码 # define MAX 100 char *SR;//输入串 char SY[MAX];//移近或规约后剩余串 char S[MAX];//堆栈 char grammer[10][30];//保存输入的语法规则 char chanshengshi[20][10]; char feizhongjie[10];//存放非终结符 char zhongjie[15];//存放终结符 int numf=0;//非终结符个数 int num=0;//终结符个数 int M=0;//转换后产生式个数 char Relation[6][6];//存放优先关系 int FIRSTVT[3][6];//存放 firstvt 集 int LASTVT[3][6];//存放 lastvt 集 int type(char s)//在终结符串里查找字符a 若 a 在其中返回下标,否则返回-1 { int len=strlen(zhongjie); int tp=-1; for(int i=0;i'Z') { cout<<"该文法不是算符文发!"<='A'&&grammer[i][j]<='Z') { if(grammer[i][j+1]>='A'&&grammer[i][j+1]<='Z') { cout<<"该文法不是算符文发!"<

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

实验二语法分析(算符优先)

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群