Transformation by rule sequences is a possibility in AGG to apply rules quasi deterministically.
A transformation rule sequence is a control structure which defines an ordered set of rule subsequences and rule iterations.A dialog allows you to define rule subsequences in order to be applied. This dialog combines three tables and a textual view of the defined subsequences where each line shows one rule subsequence.
The first table contains the rules of the currently selected grammar.
The second table shows the rule subsequences. You can create a new empty subsequence using button New Subsequence. The subsequences are ordered by its position in the table. The order can be changed by pressing and dragging the middle mouse button.
The third table shows the rules of a subsequence. By selecting one or more rules in the first table and clicking on the button Add it can be put into the currently selected subsequence. The rule order of the third table can be changed by pressing and dragging the middle mouse button.The Iterations field of the second and third tables can be used to set a number of how long a rule subsequence or a single rule shoud be applied. The star ( * ) is allowed, too, and means "as long as possible".
An example for a rule sequence:
newRoot
(newNode connect){4}
addLoop{*}
Here we can see three rule subsequences to be performed:
- the first subsequence with the rule newRoot should be applied only once,
- the second sbsequence with the rules newNode and connect should be applied four times after each other,
- the third subsequence with the rule addLoop should be applied as long as possible.