use core::fmt;
use crate::lexer::span::Span;
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum TokenKind {
Slash,
Mul,
Mod,
Minus,
Plus,
Number,
LParen,
RParen
}
#[derive(Debug,Clone,Copy)]
pub struct Token {
pub kind: TokenKind,
pub span: Span,
}
impl fmt::Display for TokenKind {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{self:?}")
}
}
impl Token {
pub fn new(kind: TokenKind, span: Span) -> Self {
Self { kind, span }
}
}