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

编译原理:算术表达式递归下降分析程序设计

编译原理:算术表达式递归下降分析程序设计_第1页
1/7
编译原理:算术表达式递归下降分析程序设计_第2页
2/7
编译原理:算术表达式递归下降分析程序设计_第3页
3/7
实验二:算术表达式递归下降分析程序设计 LD 1、实验目的: (1)掌握自上而下语法分析的要求与特点。 (2)掌握递归下降语法分析的基本原理和方法。 (3)掌握相应数据结构的设计方法。 2、实验内容: 编程实现给定算术表达式的递归下降分析器。 算术表达式文法如下: EE+T | T TT*F | F F(E) | i 3、设计分析 题目所给的文法不为LL(1)文法,应改写成如下文法: E TE2 E2+TE2 | ∑ T FT2 T2*FT2 | ∑ F (E) | i 采用递归下降分析法时,需要求出 E2 和T2 的FOLLOW 集: FOLLOW(E2)={),#} FOLLOW(T2)={+,),#} 递归下降分析法是确定的自上而下分析法,基本思想是,对文法中的每个非终结符编写一个函数,每个函数的功能是识别由该非终结符所表示的语法成分。因此需要分别构造E,E2,T,T2,F 函数来执行自己的识别功能,根据文法的内容顺序决定函数的识别功能。advance 函数用于字符串的推进,input 函数用于字符串的输入。 4、程序代码 #include using namespace std; char a[80]; // 字符串的存入 char sym; // 单个的判断字符 int i=0; // 字符串下标 void E(); // 功能识别函数 void E2(); // 功能识别函数 void T(); // 功能识别函数 void T2(); // 功能识别函数 void F(); // 功能识别函数 void input(); // 输入函数 void advance(); // 字符串小标进一函数 void main() { while(1) { input(); advance(); E(); // 从首个推导式 E 开始 if (sym=='#') cout<<"success"<>...

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

碎片内容

编译原理:算术表达式递归下降分析程序设计

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部