use crate::error::Span;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Token {
pub kind: TokenKind,
pub span: Span,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum TokenKind {
Literal(char),
Dot,
Star,
Plus,
Question,
Pipe,
Caret,
Dollar,
OpenParen,
CloseParen,
OpenBracket,
CloseBracket,
OpenBrace,
CloseBrace,
Hyphen,
Comma,
Digit(u32),
Escape(EscapeKind),
Colon,
LessThan,
GreaterThan,
Equals,
Exclamation,
Ident(String),
Eof,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum EscapeKind {
Literal(char),
Digit,
NotDigit,
Word,
NotWord,
Whitespace,
NotWhitespace,
WordBoundary,
NotWordBoundary,
StartOfInput,
EndOfInput,
EndOfInputBeforeNewline,
Newline,
CarriageReturn,
Tab,
FormFeed,
VerticalTab,
Null,
Hex(char),
Unicode(char),
Backref(u32),
GraphemeCluster,
UnicodeProperty(String),
NotUnicodeProperty(String),
}