Add Display trait to Token and Kind

This commit is contained in:
Eryn Wells 2016-12-23 17:45:37 -07:00
parent 79080ff62b
commit 9561e1bf91

View file

@ -1,5 +1,7 @@
//! # Lexer
use std::fmt;
use characters;
use characters::RelativeIndexable;
@ -9,11 +11,28 @@ pub enum Kind {
Identifier,
}
impl fmt::Display for Kind {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
let s = match *self {
Kind::LeftParen => "LeftParen",
Kind::RightParen => "RightParen",
Kind::Identifier => "Identifier",
};
write!(f, "{}", s)
}
}
pub struct Token {
kind: Kind,
value: String,
}
impl fmt::Display for Token {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "({}, \"{}\")", self.kind, self.value)
}
}
enum State {
Initial,
Identifier,