编译原理-递归下降分析子程序
一、程序功能描述
给定CP语言中简单算术表达式文法G[E]:
E→TE’
E’→ATE’|ε
T→FT’
T’→MFT’ |ε
F→(E) | i
A → + | -
M → * | /
根据该文法,编写递归下降分析子程序。程序能够判定输入串是否为该文法定义的合法算术表达式。处理:程序应能发现输入串的错误。并且输出了分析过程。
二、 主要数据结构描述
函数:递归的调用函数用于递归分析
数组:用于存储数据
三、程序结构描述
首先进行表达式的输入
由E()函数开始逐步自顶向下开始分析
打印F分析过程步骤并且根据得出是否为合法表达式
四、设计方法
如图所示
五、函数定义
E()表达式顶,E→TE’
def E():
T()
E1()
print("E ->TE’")
E1()函数E’→ATE’|ε
#E’→ATE’|ε
def E1():
global index
if (strx[index