#[derive(Debug, Clone, PartialEq)]
pub enum TokenKind {
LeftParen,
RightParen,
Plus,
Minus,
Star,
Slash,
Percent,
Bang,
Amp,
Pipe,
Caret,
Tilde,
AmpDot,
AmpAmp,
PipePipe,
LessLess,
GreaterGreater,
Eq,
EqEq,
BangEq,
Less,
LessEq,
Greater,
GreaterEq,
Semicolon,
Comma,
LeftBrace,
RightBrace,
LeftBracket,
RightBracket,
Dot,
DotDot,
Colon,
Arrow,
Number(i64),
Float(f64),
StringLit(String),
StringInterp(Vec<(String, bool)>), Identifier(String),
True,
False,
Nil,
If,
Elsif,
Else,
While,
Def,
Defp,
Return,
Break,
Next,
Class,
Module,
Include,
Attr,
SelfKw,
SuperKw,
Yield,
Print,
Raise,
Begin,
Rescue,
End,
Import,
Type,
Abstract,
Interface,
Question,
Match,
FatArrow, Underscore,
Newline,
Eof,
}
#[derive(Debug, Clone)]
pub struct Token {
pub kind: TokenKind,
pub line: usize,
pub column: usize,
}