Related articles |
---|
Converting Pascal to C++, C# or VB steve@rh12.co.uk (Steve) (2006-04-03) |
re: Converting Pascal to C++, C bsheff2@gmail.com (Bob Sheff) (2006-04-14) |
From: | "Bob Sheff" <bsheff2@gmail.com> |
Newsgroups: | comp.compilers |
Date: | 14 Apr 2006 21:17:18 -0400 |
Organization: | Compilers Central |
References: | 06-04-017 |
Keywords: | translator, Pascal |
Posted-Date: | 14 Apr 2006 21:17:18 EDT |
"Steve" stated:
>It's a big chunk of code - about 500k lines in 200 files. I currently have a
Large systems typically have millions of lines and thousands of files.
>translator that converts it to Delphi. This enables us to run it on a PC,
<snip>
>So far the main obstacle I can see with C++ is the nested routines of
>Pascal. I don't know of any way to do this in C++.
The Applied Conversion Tech translator "Pas-C" pops out the imbedded
routines by appending in-scope variables as arguments to the routine
definition and invocations (by reference if needed). It may need to
modify the procdure name (by pre-pending the imbedor's name) if there
are identicall named routines elsewhere in the system. This is done
recursively and automatically.
This proceedure was originally developed for a very large project
involving (Pascal-like) CHILL to C++ involving very large files, some
of which had multiple, sinliar recursive definitions more than 3 deep.
After CHILL, Pascal was easy.
>We also have a few instances of Pascal procedural parameters. Can
>these be emulated?
Certainly, as pointer to function
>Fortunately no-one ever used conformant arrays. :)
One could perhaps do this with a #define macro for the invocation such as:
#define foo(array) foo_conform( array, sizeof(array) )
and overload the definition with a size argument.
if there were enough of them in a system, a special rule could be
designed to do this automatically.
If you would like a fixed price bid on conversion, contact me or the
www.actworld.com
regards, Bob Sheff
bsheff2 at yahoo dot com
Return to the
comp.compilers page.
Search the
comp.compilers archives again.