编译原理语法分析实验报告

上传人:人*** 文档编号:478150391 上传时间:2023-11-21 格式:DOCX 页数:5 大小:57.60KB
返回 下载 相关 举报
编译原理语法分析实验报告_第1页
第1页 / 共5页
编译原理语法分析实验报告_第2页
第2页 / 共5页
编译原理语法分析实验报告_第3页
第3页 / 共5页
编译原理语法分析实验报告_第4页
第4页 / 共5页
编译原理语法分析实验报告_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《编译原理语法分析实验报告》由会员分享,可在线阅读,更多相关《编译原理语法分析实验报告(5页珍藏版)》请在金锄头文库上搜索。

1、实验2:语法分析1.实验题目和要求题目:语法分析程序的设计与实现。实验内容:编写语法分析程序,实现对算术表达式的语法分析。要求所分析算术表达式由如下的文法产生。E E T | E T |T T T * F |T/ F | F F id |(E) |num实验要求:在对输入表达式进行分析的过程中,输出所采用的产生式。方法1 :编写递归调用程序实现自顶向下的分析。方法2:编写LL(1)语法分析程序,要求如下。(1)编程实现算法4.2,为给定文法自动构造预测分析表。(2)编程实现算法4.1,构造LL(1)预测分析程序。方法3:编写语法分析程序实现自底向上的分析,要求如下。(1)构造识别所有活前缀的D

2、FA。(2)构造LR分析表。(3)编程实现算法4.3,构造LR分析程序。方法4:利用YACC自动生成语法分析程序,调用 LEX自动生成的词法分析程序。实现(采用方法1)1.1.步骤:1)对文法消除左递归 (E TEE TE | TE | (T FTT *FT |/FT |F id|(E)|num2)画出状态转换图Id num化简得:T 弋Id num3)源程序在程序中I表不 idN表示num-? include rdid h inchide - instreaT - inrInde includi? .sirijiigiiKstd;.在放轴入字符惠当前指向的字符二当前字符在字符串的位:置str

3、ing iwu?string. rhar nowpoint-f ini nrvoid error(voidi -cout*/error .二;E void forward (void) 。指针指向七一1个字符itf nowpoinTer=inputstringnJ .-void prod (void5: void procF(voidl;void procE (void);rroeT 0;if (nowpoiriTer - -J ) f CKiTErci ();orocE ():cout*E-Ei-Tn*;el se i f (nowpointer - -): forward 0 PprocE

4、C1 :cout*E-E-Tn*: elsecoutTn;-Ivoid DrocT void) procF ();if (nowpointer = *) forward ():procT ();coutT*Fn*;lelse if (nowcointer =二/) forward ();procTO;coutT-T*Fn::else cout T-Fn”;IEvoid procF(void):if (novpointer = C ) forward 0;procE();if (nowpointer = ) forward。; cout*F- (E 八 n;elseerror ();else i

5、f(noKpointer = )forward ();coutF-idn;else if(noiM)ointer = N)forward ();c out F-numn ;lelseerror ():J-mt main。(cininputstring;input str ing+=;添加作为字符串的尾nowpointer=inputstringLO.;n=0;procE ();i(nowpointer = *)当指向尾时,语法正确cout语法正确n:elsecoutn;return 0 ;|1.2. 例子:a) 例子1输入:I+(N*N)输出:f F :V Syu fa fe nxiDeb Ligyufafe nxi.eKeF-id T-F F-num F-numT-F T-T*F E-T F-XEi r-F E-T E-E+T 语法正确b) 例子2输入:I-NN输出:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 外语文库 > 英语学习

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号