This is an old revision of the document!
Table of Contents
Operators
Each node expression is prefixed by an operator. Both together constitute a
single production statement which passes the result of the node expression to
the current producer. In the simplest case, node expressions are prefixed by
whitespace only, which is an operator.
The list of available operator is defined in the XL specification. Operators have the same syntactical priority and are applied in the order in which they appear.
Common operator in RGG
Here is a list of some commonly used operator and their result in RGG:
| Operator | Example | Result |
| Node Node | Link the two nodes by a directed Successor edge | |
| > | Node > Node | Link the two nodes by a directed Successor edge |
| +> | Node +> Node | Link the two nodes by a directed Branch edge |
| /> | Node /> Node | Link the two nodes by a directed Refinement edge |
| -e→ | Node -5-> | Link the two nodes by a directed edge with the edge bit of e |
Note: all the operator above can be applied with their “reverse” form, in order to create a directed edge of the other direction. E.g. +> can be <+.
Custom operator
Example
The following production statement:
==> Node > Node;
is translated for the producer p as :
p.operator$whitespace(new Node()).operator$rt(new Node());
