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 |
|
|
|
|
|
|

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

被折叠的 条评论
为什么被折叠?



