JEDI Pre Processor

From Project JEDI Wiki
Jump to navigationJump to search

JPP is a modified version of Barry Kelly's ppp tool.

In contrast to ppp, which resolves all conditional compilation directives without exception, with jpp symbols not only can be defined but also undefined. When called with the "-c" option ("Process conditional directives"), ppp resolves all conditional directives. Symbols not passed on the command line per "-d" option are treated as undefined. No $IFDEF, $IFNDEF, $ELSE or $ENDIF is left in the processed source files.

In contrast, jpp considers symbols not passed on the command line as unknown and leaves them alone, that is, related source code remains untouched. To specify a symbol as undefined, the "-u" option has been introduced.

jpp is a command line tool. The syntax of the tool is

 jpp.exe [options] <input files>...


 -c            Process conditional directives
 -m            Process macro directive
 -v            Process value directive
 -C            Strip comments
 -fxxx         Prefix xxx to filename
 -w            Do not add header warning
 -h, -?        This help
 -i[x[,y...]]  Process includes, except files x, y, ...
 -pxxx         Add xxx to include path
 -dxxx         Define xxx as a preprocessor conditional symbol
 -uxxx         Assume preprocessor conditional symbol xxx as not defined
 -rx[,y...]    Comma-separated list of strings to replace underscores in input file names with

The example command line below generates a file JclQGraphics.pas in subdirectory CLX from file Graphics.cb located in the current directory. Symbols "VisualCLX" and "COMPILER6_UP" are specified as defined, "Bitmap32" and "VCL" as undefined.

 jpp -c -dVisualCLX -dCOMPILER6_UP -uBitmap32 -uVCL -xCLX\JclQ Graphics.cb


JPP is part of the JEDI_Code_Library, it is located in directory named jcl/devtools/jpp. You can download the tool directly from our Sourceforge download page.