485   \bl{$|Empty|$}     & \bl{$\dn$} & \bl{$[]$}\\ | 
   485   \bl{$|Empty|$}     & \bl{$\dn$} & \bl{$[]$}\\ | 
   486   \bl{$|Char(c)|$}   & \bl{$\dn$} & \bl{$[c]$}\\ | 
   486   \bl{$|Char(c)|$}   & \bl{$\dn$} & \bl{$[c]$}\\ | 
   487   \bl{$|Left(v)|$}   & \bl{$\dn$} & \bl{$|v|$}\\ | 
   487   \bl{$|Left(v)|$}   & \bl{$\dn$} & \bl{$|v|$}\\ | 
   488   \bl{$|Right(v)|$}  & \bl{$\dn$} & \bl{$|v|$}\\ | 
   488   \bl{$|Right(v)|$}  & \bl{$\dn$} & \bl{$|v|$}\\ | 
   489   \bl{$|Seq(v_1,v_2)|$}& \bl{$\dn$} & \bl{$|v_1| \,@\, |v_2|$}\\ | 
   489   \bl{$|Seq(v_1,v_2)|$}& \bl{$\dn$} & \bl{$|v_1| \,@\, |v_2|$}\\ | 
   490   \bl{$|[v_1,\ldots ,v_n]|$} & \bl{$\dn$} & \bl{$|v_1| \,@\ldots @\, |v_n|$}\\ | 
   490   \bl{$|Stars\,[v_1,\ldots ,v_n]|$} & \bl{$\dn$} & \bl{$|v_1| \,@\ldots @\, |v_n|$}\\ | 
   491 \end{tabular} | 
   491 \end{tabular} | 
   492 \end{center} | 
   492 \end{center} | 
   493   | 
   493   | 
   494 \end{frame} | 
   494 \end{frame} | 
   495 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     | 
   495 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     | 
   627   \bl{$inj$}: & 1st arg $\mapsto$ a rexp; 2nd arg $\mapsto$ a character;  | 
   627   \bl{$inj$}: & 1st arg $\mapsto$ a rexp; 2nd arg $\mapsto$ a character;  | 
   628   3rd arg $\mapsto$ a value\\  | 
   628   3rd arg $\mapsto$ a value\\  | 
   629               & result $\mapsto$ a value   | 
   629               & result $\mapsto$ a value   | 
   630   \end{tabular} | 
   630   \end{tabular} | 
   631   \end{frame} | 
   631   \end{frame} | 
   632   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     | 
   632   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
         | 
   633   | 
         | 
   634 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
         | 
   635   \begin{frame}[t] | 
         | 
   636     | 
         | 
   637   \begin{center} | 
         | 
   638   \begin{tabular}{@{\hspace{-3mm}}l@{\hspace{1mm}}c@{\hspace{1mm}}l@{}} | 
         | 
   639     \bl{$inj\,(c)\,c\,(Empty)$} & \bl{$\dn$}  & \bl{$Char\,c$}\\ | 
         | 
   640   \end{tabular} | 
         | 
   641   \end{center} | 
         | 
   642   | 
         | 
   643 \end{frame} | 
         | 
   644 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     | 
         | 
   645   | 
         | 
   646 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
         | 
   647   \begin{frame}[t] | 
         | 
   648     | 
         | 
   649   \begin{center} | 
         | 
   650     \begin{tabular}{@{\hspace{-3mm}}l@{\hspace{1mm}}c@{\hspace{1mm}}l@{}} | 
         | 
   651     \bl{$inj\,(r_1 + r_2)\,c\,(Left(v))$} & \bl{$\dn$}  & \bl{$Left(inj\,r_1\,c\,v)$}\\ | 
         | 
   652     \bl{$inj\,(r_1 + r_2)\,c\,(Right(v))$} & \bl{$\dn$}  & \bl{$Right(inj\,r_2\,c\,v)$}\\ | 
         | 
   653   | 
         | 
   654   \end{tabular} | 
         | 
   655   \end{center} | 
         | 
   656   | 
         | 
   657 \end{frame} | 
         | 
   658 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
         | 
   659   | 
         | 
   660 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
         | 
   661   \begin{frame}[t] | 
         | 
   662     | 
         | 
   663   \begin{center} | 
         | 
   664     \begin{tabular}{@{\hspace{-8mm}}l@{\hspace{1mm}}c@{\hspace{1mm}}l@{}} | 
         | 
   665     \\[-15mm]    | 
         | 
   666     \bl{$inj\,(r_1 \cdot r_2)\,c\,(Seq(v_1,v_2))$} & \bl{$\dn$}  & \bl{$Seq(inj\,r_1\,c\,v_1,v_2)$}\\ | 
         | 
   667     \bl{$inj\,(r_1 \cdot r_2)\,c\,(Left(Seq(v_1,v_2)))$} & \bl{$\dn$}  & \bl{$Seq(inj\,r_1\,c\,v_1,v_2)$}\\ | 
         | 
   668     \bl{$inj\,(r_1 \cdot r_2)\,c\,(Right(v))$} & \bl{$\dn$}  & \bl{$Seq(mkeps(r_1),inj\,r_2\,c\,v)$}\\   | 
         | 
   669   \end{tabular} | 
         | 
   670 \end{center} | 
         | 
   671   | 
         | 
   672   | 
         | 
   673 \begin{textblock}{13}(1,13.4) | 
         | 
   674 \begin{bubble}[13cm] | 
         | 
   675 \small  | 
         | 
   676 \bl{$\der\, c\, (r_1 \cdot r_2)$} \bl{$\dn$} \bl{\textbf{if} $nullable (r_1)$} | 
         | 
   677  \bl{\textbf{then} $(\der\,c\,r_1) \cdot r_2 + \der\, c\, r_2$} | 
         | 
   678  \bl{\textbf{else} $(\der\, c\, r_1) \cdot r_2$} | 
         | 
   679 \end{bubble} | 
         | 
   680 \end{textblock} | 
         | 
   681   | 
         | 
   682 \end{frame} | 
         | 
   683 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   | 
         | 
   684   | 
         | 
   685 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
         | 
   686   \begin{frame}[t] | 
         | 
   687     | 
         | 
   688   \begin{center} | 
         | 
   689   \begin{tabular}{@{\hspace{-3mm}}l@{\hspace{1mm}}c@{\hspace{1mm}}l@{}} | 
         | 
   690     \bl{$inj\,(r^*)\,c\,(Seq(v,Stars\,vs))$} & \bl{$\dn$}  & \bl{$Stars\,(inj\,r\,c\,v\,::\,vs)$} | 
         | 
   691   \end{tabular} | 
         | 
   692   \end{center} | 
         | 
   693   | 
         | 
   694 \end{frame} | 
         | 
   695 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     | 
         | 
   696   | 
   633     | 
   697     | 
   634 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
   698 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
   635 \begin{frame}[c] | 
   699 \begin{frame}[c] | 
   636 \frametitle{Lexing} | 
   700 \frametitle{Lexing} | 
   637   | 
   701   | 
   638 \begin{center} | 
   702 \begin{center} | 
   639 \begin{tabular}{l@{\hspace{1mm}}c@{\hspace{1mm}}l} | 
   703 \begin{tabular}{l@{\hspace{1mm}}c@{\hspace{1mm}}l} | 
   640   \bl{$lex\,r\,[]$} & \bl{$\dn$}  & \bl{if $nullable(r)$ then $mkeps(r)$ else $error$}\\ | 
   704   \bl{$lex\,r\,[]$} & \bl{$\dn$}  & \bl{if $nullable(r)$ then $mkeps(r)$ else $error$}\\ | 
   641   \bl{$lex\,r\,c::s$} & \bl{$\dn$}  & \bl{$inj\,r\,c\,lex(der(c,r), s)$}\\ | 
   705   \bl{$lex\,r\,a::s$} & \bl{$\dn$}  & \bl{$inj\,r\,a\,lex(der(a,r), s)$}\\ | 
   642 \end{tabular} | 
   706 \end{tabular} | 
   643 \end{center} | 
   707 \end{center} | 
   644   | 
   708   | 
   645 \footnotesize  | 
   709 \footnotesize  | 
   646 \bl{$lex$}: returns a value | 
   710 \bl{$lex$}: returns a value | 
   686 \item \bl{$inj\,(x:r)\,c\,v \dn Rec(x, inj\,r\,c\,v)$} | 
   750 \item \bl{$inj\,(x:r)\,c\,v \dn Rec(x, inj\,r\,c\,v)$} | 
   687 \end{itemize}\bigskip\bigskip\pause | 
   751 \end{itemize}\bigskip\bigskip\pause | 
   688   | 
   752   | 
   689 \small  | 
   753 \small  | 
   690 for extracting subpatterns \bl{$(z: ((x:ab) + (y:ba))$} | 
   754 for extracting subpatterns \bl{$(z: ((x:ab) + (y:ba))$} | 
         | 
   755   | 
         | 
   756 \begin{textblock}{6}(10,10) | 
         | 
   757 \begin{bubble}[2cm] | 
         | 
   758 \small  | 
         | 
   759 \begin{tabular}{l} | 
         | 
   760   \bl{$(id : r_{id})$}\\ | 
         | 
   761   \bl{$(key : r_{key})$}\\ | 
         | 
   762 \end{tabular} | 
         | 
   763 \end{bubble} | 
         | 
   764 \end{textblock} | 
         | 
   765   | 
   691   | 
   766   | 
   692 \end{frame} | 
   767 \end{frame} | 
   693 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
   768 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
   694   | 
   769   | 
   695 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
   770 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  |