generators.ET0LTreeGrammar:
(
  { I, LR1, LR2, L1, L2, R1, R2, M1, M2 },
  { sqA1:0, sqA1b:0, sqA2:0, sqA2b:0,
    sqB1a:0, sqB1b:0, sqB1c:0, sqB2a:0, sqB2b:0, sqB2c:0, 
    init:4, F:7, G:4, -:0 },
  {
    {
      I -> init[LR1,LR2,LR1,LR2],
      LR1 -> F[sqA1,sqB1a,sqB1c,L1,M1,M1,R1],
      LR2 -> F[sqA2,sqB2a,sqB2c,L2,M2,M2,R2],
      L1 -> F[sqA1,sqB1a,sqB1b,L1,M1,M1,M1],
      L2 -> F[sqA2,sqB2a,sqB2b,L2,M2,M2,M2],
      M1 -> G[sqA1b,sqB1b,M1,M1],
      M2 -> G[sqA2b,sqB2b,M2,M2],
      R1 -> G[sqA1,sqB1c,M1,R1],
      R2 -> G[sqA2,sqB2c,M2,R2]
    },
    {
      I -> -,
      LR1 -> sqA1,
      LR2 -> sqA2,
      L1 -> sqA1,
      L2 -> sqA2,
      M1 -> sqA1b,
      M2 -> sqA2b,
      R1 -> sqA1,
      R2 -> sqA2
    }
  },
  I
)
