sample词法分析与语法分析.doc

sample词法分析与语法分析.doc

ID:59252715

大小:121.00 KB

页数:9页

时间:2020-09-08

sample词法分析与语法分析.doc_第1页
sample词法分析与语法分析.doc_第2页
sample词法分析与语法分析.doc_第3页
sample词法分析与语法分析.doc_第4页
sample词法分析与语法分析.doc_第5页
资源描述:

《sample词法分析与语法分析.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、实验目的根据SAMPLE文法规范,要求编写SAMPLE语言的词法分析程序以及语法分析程序二、实验内容根据SAMPLE语言文法,输出token表以(关键字、专用符号以及其它标记)及符号表。根据某一文法编写LL(1)语法预测分析程序,以便对任意输入的符号串进行分析,构造预测分析表,并利用分析表和一个栈来实现对上述程序设计语言的分析程序。分析法的功能是利用LL(1)控制程序根据显示栈栈顶内容、向前看符号以及LL(1)分析表,对输入符号串自上而下的分析过程。三、实验方案设计1)、词法分析方案设计:1、设计SAMPLE语言的词法分析器A、 字符集定义1. <字符集> → <字母>│<数字

2、>│<单界符>2. <字母> → A│B│…│Z│a│b│…│z3. <数字> → 0│1│2│…│94. <单界符> → +│-│*│/│=│<│>│(│)│[│]│:│. │; │, │' B、单词集定义5.<单词集> → <关键字>│<双界符>│<标识符>│<常数>│<单界符>6.<关键字> → begin│bool│char│const│do│else│end│false│for│if│integer│program│read│real│then│to│true││var│while│write7.<双界符> → <>│<=│>=│:= │/*│*/│..8.<标识符> →

3、 <字母>│<标识符> <数字>│<标识符> <字母>9.<常数> → <整数>│<布尔常数>│<字符常数>10.<整数> → <数字>│<整数> <数字>11.<布尔常数> → true│false12.<字符常数> → ' 除 {'} 外的任意字符串 '13.<运算符>→+

4、-

5、*

6、/

7、>

8、<2、词法分析系统流程设计2)、LL(1)分析法实验设计思想及算法:(1)定义部分:定义常量、变量、数据结构。(2)初始化:设立LL(1)分析表、初始化变量空间(包括堆栈、结构体、数组、临时变量等);(3)控制部分:从键盘输入一个表达式符号串;(4)利用LL(1)分析算法进行表达式处理:根据

9、LL(1)分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,如果遇到错误则显示错误信息。四、实验测试对词法分析:测试文件:programexample;vara,b,c:integer;x:char;beginif(a+c*3>b)and(b>3)thenc:=3;x:=2+(3*a)-b*c*8;if(2+3>a)and(b>3)and(a>c)thenc:=3;forx:=1+2to3dob:=100;whilea>bdoc:=5;forx:=1+dto3dob:=15;whilet>bdoc:=5;repeata:=10;untila>b;end.分析结果:·····

10、·················开始分析··········································analyzerow1·················[保留字]program[标识符]example·····················analyzerow2·················[保留字]var·····················analyzerow3·················[标识符]a[单界符:逗号],[标识符]b[单界符:逗号],[标识符]c[保留字]integer·····················anal

11、yzerow4·················[标识符]x[保留字]char·····················analyzerow5·················[保留字]begin·····················analyzerow6·················[保留字]if[单界符:左圆括号]([标识符]a[单界符:加号]+[标识符]c[单界符:星号]*[数字]3[标识符]b[单界符:右圆括号])[保留字]and[单界符:左圆括号]([标识符]b[数字]3[单界符:右圆括号])·····················analyzerow7····

12、·············[保留字]then[标识符]c[双界符6]:=[数字]3·····················analyzerow8·················[标识符]x[双界符6]:=[数字]2[单界符:加号]+[单界符:左圆括号]([数字]3[单界符:星号]*[标识符]a[单界符:右圆括号])[单界符:减号]-[标识符]b[单界符:星号]*[标识符]c[单界符:星号]*[数字]8·····················analyzerow9

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。