首页 > 编程 > C++ > 正文

20170219C++项目班02_02递归下降算法/解析器

2019-11-08 02:15:42
字体:
来源:转载
供稿:网友

递归下降算法:

1:表达式->项->因子:2:我们认为:    表达式 = 项 + 表达式    表达式 = 项 - 表达式    表达式 = 项    项 = 因子 * 项    项 = 因子 / 项    项 = 因子    因子 = 数值    因子 = -因子    因子 = ( 表达式 )注意:上面的就可以体现出优先级了,当涉及到很多运算符的时候,就可以有很多层,这就是递归下降法的原理。

举例说明:

1:1+5*(2-1)    1:整个为一个表达式    2:项+表达式 1  +  5*(2-1)    3:解析左边:        1:1是一个项        2:1是一个因子        3:1是一个数值    4:解析右边:        1:5*(2-1)表达式是一个项        2:因子*项        5  *  (2-1)        3:解析 左边            1:5是一个数值        4:解析右边:            1:(2-1)是一个项            2:(2-1)是一个因子            3:2-1是一个表达式            4:项-表达式        2  -  1            5:最终2和1都是数值。得出:1+*、*=5*-、-=2-1。

解析器:

1:扫描类:得到的是一串字符串:    1:要有保存整个表达式的地方(待解析的)。    2:当前的状态,枚举,Token    3:要有当前位置的信息,pos_    4:number_是多少。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选