这些语法是递归的吗?为什么?

时间:2016-12-12 17:56:53

标签: compiler-construction context-free-grammar left-recursion

我有这些语法来解决左递归问题。但为什么这些语法会递归?他们没有遵循架构A -> Aa | b

1。,S → 0S1 | 01

2。,S → + SS | * SS

1 个答案:

答案 0 :(得分:2)

  

这些语法是否递归

没有

  

为什么?

在这两种情况下,如果不首先使用终端,您将永远无法到达S(这是唯一的非终端)。在第一个语法中,S的唯一出现位于终端0之前,而在第二个出现时,每个出现位置都以+*开头。