slides/slides08.tex
changeset 1035 c479d6ef57f8
parent 1034 94cf7cb122b3
equal deleted inserted replaced
1034:94cf7cb122b3 1035:c479d6ef57f8
   156 
   156 
   157 \end{frame}
   157 \end{frame}
   158 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   158 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   159 
   159 
   160 
   160 
   161 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   162 \begin{frame}[t,fragile]
       
   163 
       
   164 \small
       
   165 \begin{textblock}{13}(-0.5,1)
       
   166 \begin{lstlisting}[numbers=none]
       
   167 def mkeps(r: Rexp) : Val = r match {
       
   168   ...
       
   169   case PLUS(r) => Stars(List(mkeps(r))) 
       
   170   case OPTIONAL(r) => Stars(Nil)
       
   171   case NTIMES(r, n) => Stars(List.fill(n)(mkeps(r)))
       
   172 }
       
   173 
       
   174 def inj(r: Rexp, c: Char, v: Val) : Val = (r, v) match {
       
   175   ...
       
   176   case (RANGE(_), Empty) => Chr(c)
       
   177   case (PLUS(r), Sequ(v1, Stars(vs))) => Stars(inj(r, c, v1)::vs)
       
   178   case (OPTIONAL(r), v) => Stars(inj(r, c, v)::Nil)
       
   179   case (NTIMES(r, n), Sequ(v1, Stars(vs))) => Stars(inj(r, c, v1)::vs)
       
   180 }
       
   181 \end{lstlisting}
       
   182 \end{textblock}
       
   183 
       
   184 
       
   185 \begin{textblock}{5}(3,13.5)
       
   186 \bl{$r^? \dn r^{\{0..1\}}$}
       
   187 \end{textblock}
       
   188 
       
   189 \end{frame}
       
   190 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   191 
       
   192 
   161 
   193 
   162 
   194 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   163 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   195 % \begin{frame}[c]
   164 % \begin{frame}[c]
   196 
   165