Expand description
Low-level Rust lexer.
Tokens produced by this lexer are not yet ready for parsing the Rust syntax,
for that see librustc_parse::lexer
, which converts this basic token stream
into wide tokens used by actual parser.
The purpose of this crate is to convert raw sources into a labeled sequence of well-known token types, so building an actual Rust token stream will be easier.
Main entity of this crate is TokenKind
enum which represents common
lexeme types.
Modules§
- Utilities for validating string and char literals and turning them into values they represent.
Structs§
- Parsed token. It doesn’t contain information about data that has been parsed, only the type of the token and its size.
Enums§
- Base of numeric literal encoding according to its prefix.
- Enum representing common lexeme types.
Functions§
- Parses the first token from the provided input string.
- True if
c
is valid as a non-first character of an identifier. See Rust language reference for a formal definition of valid identifier name. - True if
c
is valid as a first character of an identifier. See Rust language reference for a formal definition of valid identifier name. - True if
c
is considered a whitespace according to Rust language definition. See Rust language reference for definitions of these classes. rustc
allows files to have a shebang, e.g. “#!/usr/bin/rustrun”, but shebang isn’t a part of rust syntax, so this function skips the line if it starts with a shebang (“#!”). Line won’t be skipped if it represents a valid Rust syntax (e.g. “#![deny(missing_docs)]”).- Creates an iterator that produces tokens from the input string.