左递归
进行四则运算时,根据运算结合性,我们通常是从左往右依次计算,如下所示:
-
语法规则:
add: add | add + number
-
代码实现:
function additive(){
additive();
number();
}
但是,根据add: add | add + multiple
从左往右计算会在代码实现的过程中没有结束条件,造成无限递归的情况,这种情况称为左递归,那么我们通过如下方式解决:
-
语法规则:
add: number | number + add
-
代码实现:
function additive(){
number();
additive();
}
但是,add: multiple | multiple + add
这种逻辑失去了结合性