oak_regex/lexer/
token_type.rs1use oak_core::{TokenType, UniversalTokenRole};
2
3#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
5#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6pub enum RegexTokenType {
7 Eof,
9 Whitespace,
11 Identifier,
13 Operator,
15 Punctuation,
17 Unknown,
19}
20
21impl TokenType for RegexTokenType {
22 type Role = UniversalTokenRole;
23 const END_OF_STREAM: Self = Self::Eof;
24
25 fn role(&self) -> Self::Role {
26 match self {
27 Self::Eof => UniversalTokenRole::Eof,
28 Self::Whitespace => UniversalTokenRole::Whitespace,
29 Self::Identifier => UniversalTokenRole::Name,
30 Self::Operator => UniversalTokenRole::Operator,
31 Self::Punctuation => UniversalTokenRole::Punctuation,
32 Self::Unknown => UniversalTokenRole::Error,
33 }
34 }
35}