242 case object T_RPAREN extends Token |
242 case object T_RPAREN extends Token |
243 case class T_ID(s: String) extends Token |
243 case class T_ID(s: String) extends Token |
244 case class T_FID(s: String) extends Token |
244 case class T_FID(s: String) extends Token |
245 case class T_OP(s: String) extends Token |
245 case class T_OP(s: String) extends Token |
246 case class T_NUM(n: Int) extends Token |
246 case class T_NUM(n: Int) extends Token |
247 case class T_FNUM(x: Float) extends Token |
247 case class T_FNUM(x: Double) extends Token |
248 case class T_KWD(s: String) extends Token |
248 case class T_KWD(s: String) extends Token |
249 case class T_TY(s: String) extends Token |
249 case class T_TY(s: String) extends Token |
250 case class T_CHR(i: Int) extends Token |
250 case class T_CHR(i: Int) extends Token |
251 |
251 |
252 val token : PartialFunction[(String, String), Token] = { |
252 val token : PartialFunction[(String, String), Token] = { |
254 case ("t", s) => T_TY(s) |
254 case ("t", s) => T_TY(s) |
255 case ("i", s) => T_ID(s) |
255 case ("i", s) => T_ID(s) |
256 case ("o", s) => T_OP(s) |
256 case ("o", s) => T_OP(s) |
257 case ("n", s) => T_NUM(s.toInt) |
257 case ("n", s) => T_NUM(s.toInt) |
258 case ("ch", s) => if (s == "'\\n'") T_CHR(10) else T_CHR(s(1).toInt) |
258 case ("ch", s) => if (s == "'\\n'") T_CHR(10) else T_CHR(s(1).toInt) |
259 case ("f", s) => T_FNUM(s.toFloat) |
259 case ("f", s) => T_FNUM(s.toDouble) |
260 case ("s", _) => T_SEMI |
260 case ("s", _) => T_SEMI |
261 case ("c", _) => T_COMMA |
261 case ("c", _) => T_COMMA |
262 case ("co", _) => T_COLON |
262 case ("co", _) => T_COLON |
263 case ("pl", _) => T_LPAREN |
263 case ("pl", _) => T_LPAREN |
264 case ("pr", _) => T_RPAREN |
264 case ("pr", _) => T_RPAREN |