\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