
OCPP is an occam pre-processor that is somewhat more friendly than the
rather obscure non-supported INMOS tool PREOCC, with greatly improved
functionality. The main advantages are:

  *  It comments out lines, rather than removing them so toolset error
     messages still refer to the relevant source line.

  *  For the same reason it is able to reverse it's own effect and
     re-construct it's input.

  *  It offers more optional methods for defining symbols and many extra
     directives.

  *  It can modify files in-place, and can optionally annotate conditional
     directives with useful debugging data.

  *  It can perform simple textual substitutions in the output code, and
     process code-template files to generate standard occam constructs.

  *  It possesses a (rather lightweight) capability to import constants
     defined in C header files directly into occam source code.

  *  It can expand references to environment variables within any file
     specification attached to either it's own, or the occam compiler's
     native directives (#INCLUDE, &c.) (helpful for makefiles).

  *  It can pass it's output automatically to the occam compiler,
     effectively allowing single-pass pre-processing and compiling.

Files in this release:

  00readme.txt  this file
  0changes.txt  brief version history
  ocpp.doc      documentation as MS Word 6.0 file              (read one of  )
  ocpp.ps       documentation as Postscript                    (these next...)
  ocpp.c        the ANSI C source code                   (feel free to fiddle)
  spawnc.lib    library used by DOS executable                (see note below)
  ocpp.exe      the DOS executable                      (compiled with TurboC)
  dos_ocpp.btl  transputer bootable for DOS host   (rename to ocpp.btl to use)
  unx_ocpp.btl  transputer bootable for UNIX host  (rename to ocpp.btl to use)
  makefile      makefile for various targets
  defaults.ocp  contains definitions that restore default behaviour
  example.ocp   ocpp input file to demonstrate use of templates
  example.otp   template file for use in demo
  example       performs the demo               (issue command "ocpp example")


N.B:  Files were created on a PC, you may need to apply some sort of dos2unix
      filter to strip carriage returns and substitute ctrl-D for the terminal
      ctrl-Z on a Unix box. Otherwise porting to any ANSI C should be a
      doddle... He says confidently with his fingers crossed :-)

      The library spawnc.lib is from the SPAWNO routines by Ralf Brown, 1991,
      and is used to minimize memory usage while shelling to DOS from within
      ocpp. I'm sure you'ld want to thank him too, as I do, for making it
      publicly available. SPAWNO can be found on many PC software archives.

      The regular expression routines are heavily adapted from "ddjgrep",
      published for non-commercial use by Allen Holub, 1984. I hope you
      don't mind, Allen.

      This software package may be freely used, copied and re-distributed by
      any party, for any purpose commercial or otherwise, provided that any
      fee charged does not exceed the cost of distribution, all the package's
      component files and this message remain intact, and all recipients of
      copies agree to abide by the same conditions.

                                   MIB 1995,96,97   (mark@nlcc.demon.co.uk)
