All tuples used in the Unfug-Target should be defined in an extra tuple file. The definition of a tuple is given in Figure 6.1.
Abbildung 6.1: Definition of a tuple
Every tuple is associated with a name similar to the symbolicName used by VMake and is used later in control statements. The variable list is just a list of symbols defining the names of the placeholder for later evaluation. The following value lists which have to be of the same length as the variable list contain the data values. Usually these are strings, if they are used directly as simple expression, but may be of any type if they are used in complex evaluations. A simple example is shown in Figure 6.2.
Abbildung 6.2: Simple tuple example
The first example shows with four variable definitions called `GenericType', `GenericName', `FlagBit' and `pclType'. The values are then taken from each of the three following lists in which all values are LISP strings. For each iteration the variables are bound to one value in the list. So for each iteration the string bindings are:
The second example shown in Figure 6.3 is more complex and uses the UNFUG feature of partial recursion in value binding and use of non string variables for conditional control of UNFUG.
Abbildung 6.3: Complex tuple example
Here the variable list contains three variable names and the last fourth
entry is again a list of names. This list has to be the last value in the
variable definition. During value binding the list is flat, so in total six
variables are defined. The first value list has three variables and then two
lists for binding. This would be identical to two value lists looking like
in the tuple. So this is a shortcut definition to allow recursive
repetitions of values. The tuple has a total of nine repetitions. In this
example the second and third value are LISP symbols which have to be used
in complex expressions or in conditional control statements.