generators.BSTGrammar("improved grammar"): extended translation
(
  { A, B, A2, B2 },
  { F:8, G:4, p1:0, p2:0, flipA:1, flipB:1 },
  { 1, 2 },
  3,
  {
    table "generate" {
      {
        { 
          A -> G[A<1 1 1>,A<1 2 1>,B<1 2 1>,A<1 2 1>],
          B -> G[B<1 2 1>,B<1 1 1>,A<1 1 1>,B<1 1 1>],
          A2 -> A2<1 1 1>,
          B2 -> B2<1 1 1>
        }
      },
      {
        { 
          A -> A2<1 1 1>,
          B -> B2<1 1 1>,
          A2 -> A2<1 1 1>,
          B2 -> B2<1 1 1>
        }
      } weight .3
    },
    table "choose_colour" {
      {
        { 
          A -> A2<1 1 1>,
          B -> B2<1 1 1>,
          A2 -> flipA[A2<1 1 1>],
          B2 -> flipB[B2<1 1 1>]
        },
        {
          A -> A2<1 1 1>,
          B -> B2<1 1 1>,
          A2 -> A2<1 1 1>,
          B2 -> B2<1 1 1>
        },
        {
          A -> p1,
          B -> p2,
          A2 -> p1,
          B2 -> p2
        } weight .1
      }
    },
    table "terminate" {
      {
        {
          A -> p1,
          B -> p2,
          A2 -> p1,
          B2 -> p2
        }
      }
    }
   },
   F[A<1 1 1>,A<1 1 1>,A<1 1 1>,A<1 1 1>,A<1 1 1>,A<1 1 1>,A<1 1 1>,A<1 1 1>],
   "generate" "generate" "generate" "generate" "generate"
   "choose_colour" "choose_colour" "choose_colour" "choose_colour"
   "choose_colour" "choose_colour" "choose_colour" "choose_colour"
   "terminate"
 )