这个解析树是如何生成的?
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
,如解析树中所示。
我在阅读 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
,如解析树中所示。