sibil/lexer/src/token.rs

28 lines
623 B
Rust

/* lexer/src/token.rs
* Eryn Wells <eryn@erynwells.me>
*/
#[derive(Debug, Eq, PartialEq)]
pub struct Lex {
token: Token,
value: String,
line: usize,
offset: usize,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum Token { LeftParen, RightParen, Id, }
impl Lex {
pub fn new(token: Token, value: &str, line: usize, offset: usize) -> Lex {
Lex {
token: token,
value: String::from(value),
line: line,
offset: offset,
}
}
pub fn token(&self) -> Token { self.token }
pub fn value(&self) -> &str { self.value.as_str() }
}