The Rust parser.
NOTE: The crate is undergoing refactors, don't believe everything the docs say :-)
The parser doesn't know about concrete representation of tokens and syntax
trees. Abstract [TokenSource] and [TreeSink] traits are used instead. As
a consequence, this crate does not contain a lexer.
The Parser struct from the parser module is a cursor into the
sequence of tokens. Parsing routines use Parser to inspect current
state and advance the parsing.
The actual parsing happens in the [grammar] module.
Tests for this crate live in the syntax crate.