\begin{slide}{Übung SableCC}

\begin{itemize}
\item Quelle: \url{http://sablecc.org/}
\item im Linux-Pool installiert
  (sablecc in \verb|/home/waldmann/built/bin|)
\item
Beispiele in 
\url{http://www.imn.htwk-leipzig.de/~waldmann/edu/ws05/compiler/programme/rechner/}
\item Quelltexte generieren
\begin{verbatim}
sablecc rechner.grammar 
\end{verbatim}
Welche Dateien wurden erzeugt? 
Wo stehen der endliche Automat, der Kellerautomat?
\end{itemize}
\begin{verbatim}
javac Interpreter.java # kompilieren
echo "1 + 3 + 5" | java Interpreter # testen
\end{verbatim}
\end{slide}


\begin{slide}{SableCC-Aufgaben}

Aufgaben: erweitern:
\begin{itemize}\itemsep 0pt
\item \verb|Integer| durch \verb|BigInteger| ersetzen
\item Subtraktion: \verb|4 - 2 + 1|
\item geklammerte Ausdrücke: \verb|1 + (2 + 3)|
\item Potenzen: \verb|2^3^2|
\item Funktion Fakultät \verb|fac(6)|
\end{itemize}

Aufgaben: 
\begin{itemize} \itemsep 0pt
\item lokale Konstanten
  (Werte deklarieren,  Werte benutzen):
 \verb|let { x = 3 + 5 ; y = 2 * x } in x + y|
\item
  Zuordnung Name $\to$ Wert durch
  \verb|Map<String,Integer>|
  aus package \verb|java.util|
\item
  was fehlt noch zu Programmiersprache?
\end{itemize}

\end{slide}
