sibil/src/lexer/token.rs

35 lines
693 B
Rust
Raw Normal View History

/* token.rs
* Eryn Wells <eryn@erynwells.me>
*/
use lexer::number::Number;
#[derive(PartialEq, Debug)]
pub enum Token {
Boolean(bool),
Comment(String),
Dot,
Identifier(String),
LeftParen(String),
2016-12-25 20:59:21 -07:00
LeftVectorParen,
Number(Number),
Quote,
RightParen(String),
2016-12-25 15:03:18 -07:00
String(String),
}
/// A Lex is a Token extracted from a specific position in an input. It contains useful information about the token's
/// place.
#[derive(Debug)]
pub struct Lex {
2016-12-25 14:20:25 -07:00
pub token: Token,
pub line: usize,
pub offset: usize,
}
impl Lex {
pub fn new(token: Token, line: usize, offset: usize) -> Lex {
Lex { token: token, line: line, offset: offset }
}
}