Files
not-python-rust/src/token.rs

68 lines
843 B
Rust
Raw Normal View History

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum TokenKind {
// Keywords
Return,
If,
Else,
True,
False,
Nil,
// Expressions
Name,
Number,
String,
// Binary operators
Plus,
Minus,
Star,
Slash,
// Unary operators (not already covered)
Bang,
// Boolean operators
And,
Or,
// Comparison
BangEq,
EqEq,
Greater,
GreaterEq,
Less,
LessEq,
// Braces, parens, etc
LParen,
RParen,
LBrace,
RBrace,
LBracket,
RBracket,
// Assignment
Eq,
// Dot, comma
Dot,
Comma,
Arrow,
Colon,
// Line end
Eol,
// File end
Eof,
}
#[derive(Debug, Clone)]
pub struct Token {
pub line: usize,
//pub index: usize,
pub text: String,
pub kind: TokenKind,
}