This program was initially developed in a week or so, in C++, using the GNU flex tool to generate a low-level parser (available for Windows here). flex is a bit archaic, but still a robust and efficient solution for text parsing; alternative solutions include the ANTLR code generator, or the spririt C++ template library.
Since its first publication, this translator has also been updated based on requests and contributions of a number of users who downloaded it (Thank you!).
The purpose of this translator is to automate a lot of the grunt work required translate Delphi/Pascal files to C++. It reads a .pas file and outputs a .h header and a .cpp implementation file. The program is written in about 1000 lines of C++ code.
The translator usually does a good job translating algorithms and various utilities. It also seeks to preserve the original formatting of the code in the generated files. However, the generated code will often not compile as is, and further editing and refactoring is usually needed.
This syntax-based translator is not a compiler; it does not understand the type of the variables being used, and has therefore limited capabilities. But it does a decent job saving time during a translation process. Some features of Delphi that are known to be incorrectly or partially translated; in the generated code, they are highlighted with a special comment ( /*?*/ ).