[][src]Crate lrlex

lrlex is a partial replacement for lex / flex. It takes in a .l file and statically compiles it to Rust code. The resulting LRNonStreamingLexerDef can then be given an input string, from which it instantiates an LRNonStreamingLexer. This provides an iterator which can produce the sequence of lrpar::Lexemes for that input, as well as answer basic queries about lrpar::Spans (e.g. extracting substrings, calculating line and column numbers).

Macros

lrlex_mod

A convenience macro for including statically compiled .l files. A file src/a/b/c.l which is statically compiled by lrlex can then be used in a crate with lrlex_mod!("a/b/c.l").

Structs

LRNonStreamingLexer

An LRNonStreamingLexer holds a reference to a string and can lex it into lrpar::Lexemes. Although the struct is tied to a single string, no guarantees are made about whether the lexemes are cached or not.

LRNonStreamingLexerDef

This struct represents, in essence, a .l file in memory. From it one can produce an LRNonStreamingLexer which actually lexes inputs.

LexBuildError

Any error from the Lex parser returns an instance of this struct.

LexerBuilder

A LexerBuilder allows one to specify the criteria for building a statically generated lexer.

Enums

LexErrorKind

The various different possible Lex parser errors.

LexerKind

Traits

LexerDef

Methods which all lexer definitions must implement.

Functions

build_lexDeprecated

Type Definitions

LexBuildResult
NonStreamingLexerDefDeprecated