興味深い間接再帰の問題があり、解決したと思いますが、それが正しいかどうかはよくわかりません。
開始文法:
A-> Bxy | x
B-> CD
C-> A | c
D-> d
私の解決策は、最初に A を進化させることでした:
A -> ADxy | cDxy | x
これで、再帰がある場所がわかり、それを削除して、次のようになります。
A-> cDxyA' | xA'
A'-> DxyA' | empty
完全な解決策は、
A-> cDxyA' | xA'
A'-> DxyA' | empty
B-> CD
C-> A | c
D-> d
この文法は正しいですか?