generators.ET0LTreeGrammar("DT0L grammar"):
( { tri,tri2, sq },
  {
    T0:4, T1:4, P:4, tri:0, tri2:0, sq:0, -:0, .:2,
    col:1,
    colT11:1, colT12:1,
    colP1:1, colP2:1, colP3:1, colP4:1
  },
  { 
    {
      tri  -> T0[tri2,tri2,tri2,col[tri]],
      tri2 -> T1[colT11[tri2],colT12[tri2],sq,sq],
      sq   -> P[colP1[sq],colP2[sq],colP3[sq],colP4[sq]]
    },
    {
      tri  -> T0[tri2,tri2,tri2,col[tri]],
      tri2 -> T1[-,colT12[tri2],sq,sq],
      sq   -> P[colP1[sq],colP2[sq],colP3[sq],colP4[sq]]
    },
    {
      tri  -> T0[tri2,tri2,tri2,-],
      tri2 -> T1[colT11[tri2],colT12[tri2],sq,sq],
      sq   -> P[colP1[sq],colP2[sq],colP3[sq],colP4[sq]]
    }
  },
  tri
  %, 1 1 1 2 2 2 2
  %, 1 1 2 1 1 1 2
  %, 1 2 2 2 3 2 1
  %, 1 3 1 2 1 2 1
)
