私は以下の文法を持っています: S→a S b S | b S a S | ε 私は小さなコンパイラを書こうとしているので、LL(1)にしたいと思います。私はここにFIRST/FOLLOWの矛盾があるように見えますが、私はそれを解決するために代用を使わなければならないことを知っています。ここに提案された文法がありますが、正しいかどうかはわかりません: S-> aSbT |イプシロン T-> bFa
次の型の左回帰をどのように排除しますか?私はこの特定のルールに一般ルールを適用することができないようです。 A -> aA' | bA'
A' -> A' | epsilon
まだ再帰を残している:あなたが得る排除ルールを使用することにより A -> A | a | b
。 これは、文法がLL(1)であるかどうかについて何かを言いますか? ありがとうございます。ルール → は、ある意味で
Algorithmから発生する第1セット: Given a grammar with the rules A1 → w1, ..., An → wn, we can compute the Fi(wi) and Fi(Ai) for every rule as follows:
initialize every Fi(Ai) with the empty set
set Fi