124/136
\begin{frame}{Example}

  \begin{exampleblock}{}
    \begin{malign}
      S \to aSb\mid\lambda
    \end{malign}
    The parser table is:
    \begin{talign}
      \begin{array}{l|ccc}
      & a & b & \$ \\
      \hline
      S & ~S \to aSb~ & ~S \to \lambda~ & ~S \to \lambda
      \end{array}
    \end{talign}\vspace{-2ex}

    \begin{malign}
      \langle S\$,ab\$\rangle
      \mpause[1]{ &\rightarrow \langle aSb\$,ab\$\rangle }
      \mpause{ \rightarrow \langle Sb\$,b\$\rangle }
      \mpause{ \rightarrow \langle b\$,b\$\rangle }
      \mpause{ \\&\rightarrow \langle \$,\$\rangle }
      \mpause{ \quad \alert{\emph{accept}} }
      \\[1ex]
      \mpause{ \langle S\$,abb\$\rangle }
      \mpause{ &\rightarrow \langle aSb\$,abb\$\rangle }
      \mpause{ \rightarrow \langle Sb\$,bb\$\rangle }
      \mpause{ \rightarrow \langle b\$,bb\$\rangle }
      \mpause{ \\&\rightarrow \langle \$,b\$\rangle }
      \mpause{ \quad \alert{\emph{reject}} }
      \\[1ex]
      \mpause{ \langle S\$,aab\$\rangle }
      \mpause{ &\rightarrow \langle aSb\$,aab\$\rangle } 
      \mpause{ \rightarrow \langle Sb\$,ab\$\rangle }
      \mpause{ \rightarrow \langle aSbb\$,ab\$\rangle }
      \mpause{ \\&\rightarrow \langle Sbb\$,b\$\rangle }
      \mpause{ \rightarrow \langle bb\$,b\$\rangle }
      \mpause{ \rightarrow \langle b\$,\$\rangle }
      \mpause{ \quad \alert{\emph{reject}} }
    \end{malign}
  \end{exampleblock}
  \pause[21]
  
  \begin{goal}{}
    JavaCC (Java Compiler Compiler) 
    automatically generates a parser from an LL$(1)$ grammar.
  \end{goal}  
\end{frame}

\themex{LL$(k)$ Grammars}