Mike Gerwitz
1c181fe546
The term "terminal parser" isn't formalized yet in the system, but is meant to refer to the innermost parser that is responsible for pulling tokens through the lowering pipeline. This approach is more of what one would expect when dealing with `Result`-like monads---we are effectively chaining the inner operation while propagating errors to short-circuit lowering and let the caller decide whether recovery ought to be permitted with diagnostic messages. This will become more clear as it is further refactored. This also means that the previous changes for introducing interior mutability for a shared mutable `Reporter` can be reverted, which is great, since that approach was antithetical to how the streaming pipeline operates (and introduces awkward mutable state into an otherwise-mostly-immutable system). DEV-13158 |
||
---|---|---|
.. | ||
xmle | ||
poc.rs |