progs/token.scala
changeset 580 dbb0f7d2a33d
parent 579 1a521448d211
child 581 19de761b69e9
equal deleted inserted replaced
579:1a521448d211 580:dbb0f7d2a33d
   127 def lexing(r: Rexp, s: String) : Val = lex(r, s.toList)
   127 def lexing(r: Rexp, s: String) : Val = lex(r, s.toList)
   128 
   128 
   129 
   129 
   130 lexing(("ab" | "a") ~ ("b" | ONE), "ab")
   130 lexing(("ab" | "a") ~ ("b" | ONE), "ab")
   131 
   131 
   132 
       
   133 
       
   134 // some "rectification" functions for simplification
   132 // some "rectification" functions for simplification
   135 def F_ID(v: Val): Val = v
   133 def F_ID(v: Val): Val = v
   136 def F_RIGHT(f: Val => Val) = (v:Val) => Right(f(v))
   134 def F_RIGHT(f: Val => Val) = (v:Val) => Right(f(v))
   137 def F_LEFT(f: Val => Val) = (v:Val) => Left(f(v))
   135 def F_LEFT(f: Val => Val) = (v:Val) => Left(f(v))
   138 def F_ALT(f1: Val => Val, f2: Val => Val) = (v:Val) => v match {
   136 def F_ALT(f1: Val => Val, f2: Val => Val) = (v:Val) => v match {