Crate rustc_ap_rustc_lexer[−][src]
Expand description
Low-level Rust lexer.
The idea with rustc_lexer
is to make a reusable library,
by separating out pure lexing and rustc-specific concerns, like spans,
error reporting, and interning. So, rustc_lexer operates directly on &str
,
produces simple tokens which are a pair of type-tag and a bit of original text,
and does not report errors, instead storing them as flags on the token.
Tokens produced by this lexer are not yet ready for parsing the Rust syntax.
For that see rustc_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.
The main entity of this crate is the TokenKind
enum which represents common
lexeme types.
Modules
unescape | Utilities for validating string and char literals and turning them into values they represent. |
Structs
Token | Parsed token. It doesn’t contain information about data that has been parsed, only the type of the token and its size. |
Enums
Base | Base of numeric literal encoding according to its prefix. |
DocStyle | |
LiteralKind | |
RawStrError | Error produced validating a raw string. Represents cases like: |
TokenKind | Enum representing common lexeme types. |
Functions
first_token | Parses the first token from the provided input string. |
is_id_continue | True if |
is_id_start | True if |
is_ident | The passed string is lexically an identifier. |
is_whitespace | True if |
strip_shebang |
|
tokenize | Creates an iterator that produces tokens from the input string. |