Support for modular parsing in software reengineering
Ian Peake, E. Salzman · 2002
As reengineering increasingly contributes to software engineering, so can software engineering principles contribute to cost-effective reengineering tool development. The cost of modelling languages motivates support for modular parsers which can, like program modules, be assembled cheaply from smaller, tested components. We describe a scheme which achieves this by extending the expressive and flexible combinator parsing scheme using object-oriented constructs (class inheritance and dynamic method dispatch). Related schemes either do not fully support code sharing or sacrifice flexibility. The scheme has been implemented in a prototype reengineering environment and successfully tested on grammars such as Modula-2. The generation time for extensions is linear in the size of the extension. The run-time performance is potentially as bad as for general parsing algorithms, but can be linear (10 times slower than LALR for Modula-2) after optimization.