剖析樹(parse tree) - 根據一語言的文法(BNF;Backus–Naur form)描述,將此語言某一語句(statement)之語法結構,以階層式樹狀結構來表示。 - y=f(x),x是某語言的語句(statement),Y是剖析樹,f(T)函數是BNF 文法 - 每一步推論最左(右)邊的非終端節點 left(right)-most derivation sequence 不明確文法(ambiguous grammar) - 語言某一語句(statement),依文法推導可得到兩顆或以上的剖析樹,稱該文法模糊 文法定義 一個文法G可以定義為G=(Vn,Vt,S,P) Vn 非終端節點的集合 (nonterminal symbol),如{<assign>,<expr>,<id>} Vt終端節點的集合 (terminal symbol),如{A,B,C} S 開始符號集合(starting symbol),如{<assign>} P 產生規則集合(production rule) 考題 一、根據下列文法,其中非終端(non-terminal)以< >符號標示: <S> → <A> <A> → <A> + <A> | <ID> <ID> → w | x | y | z 請畫出 x+y+x 所對應之剖析樹(parse tree)。(10 分) 請問此文法是否模糊(ambiguous)?請說明。(10 分 答案 (一) (二) 文法為模糊。因為某語言之語句x+y+x可轉換為兩或兩棵以上剖析樹。 (一)為第一棵剖析樹,下面為第二棵。 下面為chatgpt的回答 下面是字符串"x+y+x"所对应的解析树(parse tree): ``` <S> | <A> | <A> /|\ x + <A> | ...