This rule provides limited support for object oriented programming style using classes and methods by using the external VOOPS tool in the project PifGridSupport. More information about this tool is given in [Fas94a]. It uses a template approach with an optional tuple file. All code is written in C and no C++ compiler is required.
The Voops-Target implemented by the vm::VoopsFile is
subclassed from the built-in vm::UnfugFile used by the
Unfug-Target, since it uses UNFUG for automatic code
generation. One additional instance variable is required in the class to
store the module names to be generated.
Since VOOPS uses an internal save file, only one code generator is
allowed to run at each time. This is checked in the
multiple-jobs.
The implementation of the rule is shown in Listing D.6. The include file is
only generated if the boolean key include is used.
With this definitions the Voops-Target is made available with the
syntax given in Voops-Target.
This rule is a specialized case of the standard VMake CASE tool
UNFUG and uses this code generator for generating output files. The key
module defines a list of strings which are used for module
names. To create the full filename, ``_c.tpl'' is added for the
C source file and ``_h.tpl'' for the optional include file. The output
files have the extensions ``ac'' and ``h'' respectively. The keys
flags and defines are used during compilation of the
automatically generated C code. The object file is then associated to the
symbolicName. If the key include is given, an additional include file
is generated and automatically made available globally (exported from the
project by default). The key load can be used to specify additional
files to be loaded prior of execution of VOOPS similar to the same key of
the Unfug-Target rule (see Unfug-Target).