next up previous contents
Next: 6.1.2 UNFUG Control Statements Up: 6.1 Universal Function Generator Previous: 6.1 Universal Function Generator

6.1.1 Definition of a Tuple

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.

  figure2583
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.

  figure2596
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:


block2607

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.

  figure2615
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
block2621
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.


next up previous contents
Next: 6.1.2 UNFUG Control Statements Up: 6.1 Universal Function Generator Previous: 6.1 Universal Function Generator

IUE WWW server
Fri Jan 3 17:00:13 MET 1997