/// The type of a token. May also contain its litteral value. #[derive(Clone, PartialEq, Debug)] pub enum TokenType { LeftParen, RightParen, LeftBrace, RightBrace, Comma, Dot, Minus, Plus, Semicolon, Slash, Star, Bang, BangEqual, Equal, EqualEqual, Greater, GreaterEqual, Less, LessEqual, Identifier(String), String(String), Number(f64), And, Class, Else, False, Fun, For, If, Nil, Or, Print, Return, Super, This, True, Var, While, _EOF, } /// Full information about a token. #[derive(Clone, Debug)] pub struct Token { pub token_type: TokenType, pub lexeme: String, pub line: usize, }