Arrays
- An array is a set of values, separated with the comma signs (,) and enclosed into the
parenthesis.
- Example: (Element1 , "Element2" , "Element 3")
- An array element can be either a string, or an array, or a dictionary.
- Example: (Element1 , ("Sub Element1", SubElement2) , "Element 3")
- Any number of spaces, tabulation symbols, and/or line breaks (end-of-line symbols) can be placed
between a parentheses and an element, and between an element and a comma sign.
- Example:
(
Element1 ,
( "Sub Element1",
SubElement2 )
,
"Element 3" )
Dictionaries
The Dictionary format is used for most CommuniGate Pro setting files, as well as for
some other files and data.
A Dictionary value can be either a string, or an array, or a dictionary, so the format
definition is recursive.
- A dictionary is a list of key-value pairs. Each key should be unique, and the key names
are case-sensitive. The equal sign (=) is placed between the key and its value,
end the semicolon symbol (;) is placed after a value. The set of key-value pairs is enclosed
into the curvy brackets. Each key is a string.
- Example: {Key1=Element1; Key2 ="Element2" ; "Third Key"="Element 3"; }
- The value element in any key-value pair can be a string, an array, and/or a dictionary.
- Example: {Key1=(Elem1,Elem2); Key2={Sub1="XXX 1"; Sub2=X245;}; }
- Any number of spaces, tabulation symbols, and/or line breaks (end-of-line symbols) can be placed
between a bracket and a pair, around the equal sign, and around the semicolon sign.
- Example:
{
Key1 = (Elem1,Elem2) ;
Key2 = { Sub1 = "XXX 1";
Sub2=X245; };
}
Syntax Rules
Below is the formal syntax for the Dictionary and Array formats:
a-symbol ::= A .. Z | a .. z | 0 .. 9
atom ::= 1*a-symbol
b-symbol ::= a-symbol | + | / | =
s-symbol ::= any printable symbol except " and \ |
\\ | \" | \r | \n | \e | \nnn
string ::= " 0*s-symbol " | atom
datablock ::= [ 1*b-symbol ]
array ::= ( [object [, object ...]] )
dictionary ::= { [string = object ; [string = object ; ...]] }
object ::= string | array | dictionary | datablock
|