有文法:
给此文法配上语义动作子程序(或者说为此文法写一个语法制导定义),它输出配对括号的个数。如对于句(a(a,a)),输出是2。
考虑文法S AS|b
A SA|a
(1)构造文法的LR(0)项目集规范族及相应的DFA。
(2)如果把每一个LR(0)项目看成一个状态,并从每一个形如Ba:Xb的状态出发画一条标记为X的箭弧刀状态Ba.Xb,而且从每一个形如Ba.Ab的状态出发画标记为的箭弧到所有形如A●g的状态。这样就得到了一个NFA。说明这个NFA与(a)中的DFA是等价的。
(3)构造文法的SLR分析表。
(4)对于输入串bab,给出SLR分析器所作出的动作。
(5)构造文法的LR(1)分析表和LALR分析表。
考察下列文法G1=({σ},{c},P1,σ),其中,P1:σ→λ,σ→σσ,σ→c,及G2=({σ},{c},P2,σ),其中,P2:σ→λ,σ→σcσ,σ→c。
a)描述L(G)(i=1,2)。
b)对每一语言,给出一个长度为5的终结符串的派生,并构造派生树。
文法G[E]是LL(1)文法:
其中EEEF为非终结符。
构造文法G[E]的LL(1)分析表。