0

現在、次の文法から LR(1) 状態を構築しています。

S->AS
S->c
A->aA
A->b

where A,S are nonterminals and a,b,c are terminals.

これがI0の構成です

I0: S' -> .S, epsilon
    ---------------
    S -> .AS, epsilon
    S -> .c, epsilon
    ---------------
    S -> .AS, a
    S -> .c, c
    A -> .aA, a
    A -> .b, b

そしてI1。

From S, I1: S' -> S., epsilon  //DONE

等々。しかし、I4 の構築に取り掛かると...

From a, I4: A -> a.A, a
        -----------
        A -> .aA, a
        A -> .b, b

問題は A -> .aA

a から次の状態を構築しようとすると、まったく同じ内容の I4 が再び取得され、これが無限に続きます。同様のループが発生します

S -> .AS

それで、私は何を間違っていますか?見逃している詳細があるはずですが、メモと本を閲覧しましたが、ここで何が問題なのかを見つけることができないか、単に理解していません. 何か助けはありますか?

4

1 に答える 1

0

I'm pretty sure I figured out the answer. Obviously, states can point to each other, so that eliminates the need to create new ones if it's content already exists. I'd still like it if someone can confirm this, though.

于 2010-04-28T13:32:41.327 に答える