Documentation
The Rust parser. 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 crates 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 `syntax` crate.