docs/parser/tech-analysis.md
As the Enso parser has some fairly unique requirements placed upon it, the choice of implementation technology is of paramount importance. Choosing the correct technology ensures that we can meet all of the requirements placed upon the parser.
<!-- MarkdownTOC levels="2,3" autolink="true" --> <!-- /MarkdownTOC -->As the parser has to work both for the Engine and for the IDE, it has a strange set of requirements:
The previous implementation of the parser was implemented in Scala, and had some serious issues that have necessitated this rewrite:
Rust, then, is an obvious choice for the following reasons:
This is not to say that choosing rust doesn't come with some compromises: