The SIL parser is one 7000 line file. It attempts to do three things: read SIL text, check and verify the input, and transform the input into SIL instructions/functions/etc. There are, at least, five overarching problems with the current implementation:
- The current implementation is old, complicated, and monolithic.
- The parser is a standalone library (for no good reason) which complicates the build system.
- It is hard to have "drop-in" tooling with this implementation.
- The current implementation has no interoperability with the serializer.
- The current implementation tries to do everything in one place: read, check and parse.