\(CFG\) 的分析树
例如语句
\[(1)E \rightarrow E +E \\ (2)E \rightarrow E *E\\ (3)E \rightarrow -E\\ (4)E \rightarrow( E )\\ (2)E \rightarrow id\\ \] graph TB a1(E) --> a2("-") a1(E) --> a3(E) a3(E) -->a4("(") a3 --> a5(E) a3 --> a6(")") a5 --> a7(E) a7 --> c1(E) a7 --> c2(+) a7 --> c3(E)分析树是推导的图形化表示
即根据语法定义对语句进行推导,并把推导的过程通过树行的方式来表示
短语
-
分析树的每一颗子树的边缘称为该句型的一个短语
-
如果子树只有父子两代结点,那么这颗子树的边缘称为该句型的一个直接短语
二义性文法:
如果一个文法可以为某个句子生成多颗分析树,那么称这个文法是二义性的.
- 对于任意一个上下文无关文法,不存在一个算法,判定它是无二义性的;但能给出一组充分条件,满足这组充分条件的文法是无二义性的。