这个解析树是如何生成的?

How is this parse tree generated?

我在阅读 https://www.cs.odu.edu/~zeil/cs390/f16/Public/cfg/index.html 时发现了这个示例语法:

Expr -> Expr + Term  
Expr -> Expr - Term  
Expr -> Term  
Term -> Term * Factor  
Term -> Term/Factor  
Factor -> (Expr)  
Factor -> id

使用此语法,为字符串“a - b - c”给出了以下解析树:

我的问题是,Factor 非终结符是如何从 Term 非终结符生成的?我看不出这是如何在语法中完成的。对我来说,语法似乎需要一个额外的产生式规则,比如 Term -> Factor。

完全正确。语法缺少产生式 Term ⇒ Factor,如解析树中所示。