AST-Typ deklarieren (wie Grammatik)
Abstract Syntax Tree 
    exp = { plus }   [left]:exp [right]:exp
      | { times }   [left]:exp [right]:exp
      | { number } number  ;
und Übersetzungen für jeder Regel
Productions
  expression { -> exp } =  sum { -> sum.exp } ;
  sum { -> exp } 
     = { simple } product { -> product.exp } 
     | { complex } sum plus product 
	  { -> New exp.plus (sum.exp, product.exp) } ;
links Typ, rechts Kopie oder Konstruktion (new)
Das ist Attributgrammatik
(jeder Knoten des CST bekommt als Wert eine Knoten des AST)