oak_dot/lexer/
token_type.rs1use oak_core::{Source, Token, TokenType, UniversalElementRole, UniversalTokenRole};
2#[cfg(feature = "serde")]
3use serde::{Deserialize, Serialize};
4
5pub type DotToken = Token<DotTokenType>;
6
7impl TokenType for DotTokenType {
8 type Role = UniversalTokenRole;
9 const END_OF_STREAM: Self = Self::Error;
10
11 fn is_ignored(&self) -> bool {
12 false
13 }
14
15 fn role(&self) -> Self::Role {
16 match self {
17 _ => UniversalTokenRole::None,
18 }
19 }
20}
21
22#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
23#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
24#[repr(u8)]
25pub enum DotTokenType {
26 Identifier,
28 String,
29 Number,
30 Whitespace,
31 Newline,
32
33 Graph,
35 Digraph,
36 Subgraph,
37 Node,
38 Edge,
39 Strict,
40
41 Arrow, Line, Equal, Semicolon, Comma, LeftBrace, RightBrace, LeftBracket, RightBracket, LeftParen, RightParen, Comment,
58
59 Root,
61 Error,
62 Eof,
63}