2
「最短一致」以外の「ぶら下がりelse」問題の別の解決策はありますか?
以下の文脈自由文法のプレゼント「ぶら下がりelse」タイプのあいまいさ(と想像を意味し、の略と命令またはブロックのいくつかの他の種類の略): たとえば、はまたはとして解析できます(これは、この文法の最も単純/最短のあいまいな単語です)。b c Saaaif expr thenbbbelseccc aacbc(a(acbc))(a(ac)bc)S→aSbS|aS|cS→aSbS|aS|c \begin{aligned} S &\rightarrow aSbS \;|\; aS \;|\; c\\ \end{aligned} aacbcaacbcaacbc(a(acbc))(a(acbc))(a(acbc))(a(ac)bc)(a(ac)bc)(a(ac)bc) この「ぶら下がりelse」曖昧軍「他」(解決するために、「標準」方法「IF-THEN」(最も近い/最も内側とペアに)ステートメントを)。これは次のようにして実現できます。 この文法は明確です。上記の例では、解析をます。a Sbbbaaa(a(acbc))ST→aTbS|aS|c→aTbT|cS→aTbS|aS|cT→aTbT|c \begin{aligned} S &\rightarrow aTbS \;|\; aS \;|\; c\\ T &\rightarrow aTbT \;|\; c\\ \end{aligned} (a(acbc))(a(acbc))(a(acbc)) 質問:aacbcの解析を強制するあいまいさを解決する別の自然な方法はありますか?言い換えると、私は上記の2つと同じ言語を生成する、明確で、aacbcを(a(ac)bc)として解析する文法を探しています。a a c b c a a c b c (a (a c )b c …