#[derive(Debug, Clone, PartialEq, Eq)]
pub enum TokenKind {
Fn,
Pub,
Let,
Mut,
Struct,
Mod,
If,
Else,
While,
Break,
Continue,
Return,
Enum,
Impl,
Match,
For,
In,
SelfKw,
CrateKw,
SuperKw,
UseKw,
As,
ReservedKeyword(String),
Identifier(String),
IntegerLiteral(String),
FloatLiteral(String),
StringLiteral(String),
BoolLiteral(bool),
Lifetime(String),
Plus,
Minus,
Star,
Slash,
Percent,
Eq,
EqEq,
NotEq,
Lt,
LtEq,
Gt,
GtEq,
Bang,
AmpAmp,
PipePipe,
Pipe,
Amp,
ColonColon,
Colon,
Semi,
Comma,
Dot,
DotDot,
DotDotEq,
LParen,
RParen,
LBrace,
RBrace,
LBracket,
RBracket,
Arrow,
FatArrow,
Question,
Hash,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Token {
pub kind: TokenKind,
pub span: crate::span::Span,
}