equal
  deleted
  inserted
  replaced
  
    
    
|     84   def parse(ts: List[Token]) = ts match { |     84   def parse(ts: List[Token]) = ts match { | 
|     85     case T_ID(s)::ts => Set((s, ts))  |     85     case T_ID(s)::ts => Set((s, ts))  | 
|     86     case _ => Set () |     86     case _ => Set () | 
|     87   } |     87   } | 
|     88 } |     88 } | 
|         |     89  | 
|         |     90 def len(xs: List[(Int, Int)]): Int = xs match { | 
|         |     91   case Nil => 0 | 
|         |     92   case (1, x)::xs => len(xs) + 1 | 
|         |     93   case (_, x)::xs => len(xs)  | 
|         |     94 } | 
|         |     95  | 
|         |     96 def fst(p: (Int, Int)): Int = p match { | 
|         |     97   case Nil => 0 | 
|         |     98   case (1, x)::xs => len(xs) + 1 | 
|         |     99   case (_, x)::xs => len(xs)  | 
|         |    100 } | 
|         |    101  | 
|     89  |    102  | 
|     90  |    103  | 
|     91 // arithmetic expressions |    104 // arithmetic expressions | 
|     92 lazy val AExp: Parser[List[Token], AExp] =  |    105 lazy val AExp: Parser[List[Token], AExp] =  | 
|     93   (T ~ T_OP("+") ~ AExp) ==> { case ((x, y), z) => Aop("+", x, z): AExp } || |    106   (T ~ T_OP("+") ~ AExp) ==> { case ((x, y), z) => Aop("+", x, z): AExp } || |