progs/detokenise.scala
changeset 642 064afa8fc1d9
child 644 b4f5714485e1
equal deleted inserted replaced
641:1062a9512e79 642:064afa8fc1d9
       
     1 // A simple lexer inspired by work of Sulzmann & Lu
       
     2 //==================================================
       
     3 
       
     4 
       
     5 object Delexer {
       
     6 
       
     7 import java.io._
       
     8 
       
     9 abstract class Token extends Serializable 
       
    10 case object T_SEMI extends Token
       
    11 case object T_LPAREN extends Token
       
    12 case object T_RPAREN extends Token
       
    13 case class T_ID(s: String) extends Token
       
    14 case class T_OP(s: String) extends Token
       
    15 case class T_NUM(n: Int) extends Token
       
    16 case class T_KWD(s: String) extends Token
       
    17 case class T_STR(s: String) extends Token
       
    18 
       
    19 def deserialise[T](fname: String) : T = {
       
    20   val in = new ObjectInputStream(new FileInputStream(fname))
       
    21   val data = in.readObject.asInstanceOf[T]
       
    22   in.close
       
    23   data
       
    24 }
       
    25 
       
    26 def main(args: Array[String]) = {
       
    27   println("TEST\n" ++ deserialise[List[Token]]("/tmp/nflx").mkString)  
       
    28 }
       
    29 
       
    30 
       
    31 }