pub enum TokenKind {
Show 62 variants
Fn,
Pub,
Let,
Mut,
Struct,
Mod,
If,
Else,
While,
Break,
Continue,
Return,
Enum,
Impl,
Match,
For,
In,
SelfKw,
CrateKw,
SuperKw,
UseKw,
As,
ReservedKeyword(String),
Identifier(String),
IntegerLiteral(String),
FloatLiteral(String),
StringLiteral(String),
BoolLiteral(bool),
Lifetime(String),
Plus,
Minus,
Star,
Slash,
Percent,
Eq,
EqEq,
NotEq,
Lt,
LtEq,
Gt,
GtEq,
Bang,
AmpAmp,
PipePipe,
Pipe,
Amp,
ColonColon,
Colon,
Semi,
Comma,
Dot,
DotDot,
DotDotEq,
LParen,
RParen,
LBrace,
RBrace,
LBracket,
RBracket,
Arrow,
FatArrow,
Question,
}Expand description
The kind of a lexical token. Keywords that are part of the Varyk
surface (spec 4.1) each get their own variant; every other Rust keyword
and reserved word, including the 2024-edition ones, lexes as
TokenKind::ReservedKeyword carrying its text, so the parser can report
it by name.
Variants§
Fn
Pub
Let
Mut
Struct
Mod
If
Else
While
Break
Continue
Return
Enum
Impl
Match
For
In
SelfKw
self, spec 2.1, also a path prefix (spec 3.1, 3.3). Self is
unrelated and still lexes as TokenKind::ReservedKeyword: Varyk
has no way to write it.
CrateKw
crate, a path prefix naming the crate root (spec 3.1, 3.3).
SuperKw
super, a path prefix naming the parent module (spec 3.1, 3.3).
UseKw
use, spec 3.3.
As
as: a cast, expr as T (M4 spec 2.9), and the alias in
use path as name; (spec 3.3).
ReservedKeyword(String)
Any other Rust keyword or reserved word, carrying its text.
Identifier(String)
IntegerLiteral(String)
Raw source text of an integer literal, digits only.
FloatLiteral(String)
Raw source text of a float literal, digits . digits.
StringLiteral(String)
Raw source text between the quotes of a string literal, unmodified.
BoolLiteral(bool)
Lifetime(String)
A 'ident lifetime, carrying the identifier without the quote.
Plus
Minus
Star
Slash
Percent
Eq
EqEq
NotEq
Lt
LtEq
Gt
GtEq
Bang
AmpAmp
PipePipe
Pipe
A lone |, around a closure’s parameters (M4 spec 2.2).
Amp
ColonColon
Colon
Semi
Comma
Dot
DotDot
DotDotEq
..=, an inclusive range (M4 spec 2.5, 2.11).