编译器-语法分析(预测分析表法)

本文档详细介绍了使用预测分析表法进行编译器语法分析的设计思路和算法。首先概述了分析器由预测分析表、分析栈和主控程序组成,接着展示了文法转换和预测分析表的构造过程。程序流程通过伪码和流程框图进行展示,并说明了输入输出格式。通过样例展示程序运行结果,包括合法和错误的输入情况。
摘要由CSDN通过智能技术生成

1.    总体设计思想

整个词法分析器有一张预测分析表,一个先进后出的分析栈和一个总控程序组成。主控程序控制整个分析的过程,分析过程中从用户输入的程序源码中利用词法分析器从程序源码缓冲区中取出字符(满足语法规则的单词),然后根据分析栈中的内容,通过查找预测分析表,根据通过的返回结果执行不同的操作,出现错误则直接返回报错,否则知道将整个源码程序分析完为止。

2.    详细算法设计

(1).文法转换:

<表达式> ::=<项>{+<项>|-<项>}

<项> ::= <因子>{*<因子>|/<因子>}

<因子> ::=ID|num|(<表达式>)

改为:

    S->AB

    A->CD

    B->+AB|-AB |ε

    C->ID|num|(S)

    D->*CD| /CD |ε

构造预测分析表:

 

ID

num

(

)

+

-

*

/

#

S

S->AB

S->AB

S->AB

 

 

 

 

 

 

A

A->CD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值