\Draw
\Scale(0.3,0.3)
\Define\VHVEdge(2){
\MoveToNode(#1,0,-1) \Move(0,-10) \FcNode(a)
\Edge(#1,a) \HVEdge(a,#2)
}
\GridDiagramSpec(\Node)(\VHVEdge)
\Define\E(6){
\MoveToLoc(#5)
\CSeg[0.5]\Move(#5,#6) \MarkLoc(a) \Move(10,0) \MarkLoc(b)
\MoveToLL(a,b)(#1,#4) \MarkLoc(A)
\MoveToLL(a,b)(#2,#3) \MarkLoc(B)
\CSeg[0.5]\Move(B,A) \FcNode(X)
\Move(0,2) \MarkLoc(A)
\Move(0,-4) \MarkLoc(B)
\VVEdge(X,#1,A) \VVEdge(X,#3,A)
\VVEdge(X,#2,B) \VVEdge(X,#4,B)
}
\GridDiagram(8,10)()()(
& & & S,+1..+0,+1..+5,+7..-3,+7..+6 & & & & & & //
& & & S,+1..+0,+1..+3,+6..-2,+1..+4 & & & & & B & //
& & & S,+1..+0,+1..+1,+1..-1,+1..+2 & & & B & c & & //
& & a & S,+1..+0 &B & c & & B & & //
& & & $\epsilon$ & & B & c & & & //
& & & &b & & B & & & //
& & & & & b & & & & //
a & a & a & & b & b & b & c & c & c//
)
\Scale(3,3)
% nodes of edges must be give top down
% edge 1 edge 2 mid point
\E(1..8,3..7, 2..7,7..8, 2..7,3..7)
\E(2..6,4..5,3..5,4..6,3..5,4..5)
\E(3..7,5..6,4..6,7..7,4..6,5..6)
\E(3..2,5..4,3..4,7..2,5..4,4..3)
\E(4..5,7..4,5..4,6..5,5..4,6..5)
\E(6..5,7..6,5..6,7..5,6..5,7..5)
\EndDraw