cmake_tidy_lexer/
token.rs1use cmake_tidy_ast::TextRange;
2
3#[derive(Debug, Clone, PartialEq, Eq)]
4pub struct Token {
5 pub kind: TokenKind,
6 pub range: TextRange,
7}
8
9impl Token {
10 #[must_use]
11 pub const fn new(kind: TokenKind, range: TextRange) -> Self {
12 Self { kind, range }
13 }
14}
15
16#[derive(Debug, Clone, PartialEq, Eq)]
17pub enum TokenKind {
18 Identifier(String),
19 UnquotedArgument(String),
20 QuotedArgument(String),
21 BracketArgument(String),
22 LeftParen,
23 RightParen,
24 Comment(String),
25 Whitespace(String),
26 Newline,
27}
28
29impl TokenKind {
30 #[must_use]
31 pub const fn is_trivia(&self) -> bool {
32 matches!(self, Self::Comment(_) | Self::Whitespace(_) | Self::Newline)
33 }
34}