云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 编译原理-词法分析

编译原理-词法分析

  • 62 次阅读
  • 3 次下载
  • 2025/6/16 11:13:25

湖南工程学院编译原理课程设计

14 STM ?ID ASSIGN· EXP EXP ?·EXP PLUS FACT EXP ?·FACT FACT ?·FACT MULT PRIM FACT ?·PRIM PRIM ?·ID PRIM ?·INTC PRIM ?·REALC PRIM ?·LPAREN EXP RPAREN EXP S21 FACT S22 PRIM S23 ID S24 INTC S25 REALC S26 LPAREN S27 16 STM ?READ LPAREN· ID RPAREN ID S29 18 PROG ?BEGIN DECL BODY END STOP· FEOF R1 19 BODY?BODY SEMI STM· SEMI R6 END R6 21 STM ?ID ASSIGN EXP· EXP ?EXP· PLUS FACT PLUS S34 SEMI R8 END R8 23 FACT ?PRIM· SEMI R14 END R14 PLUS R14 RPAREN R14 MULT R14 15 STM ?WRITE LPAREN· EXP RPAREN EXP ?·EXP PLUS FACT EXP ?·FACT FACT ?·FACT MULT PRIM FACT ?·PRIM PRIM ?·ID PRIM ?·INTC PRIM ?·REALC PRIM ?·LPAREN EXP RPAREN EXP S28 FACT S22 PRIM S23 ID S24 INTC S25 REALC S26 LPAREN S27 17 DECL ?VAR ID COLON· TYPE SEMI TYPE ?·REAL TYPE ?·INTEGER TYPE S30 REAL S31 INTEGER S32 20 DECL ?DECL VAR ID COLON· TYPE SEMI TYPE ?·REAL TYPE ?·INTEGER TYPE S33 REAL S31 INTEGER S32 22 EXP ?FACT· FACT ?FACT· MULT PRIM MULT S35 SEMI R12 END R12 PLUS R12 RPAREN R12

13

湖南工程学院编译原理课程设计

24 PRIM ?ID· SEMI R15 END R15 PLUS R15 RPAREN R15 MULT R15 26 PRIM ?REALC· SEMI R17 END R17 PLUS R17 RPAREN R17 MULT R17 28 STM ?WRITE LPAREN EXP· RPAREN EXP ?EXP· PLUS FACT RPAREN S37 PLUS S34 29 STM ?READ LPAREN ID· RPAREN 30 DECL ?VAR ID COLON TYPE· SEMI SEMI S39 32 TYPE ?INTEGER· SEMI R5 34 EXP ?EXP PLUS· FACT FACT ?·FACT MULT PRIM FACT ?·PRIM PRIM ?·ID PRIM ?·INTC PRIM ?·REALC PRIM ?·LPAREN EXP RPAREN FACT S41 PRIM S23 ID S24 INTC S25 REALC S26 LPAREN S27 25 PRIM ?INTC· SEMI R16 END R16 PLUS R16 RPAREN R16 MULT R16 27 PRIM ?LPAREN· EXP RPAREN EXP ?·EXP PLUS FACT EXP ?·FACT FACT ?·FACT MULT PRIM FACT ?·PRIM PRIM ?·ID PRIM ?·INTC PRIM ?·REALC PRIM ?·LPAREN EXP RPAREN EXP S36 FACT S22 PRIM S23 ID S24 INTC S25 REALC S26 LPAREN S27 31 TYPE ?REAL· SEMI R4 33 DECL ?DECL VAR ID COLON TYPE· SEMI SEMI S40 35 FACT ?FACT MULT· PRIM PRIM ?·ID PRIM ?·INTC PRIM ?·REALC PRIM ?·LPAREN EXP RPAREN PRIM S42 ID S24 INTC S25 REALC S26 LPAREN S27

14

湖南工程学院编译原理课程设计

