There are plenty of potential improvements that could be made to the software. These could potentially constitute a roadmap of sorts.

Better Error Handling

Errors are not very informative and could be reported and handled better.

Better Input Validation

The code generally assumes that some forms of input will make sense in the output. Moreover, some characteristics of the output might result in deficient program behaviour. For instance, where the opcodes of individual interfaces combined into a compound interface conflict, the resulting code will not be able to deliver messages to all of the conflicting operations, and the tool should really be detecting such conditions.

Tidier Code Generation

Having written the software in C, very basic techniques have been used to generate code, and these have also had some impact on the output itself. Ideally, more sophisticated templating would be used to make the workings of the code generation more obvious.

Reimplementation in Another Language

It might be interesting to reimplement the tool in Python and to use a similar parsing toolkit. PLY would be a potentially usable candidate.

More Abstract Type Handling

Types employed in interface descriptions are currently mostly propagated to generated code without any attempt to understand them. Other interface description languages permit the definition and use of structured types.