Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved


Appendix A Syntax of the Rules Language : BNF Notation

BNF Notation
Conventions Used
The following sections describe the syntax of the rules language using BNF notation. This notation makes use of the following conventions:
   <start character>
In a list of alternatives, each alternative starts on a new line except in the case of the start characters, digits, and hexadecimal characters.
   {<digit>}
   [<exponent>]
::= means “is defined to be”.
Identifiers
Rules language identifiers cannot exceed sixteen characters in length and are comprised of the following characters:
<identifier> ::=
   <start character> {<follow character>}
<start character> ::=
   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z @ # $
<follow character> ::=
   <start character>
   <digit>
   _
<digit> ::=
   0 1 2 3 4 5 6 7 8 9
Numeric Literals
The rules language supports the following forms of numeric literals:
<numeric literal> ::=
   <digits> [ . <digits> ] [ <exponent> ]
   [<digits> ] . <digits> [ <exponent> ]
<digits> ::=
   digit { <digit> }
<digit> ::=
   0 1 2 3 4 5 6 7 8 9
<exponent> ::=
   E [ <sign> ] <digits>
   e [ <sign> ] <digits>
<sign> ::=
   +
   -
String Literals
A string literal is zero or more characters enclosed in single quotes:
<string literal> ::=
   <plain character string>
   <hexadecimal character string>
   <Unicode character string>
<hexadecimal byte string>
<plain character string> ::=
   '{<character>}'
<hexadecimal character string> ::=
   x'{<hexadecimal digit><hexadecimal digit>}'
   X'{<hexadecimal digit><hexadecimal digit>}'
<Unicode character string> ::=
   u'{<Unicode character>}'
   U'{<Unicode character>}'
<hexadecimal byte string> ::=
   r'{<hexadecimal digit><hexadecimal digit>}'
   R'{<hexadecimal digit><hexadecimal digit>}'
<hexadecimal character> ::=
   0 1 2 3 4 5 6 7 8 9 a A b B c C d D e E f F
<Unicode character> ::=
   <character other than />
   /<hexadecimal digit><hexadecimal digit><hexadecimal digit><hexadecimal digit>
   //
where:
<character> can be <letters>, <digits>, <special characters>, and the space character (described in Character Set), as well as any other characters that you can input from your terminal.
<character other than /> denotes the same characters as <character>, except for the exclusion of the forward slash (escape) character.
A forward slash followed by four hexadecimal digits denotes the Unicode character with the corresponding UTF-16 representation.
<hexadecimal character string> denotes a typeless string literal of syntax V containing characters designated by their two-digit hexadecimal values in the relevant EBCDIC code page. When a rule containing <hexadecimal character string> is stored and subsequently retrieved for editing, the literal in question appears as <plain character string> if all the characters designated by the original literal are printable.
<Unicode character string> denotes a typeless string literal of syntax UN containing the characters designated by their printable EBCDIC value, an escaped UTF-16 hexadecimal value, or the escaped escape character.
<hexadecimal byte string> denotes a typeless literal of syntax RD, containing the byte values designated by the pairs of hexadecimal digits.

Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved