pub enum TokenKind {
Show 36 variants
LineComment {
doc_style: Option<DocStyle>,
},
BlockComment {
doc_style: Option<DocStyle>,
terminated: bool,
},
Whitespace,
Ident,
RawIdent,
UnknownPrefix,
Literal {
kind: LiteralKind,
suffix_start: usize,
},
Lifetime {
starts_with_number: bool,
},
Semi,
Comma,
Dot,
OpenParen,
CloseParen,
OpenBrace,
CloseBrace,
OpenBracket,
CloseBracket,
At,
Pound,
Tilde,
Question,
Colon,
Dollar,
Eq,
Bang,
Lt,
Gt,
Minus,
And,
Or,
Plus,
Star,
Slash,
Caret,
Percent,
Unknown,
}Expand description
Enum representing common lexeme types.
Variants§
LineComment
“// comment”
BlockComment
/* block comment */
Block comments can be recursive, so the sequence like /* /* */
will not be considered terminated and will result in a parsing error.
Whitespace
Any whitespace characters sequence.
Ident
“ident” or “continue” At this step keywords are also considered identifiers.
RawIdent
“r#ident”
UnknownPrefix
An unknown prefix like foo#, foo', foo". Note that only the
prefix (foo) is included in the token, not the separator (which is
lexed as its own distinct token). In Rust 2021 and later, reserved
prefixes are reported as errors; in earlier editions, they result in a
(allowed by default) lint, and are treated as regular identifier
tokens.
Literal
“12_u8”, “1.0e-40”, “b“123”“. See LiteralKind for more details.
Lifetime
“’a”
Semi
“;”
Comma
“,”
Dot
“.”
OpenParen
“(”
CloseParen
“)”
OpenBrace
“{”
CloseBrace
“}”
OpenBracket
“[”
CloseBracket
“]”
At
“@”
Pound
“#”
Tilde
“~”
Question
“?”
Colon
“:”
Dollar
“$”
Eq
“=”
Bang
“!”
Lt
“<”
Gt
“>”
Minus
“-”
And
“&”
Or
“|”
Plus
“+”
Star
“*”
Slash
“/”
Caret
“^”
Percent
“%”
Unknown
Unknown token, not expected by the lexer, e.g. “№”