The parser driver component is responsible for orchestrating the entire action of the parser. It handles the following duties:
- Consuming input text using a provided reader in a lazy fashion.
- Lexing and then parsing the input text.
- Writing the output AST to the client of the parser.
The parser is going to be employed in two contexts, both running in-process:
- In the IDE codebase as a rust dependency.
- In the engine as a native code dependency used via JNI.