generators.ET0LTreeGrammar("EDT0L variant"):
( { TRI,TRI2, SQ },
  {
    T0:4, T1:4, P:4, -:0, tri:0, sq:0,
    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  -> tri,
      TRI2 -> tri,
      SQ -> sq
    }
  },
  TRI
)
