设有下列文法S→aSb|bSa|ab,试说明上述文法是否为SLR(1)文法,若是,请构造SLR(1)分析表,若不是,请说

1个回答

  • 1)首先该文法无左递归存在,没有公共左因子.其次:对于S→AaAb|BbBa FIRST(AaAb)={a} FIRST(BbBa)={b}

    FIRST(AaAb)∩FIRST(BbBa)=Φ

    所以该文法是LL(1)文法.

    (2)证明该文法不是SLR的.

    文法的LR(0)项目集规范族为:

    I0={S’→.S S→.AaAb S→.BbBa A→.B→.}

    I1={ S’→ S.}

    I2={ S→A.aAb }

    I3={ S→B.bBa }

    I4={ S→Aa.Ab A→.}

    I5={ S→Bb.Ba B→.}

    I6={ S→AaA.b }

    I7={ S→BbB.a }

    I8={ S→AaAb.}

    I9={ S→BbBa.}

    考察I0:

    FOLLOW(A)={a,b} FOLLOW(B)={a,b} FOLLOW(A)∩FOLLOW(B)= {a,b}

    产生规约-规约冲突.

    所以该文法不是SLR(1)文法.