Declarations

Declarations are either global or local (to a process) and can contain declarations of clocks, bounded integers, constants, channels (although local channels are useless), and types. The syntax is described by the grammar for Declarations:

Declarations  ::= (VariableDecls | TypeDecls | Function)*
VariableDecls ::= Type VariableDecl (',' VariableDecl)* ';'
VariableDecl  ::= ID ArrayDecl* [ '=' Initialiser ]
Initialiser   ::= Expression
               |  '{' Initialiser (',' Initialiser)* '}'

TypeDecls, Type, and ArrayDecl are further described in the section on types, Expression in the section on expressions, and Function in the section on functions.

Examples