LR(0) Parsing 

> _q0:={Sp=[`.`,S]}:
_q1:={Sp=[S,`.`]}:
_q2:={S=[`.`,`(`,S,`)`,S]}:
_q3:={S=[`.`]}:
_q4:={S=[`(`,S,`)`,S,`.`]}:
_q5:={S=[`(`,`.`,S,`)`,S]}:
_q6:={S=[`(`,S,`.`,`)`,S]}:
_q7:={S=[`(`,S,`)`,`.`,S]}:
nfaLR:=mkNFA({_q0,_q1,_q2,_q3,_q4,_q5,_q6,_q7},{S,`(`,`)`},
table([
(_q0,S)={_q1},
(_q0,\lambda)={_q2,_q3},
(_q2,`(`)={_q5},
(_q5,\lambda)={_q2,_q3},
(_q5,S)={_q6},
(_q6,`)`)={_q7},
(_q7,S)={_q4},
(_q7,\lambda)={_q2,_q3}
]),_q0,{});
 

`:=`(nfaLR, NFA({{Sp = [`.`, S]}, {S = [`(`, S, `)`, `.`, S]}, {S = [`(`, `.`, S, `)`, S]}, {S = [`(`, S, `.`, `)`, S]}, {S = [`(`, S, `)`, S, `.`]}, {S = [`.`]}, {Sp = [S, `.`]}, {S = [`.`, `(`, S, `...
`:=`(nfaLR, NFA({{Sp = [`.`, S]}, {S = [`(`, S, `)`, `.`, S]}, {S = [`(`, `.`, S, `)`, S]}, {S = [`(`, S, `.`, `)`, S]}, {S = [`(`, S, `)`, S, `.`]}, {S = [`.`]}, {Sp = [S, `.`]}, {S = [`.`, `(`, S, `...
`:=`(nfaLR, NFA({{Sp = [`.`, S]}, {S = [`(`, S, `)`, `.`, S]}, {S = [`(`, `.`, S, `)`, S]}, {S = [`(`, S, `.`, `)`, S]}, {S = [`(`, S, `)`, S, `.`]}, {S = [`.`]}, {Sp = [S, `.`]}, {S = [`.`, `(`, S, `...
`:=`(nfaLR, NFA({{Sp = [`.`, S]}, {S = [`(`, S, `)`, `.`, S]}, {S = [`(`, `.`, S, `)`, S]}, {S = [`(`, S, `.`, `)`, S]}, {S = [`(`, S, `)`, S, `.`]}, {S = [`.`]}, {Sp = [S, `.`]}, {S = [`.`, `(`, S, `...
`:=`(nfaLR, NFA({{Sp = [`.`, S]}, {S = [`(`, S, `)`, `.`, S]}, {S = [`(`, `.`, S, `)`, S]}, {S = [`(`, S, `.`, `)`, S]}, {S = [`(`, S, `)`, S, `.`]}, {S = [`.`]}, {Sp = [S, `.`]}, {S = [`.`, `(`, S, `...
`:=`(nfaLR, NFA({{Sp = [`.`, S]}, {S = [`(`, S, `)`, `.`, S]}, {S = [`(`, `.`, S, `)`, S]}, {S = [`(`, S, `.`, `)`, S]}, {S = [`(`, S, `)`, S, `.`]}, {S = [`.`]}, {Sp = [S, `.`]}, {S = [`.`, `(`, S, `...
`:=`(nfaLR, NFA({{Sp = [`.`, S]}, {S = [`(`, S, `)`, `.`, S]}, {S = [`(`, `.`, S, `)`, S]}, {S = [`(`, S, `.`, `)`, S]}, {S = [`(`, S, `)`, S, `.`]}, {S = [`.`]}, {Sp = [S, `.`]}, {S = [`.`, `(`, S, `...
(10.12.1)
 

> transitionGraph(nfaLR);
 

Plot_2d
 

> dfaLR:=NFA2DFA(nfaLR);
 

`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
`:=`(dfaLR, DFA({{}, {{S = [`(`, S, `.`, `)`, S]}}, {{Sp = [S, `.`]}}, {{S = [`(`, S, `)`, S, `.`]}}, {{S = [`(`, S, `)`, `.`, S]}, {S = [`.`]}, {S = [`.`, `(`, S, `)`, S]}}, {{Sp = [`.`, S]}}, {{S = ...
(10.12.2)
 

> transitionGraph(dfaLR);
 

Plot_2d