progs/lexer/lexer.sc
changeset 757 ea0be0662be0
parent 742 b5b5583a3a08
child 792 34132a854d03
equal deleted inserted replaced
756:f7c7a75e0583 757:ea0be0662be0
    30 case class Right(v: Val) extends Val
    30 case class Right(v: Val) extends Val
    31 case class Stars(vs: List[Val]) extends Val
    31 case class Stars(vs: List[Val]) extends Val
    32 case class Rec(x: String, v: Val) extends Val
    32 case class Rec(x: String, v: Val) extends Val
    33    
    33    
    34 // some convenience for typing in regular expressions
    34 // some convenience for typing in regular expressions
    35 import scala.language.implicitConversions    
       
    36 import scala.language.reflectiveCalls
       
    37 
    35 
    38 def charlist2rexp(s : List[Char]): Rexp = s match {
    36 def charlist2rexp(s : List[Char]): Rexp = s match {
    39   case Nil => ONE
    37   case Nil => ONE
    40   case c::Nil => CHAR(c)
    38   case c::Nil => CHAR(c)
    41   case c::s => SEQ(CHAR(c), charlist2rexp(s))
    39   case c::s => SEQ(CHAR(c), charlist2rexp(s))