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