Main differences with respect to `tests/playground/parser` 1- There is a single (parametric) parser type: `Parser k`, where `k` is used to identify whether it is a `nud` or `led` parser. 2- It assumes parsing tables are stored in the `Environment`. 3- We check precedence mismatch, and use the value `none` to represent "use existing precedence". 4- We have support for silent (aka epsilon) parsing actions. Remark: the experiments at `tests/playground/parser` demonstrated that the new parsing infrastructure is at least 10x faster than the one based on the `Parsec` monad. |
||
|---|---|---|
| .. | ||
| identifier.lean | ||
| parser.lean | ||
| trie.lean | ||