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. “№”