The traditional parser in qooxdoo was a hand-written recursive-descent parser. It had several issues, was unwieldy and hard to maintain. The syntax tree it created was rather idiosyncratic, sometimes inconsistent and even semantically wrong. Particularly, it did not correctly represent precedence in complex expressions. This impeded further optimization of code parts that could have otherwise been reduced. It was difficult to oversee the effect of changes while fixing bugs or adding new features.
The new parser is now deployed for the “compile pipeline”, where it is used for dependency analysis, optimization and compression. The old parser is still in use for the “api-data” and “pretty-print pipelines” which are less critical. Those will be addressed in future steps.