The project was to convert C++ code that ran under AT&T C++ to work with the more restrictive Microsoft Visual C++ compiler. Doing this involved:

The client has an existing language-translation tool based on the Unix parser generator Yacc and scanner generator Lex, but wanted something easier to maintain. We chose the programming language Icon, successor to string-manipulation language Snobol4. Doing a HotBot search on 'Icon Parser Generator' yielded TCLL, an LL(1) parser generator written in and generating as a target Icon code.

TCLL allows Yacc-like assumption of program control at any point in the recognition of a grammar's production, and after a few false starts working with the entire matched function call, we found that getting control after every argument and checking it against the symbol table allowed a trivial (3 lines code) substitution of the newly typecast argument for the old "bare" one.

As part of the project, we modified TCLL to improve the ability of its generated parsers to resynchronize after an error, and we now believe we have an extremely powerful tool applicable across a wide range of parsing tasks.