litelighter/src/tokenizer/types.rs
2022-11-22 00:24:23 +01:00

42 lines
949 B
Rust

pub enum Error {
ExceededDepthRange,
}
#[derive(PartialEq)]
pub enum TokenKind<'t> {
Normal,
Comment,
String,
Number,
Operator,
Symbol,
Literal,
Function,
Keyword,
KeywordAlt,
Custom(&'t str)
}
impl <'t> Into<&'t str> for TokenKind<'t> {
fn into(self) -> &'t str {
match self {
TokenKind::Normal => "normal",
TokenKind::Comment => "comment",
TokenKind::String => "string",
TokenKind::Number => "number",
TokenKind::Operator => "operator",
TokenKind::Symbol => "symbol",
TokenKind::Literal => "literal",
TokenKind::Function => "function",
TokenKind::Keyword => "keyword",
TokenKind::KeywordAlt => "keyword2",
TokenKind::Custom(custom_kind) => custom_kind
}
}
}
pub struct Token<'t> {
pub token_type: TokenKind<'t>,
pub value: String
}