\begin{slide}{CST zu AST}

AST-Typ deklarieren (wie Grammatik)
\begin{verbatim}
Abstract Syntax Tree 
    exp = { plus }   [left]:exp [right]:exp
      | { times }   [left]:exp [right]:exp
      | { number } number  ;
\end{verbatim}


und Übersetzungen für jeder Regel 
\begin{verbatim}
Productions
  expression { -> exp } =  sum { -> sum.exp } ;
  sum { -> exp } 
     = { simple } product { -> product.exp } 
     | { complex } sum plus product 
	  { -> New exp.plus (sum.exp, product.exp) } ;
\end{verbatim}
links Typ, rechts Kopie oder Konstruktion (new)

Das ist Attributgrammatik
(jeder Knoten des CST bekommt als Wert eine Knoten des AST)
\end{slide}