36 PRIM ?LPAREN EXP· RPAREN EXP ?EXP· PLUS FACT RPAREN PLUS S43 S34 37 STM ?WRITE LPAREN EXP RPAREN· SEMI END R9 R9 39 DECL ?VAR ID COLON TYPE SEMI· 38 STM ?READ LPAREN ID RPAREN· SEMI END R10 R10 ID R3 R3 R3 R3 WRITE READ VAR 41 EXP ?EXP PLUS FACT· 40 DECL ?DECL VAR ID COLON TYPE SEMI· ID R2 R2 R2 R2 FACT ?FACT· MULT PRIM MULT SEMI END PLUS RPAREN S35 R11 R11 R11 R11 WRITE READ VAR 42 FACT ?FACT MULT PRIM· SEMI END PLUS RPAREN MULT

R13 R13 R13 R13 R13 43 PRIM ?LPAREN EXP RPAREN· SEMI END PLUS RPAREN MULT R18 R18 R18 R18 R18 三、主要的数据结构

在词法分析部分使用了堆栈lexstack来记录出现的错误的字符,用枚举类型来定义频繁使用的关键字,文法非终极符等常量。在本程序中没有使用递归的方法来进行词法分析,这里使用了while循环和switch语句相结合的方式,有效地提高了词法分析的效率。

在语法分析部分,使用了状态栈state来保存语法分析进入的各个状态,对于每一个状态的可能的两种动作,采用了宏定义的形式来定义移入操作(shift)和规约动作(reduce)。这里显示的使用了状态栈,不显示的使用符号栈,在进行规约动作中需要指出文法产生式左部的非终极符和该产生式右部的文法符号的个数。规约的动作可以是一个递归的过程,这里也是使用了while循环和swith语句相结合的方式来对当前的Token和预读入的Token进行相应的处理。

该程序的主要函数及其功能如下:

int main(int argc,char *argv[])函数:如果在命令行中运行本程序的话,需要带上相应的参数,其中第一个各参数即为该程序可执行文件的名称,第二个参数为要进行编译处理的源程序的文件名,第三个参数为经过程序处理后错误信息的输出文件名(可以没有参数)

LexType lex(char *word)函数:该函数主要是进行词法分析,通过调用该函数即可得到一个Token,该Token

15

湖南工程学院编译原理课程设计

的值保存在参数word中。

Void getnexttoken(char *word)函数:该函数也是获取一个Token,它是通过调用lex函数来实现获取一个Token的。

Void parse(void)函数:该函数主要是语法分析的部分,通过语法分析即可得出相应的分析结果。

各函数的调用关系式main函数调用parse函数,parse函数调用getnexttoken函数,而getnexttoken函数则调用词法分析函数lex;

四、调试及运行结果

测试用例: Begin

Var x:integer; Read(x) End。

手动分析如下: [1](LPAREN,“(”) [2](ID,“x”) [3](COLON,“:”) [4](SEMI,“;”) [5](STOP,“.”) [6](RPAREN,“)”)

01 013 01310 0131017 013101732 0131017 013101730 01310173039 01 012 0129 012916 01291629 0129162938 012 0126 012 0124 012411 01241118 0

Var x:integer; read(x) end. x: integer; read(x) end. : integer; read(x) end. integer; read(x) end. ; read(x) end. TYPE ; read(x) end. ; read(x) end. read(x) end. DECL read(x) end. read(x) end. (x) end. x) end. ) end. end. STM end. end. BODY end. end. . FEOF PROG S3 S10 S17 S32 R5 S30 S39 R3 S2 S9 S16 S29 S38 R10 S6 R7 S4 S11 S18 R1 16

搜索更多关于: 编译原理-词法分析 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

湖南工程学院编译原理课程设计 14 STM ?ID ASSIGN· EXP EXP ?·EXP PLUS FACT EXP ?·FACT FACT ?·FACT MULT PRIM FACT ?·PRIM PRIM ?·ID PRIM ?·INTC PRIM ?·REALC PRIM ?·LPAREN EXP RPAREN EXP S21 FACT S22 PRIM S23 ID S24 INTC S25 REALC S26 LPAREN S27 16 STM ?READ LPAREN· ID RPAREN ID S29 18 PROG ?BEGIN DECL BODY END STOP· FEOF R1 19 BODY?BODY SEMI STM· SEMI R6 END R6 21 STM ?ID ASSIGN

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com