deimos-lang/dmc-lib/src/token.rs
2026-03-02 12:41:11 -06:00

40 lines
647 B
Rust

#[derive(Debug, Eq, PartialEq, Clone)]
pub struct Token {
start: usize,
end: usize,
kind: TokenKind,
}
impl Token {
pub fn new(start: usize, end: usize, kind: TokenKind) -> Self {
Self { start, end, kind }
}
pub fn start(&self) -> usize {
self.start
}
pub fn end(&self) -> usize {
self.end
}
pub fn kind(&self) -> TokenKind {
self.kind
}
}
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
pub enum TokenKind {
Fn,
Identifier,
LeftParentheses,
RightParentheses,
End,
Let,
Equals,
IntegerLiteral,
LongLiteral,
String,
Extern,
}