Logos Handbook
Hi there!
Logos is a fast and easy to use lexer generator written in Rust. While Rust has excellent documentation tools (and you can access the API docs for Logos at docs.rs), it's not the easiest thing to document custom syntax used by procedural macros, of which Logos has a bit. This Handbook seeks to remedy this!
In a nut shell
There are two main types in Logos:
- The
Logos
trait, which comes out with it's own derive macro. The derive macro uses custom attributes (the things using these brackets:#[...]
) with plain string or regular expression syntax onenum
variants as patterns for some input. - The
Lexer<T: Logos>
, which is an iterator that takes some input (&str
, sometimes&[u8]
) and performs lexical analysis on the input on the go, producing variants of the enumT
matching the defined patterns.