0
シナリオ: RとNからなるすべての空でない文字列の集合を が記述するRIGHT-再帰文法の生成規則を与えます。これには任意に多くの連続したRの反復が含まれますが、正確には2つN.右回帰文法の生成規則を書くより良い方法はありますか?
回答の連続 繰り返し:
A - > NB | R + A
B→N D | N C | Nε
C - > N D | Nε
D - > R + D | Rε
シナリオ: RとNからなるすべての空でない文字列の集合を が記述するRIGHT-再帰文法の生成規則を与えます。これには任意に多くの連続したRの反復が含まれますが、正確には2つN.右回帰文法の生成規則を書くより良い方法はありますか?
回答の連続 繰り返し:
A - > NB | R + A
B→N D | N C | Nε
C - > N D | Nε
D - > R + D | Rε
誤:
A -> NNB | NNNB | RA | R
B -> R | RA | ε
編集:上記は正しくない、私はシナリオを誤解しました。正しい
:どのように動作
S -> RS | A
A -> NA | NB
B -> RB | RC
C -> NC | ND
D -> RD | RE | ε
E -> NE | NF
F -> RF | ε
:それはSで始まる 、それは0以上のRを生成したり、Nsとの最初のグループを生成し、Aに移動することができます。その後、Bに移動し、Nの第1グループと第2グループとの間にRを生成する。その後、Cに移動し、2番目のNのグループを生成します。その後、Dに移動します。これは0以上のRを生成し、終了またはEに移動し、Nの3番目のグループを生成します。最後に、Fに移動します.Fは0以上のRを生成します。
これについて詳しく説明できますか? – EJoshuaS
2-3 Nを満たすことのできない1つのR(A→R)で構成される文があるように見えるので、これは正しいですか? – Josh
ああ。私はおそらくあなたが望むものを誤解していました。ですから、正確に2つまたは3つのNのグループを持つ文字列を生成する文法が必要だと思います。 –