Terminals
String constants are constructed using one of these rules. The string can be:
Enclosed in double-quotes, containing no double-quote characters as illustrated by this example:
StringLiteral = "{String Ch 1}*"
Enclosed in double-quotes, containing paired double-quotes that are each interpreted as a single embedded double-quote character as illustrated by this example:
StringLiteral = "(""|{String Ch 1})*"
Enclosed in single-quotes, containing no single-quote characters as illustrated by this example:
StringLiteral = '{String Ch 2}*'
Enclosed in single-quotes, containing paired single-quotes that are each interpreted as a single single-quote character as illustrated by this example:
StringLiteral = '(''|{String Ch 2})*'
Each string constant in an expression or parameter list can be constructed using any of these rules, independently of other string constants.
Integer constants do not contain a decimal point:
IntegerLiteral = {Digit}+
Real constants contain a decimal point:
RealLiteral = {Digit}+.{Digit}+
Identifiers such as variable, constant, and event parameter names must begin with a letter or underscore, and continue with zero or more alphanumeric characters or underscores:
Id = {ID Head}{ID Tail}*