PREP    : Source language preprocessor

Title   : PREP
Version : 2.2
Date    : Feb 19, 2000
Author  : J R Ferguson
Download: http://hello.to/ferguson
E-mail  : j.r.ferguson@iname.com

This program may be used and copied freely without  charge,  but  only  for
non-commercial  purposes.  The  author is not responsible for any damage or
loss of data that may be caused by using it.


Usage : PREP [<infile] [>outfile] [/option ...]


COMMAND              OPTION             MEANING
-------              ------             ------

COMMAND string       /Cstring           Specifies command-prefix string.
                                        Default '*'.

VARBEG  string       /[string           Specify variable start string
                                        for substitution. Default '['.

VAREND  string       /]string           Specify variable end string
                                        for substitution. Default ']'.

DEFINE  ident        /Didentifier       Define identifier.

DEFINE  ident=value  /Didentifier=value Define identifier, assign a value.

UNDEF   ident        /Uident            Undefine identifier

IF      ident                           Process if identifier was definied.

IF      ident=value                     Process if identifier has value.

ELSE                                    Invert last IF condition.

ENDIF                                   Ends IF/ELSE block.
 
PREFIX  fileprefix   /Pfileprefix       Set file prefix for INCLUDEs.

INCLUDE filespec [/option ...]          Include [fileprefix]filespec
                                        Parse options as in command line



Remarks
-------

Internal commands must be specified on one line and are recognized only  if
they  start with the current command-prefix string in column one. There may
be one or more tabs or spaces between the  command-prefix  string  and  the
command  keyword.  There  must  be  at  least  one tab or space between the
command and its argument.

Command keywords and identifiers are not case sensitive.

Identifiers can be used both for conditional processing, using IF , and for
text substitution.

Example:
  *DEFINE Name=John
  *IF Name
  Dear [Name],
  *ELSE
  What's your name?
  *ENDIF
will result in:
   Dear John,

INCLUDE and IF [ELSE] commands may be nested.

DEFINE, UNDEF, VARBEG and VAREND are global over included files.

Options specified in an INCLUDE command remain in effect after the included
file is processed.


History:
v2.2 Feb 19,2000 - Changed author's Internet address.
v2.1 Nov 12,1999
(No earlier history available)
