sample词法分析与语法分析

sample词法分析与语法分析

ID:21822410

大小:300.03 KB

页数:10页

时间:2018-10-24

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

《sample词法分析与语法分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

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

2、析器A、字符集定义1.<字符集〉一<字付〉I<数字〉I<单界符〉2.<字母〉A

3、B

4、…

5、Z

6、a

7、b

8、…

9、z3.<数字〉一0丨1

10、2丨…

11、94.<单界符>-*+

12、-

13、*

14、/

15、=

16、<

17、>

18、(

19、)

20、[

21、]

22、:

23、.I;I,PB、单词集定义5.<单词集〉一<关键字〉

24、<双界符〉

25、<标识符〉

26、<常数〉

27、<单界符〉6.<关键字〉begin

28、bool

29、char

30、const丨do丨else

31、end丨false

32、for

33、if

34、integer

35、programIread

36、real

37、then

38、to

39、trueIIvarIwhile

40、write7.<双界

41、符〉-*<>

42、<=

43、>=

44、:=

45、/*

46、*/

47、..8.<标识符〉一<字母〉

48、<标识符〉<数字〉

49、<标识符〉<字母〉9.<常数〉一<整数〉

50、<布尔常数〉

51、<字符常数〉10.<整数〉一<数字〉

52、<整数〉<数字〉11.<布尔常数>-*■true

53、false12.<字符常数〉-除{’}外的任意字符串113.<运算符〉->+

54、-H/

55、〉

56、<2、词法分析系统流程设计用户请求2)、LL(1)分析法实验设计思想及算法:(1)定义部分:定义常fi、变fi、数裾结构。(2)初始化:设立LL(1)分析表、初始化变量空间(包括堆桟、结构体、数组、临时

57、变量等);(3)控制部分:从键盘输入一个表达式符号串;(4)利川LL(1)分析算法进行表达式处理:根据LL(1)分析表对表达式符号申进行堆栈(或其他)操作,输出分析结果,如果遇到错误则显示错误信息。JF鰌赚<秘»入LL(1)预測分析程序流程U!实验测试对词法分析:测试文件:programexample;a,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:=l+

58、2to3dob:=l(X);whilea〉bdoc:=5;forx:=l+dto3dob:=15;whilet〉bdoc:=5;repeata:=IO;untila〉b;end.分析结果:开始分析analyzerow1[保留字]program[林符]exampleanalyzerow2[保衍字]varanalyzerow3[标识符]a[单界符:逗号],[标识符]b[单界符:逗号],[标识符]c[保衔字]integeranalyzerow4[标识符]x[保留字]charanalyzerow5[保衍字]beginanalyzer

59、ow6[保衔字]if[单界符:左圆括号]([标识符]a[单界符:加号]+[标识符]c[单界符:星号]*[数字]3[标识符]b[单界符:右岡括号])[保衔字]and[单界符:左圆括号]([标识符]b[数字]3[单界符:右圆括兮])analyzerow7[保衍字]then[标识符]c[双界符6]:=[数字]3analyzerow8[标识符]x[双界符6]:=[数字]2[-中•界符:加号]+[单界符:左圆括号]([数字]3[单界符:星号]*[标识符]a[单界符:右圓括号])[单界符:减号]-[标识符]b[单界符:星号]*[标识符]

60、c[单界符:星号]*[数字]8analyzerow9[保留字]if[单界符:左M括号]([数字]2[单界符:加号]+[数字]3[标识符]a[单界符:右圆括号J)[保留字]and[单界符:左圆括号]([标识符]b[数字]3[单界符:右圆括号J)[保留字]and[单界符:左圆括号]([标识符]a[标识符]C[单界符:右树括号])analyzerow10[保留字]then[标识符]c[双界符6]:=[数字]3analyzerow11[保衔字]for[标识符]x[双界符6]:=[数字]1[羊界符:加号]+[数字]2[保衔字]to[数

61、字]3[保所字]doanalyzerow12[标识符]b[双界符6]:=[数字]100analyzerow13[保留字]while[标识符]a[标识符]b[保留字]doanalyzerow14[标识符]c[双界符6]:=[数字]5analyzerow15[保衔字]for[标识符]x[双界符

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

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

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