#[derive(Debug, Clone, PartialEq)]
pub enum TokenKind {
Currency,
Account,
Transaction,
Rule,
Pay,
Transfer,
Debit,
Credit,
Receive,
Hold,
Release,
Capture,
Settle,
Fee,
Refund,
Reverse,
Authorize,
From,
To,
Asset,
Liability,
Equity,
Revenue,
Expense,
If,
Module,
Import,
Export,
Identifier,
Number,
LeftBrace,
RightBrace,
LeftParen,
RightParen,
Colon,
Comma,
Dot,
Plus,
Minus,
Star,
Slash,
Equal,
EqualEqual,
NotEqual,
Greater,
GreaterEqual,
Less,
LessEqual,
Eof,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Token {
pub kind: TokenKind,
pub lexeme: String,
pub line: usize,
pub column: usize,
}
impl Token {
pub fn new(kind: TokenKind, lexeme: impl Into<String>, line: usize, column: usize) -> Self {
Self {
kind,
lexeme: lexeme.into(),
line,
column,
}
}
}