General notes on syntax

Graph Structures

All three domains use models that are represented by a graph structure, i.e., as vertices (nodes), which have names, and edges between two vertices. In models, they are represented by an arrow:

S1 ----> S2

The length of the arrow is irrelevant. S1 is the source vertex and S2 is the target vertex. Depending on the context, vertices and.or edges may have annotations that are added between square brackets, for example:

S1 [...] -- [...] --> S2 [...]

White space can be added freely.

Multiple edges can be written in a list, typically, but not necessarily, starting on a new line

S1 ----> S2
S1 ----> S3
S2 ----> S2

If a vertex occurs multiple times, e.g., S1 above, annotations need to be written only once, for an arbitray instance of the vertex.

Occasionally a syntax allows the use of string literals. The can be written with either single quote delimiters or double quote delimiters, for example '#', or "'".

Comments

Comments can be added to models using the common single line // and multiline /* ... */ patterns. When // appears in a model, all input starting from // till the end of the line in which it occurs is considered a comment and ignored for the model. When /* appears in a model, all input starting from /* up to and including the first following occurrence of */ is considered a comment and ignored for the model.