generators.ET0LTreeGrammar:
  (
    { S, A, B },
    { F:0, conc:5, conc:2, enc+:1, enc-:1, enc+:2, enc-:2,
      +:2, -:2, +:3, -:3, empty:0 },
    {
      {
        S -> conc[S,enc+[A],S,enc-[B],enc+[S]],
        S -> conc[S,enc-[B],S,enc+[A],enc-[S]],
        A -> conc[S,enc+[S,+[F,A,A]]],
        A -> enc+[S,+[A,A]],
        B -> conc[S,enc-[S,-[F,B,B]]],
        B -> enc-[S,-[B,B]]
      },
      {      
        S -> F,
        A -> empty,
        B -> empty
      }
    },
    S
  )
