Version 5.1 |
|||||||||||||||||||||||||||||||||
|
|
Strings are basic, unstructured textual data objects.
An array object is an ordered set of objects (array elements).
A dictionary object is a set of key-value pairs. Dictionary keys are strings. Each key in a dictionary should be unique. The dictionary keys are processed as case-sensitive strings, unless explicitly specified otherwise.
Any object can be used as a value associated with a key.
Below is the formal syntax definition for textual representations of the basic type objects.
d-digit | ::= | 0 .. 9 |
h-digit | ::= | d-digit | A | B | C | D | E | F |
a-symbol | ::= | A .. Z | a .. z | d-digit |
l-symbol | ::= | a-symbol | . | _ |
atom | ::= | 1* l-symbol |
b-symbol | ::= | a-symbol | + | / | = |
s-symbol | ::= | any printable symbol except " and \ | \\ | \" | \r | \n | \e | \ d-digit d-digit d-digit |
string | ::= | " 0* s-symbol " | atom |
datablock | ::= | [ 1* b-symbol ] |
day | ::= | 0 .. 3 d-digit (2-digit number in the 1..31 range) |
month | ::= | 0 .. 1 d-digit (2-digit number in the 1..12 range) |
year | ::= | 1 .. 2 d-digit d-digit d-digit (4-digit number in the 1970..2038 range) |
hour | ::= | 0 .. 2 d-digit (2-digit number in the 0..23 range) |
minute | ::= | 0 .. 5 d-digit (2-digit number in the 0..59 range) |
second | ::= | 0 .. 5 d-digit (2-digit number in the 0..59 range) |
number | ::= | # [ -] 1* d-digit |
timestamp | ::= | # T day - month - year [ _ hour : minute : second ] |
ip4 | ::= | 1* d-digit . 1* d-digit . 1* d-digit . 1* d-digit |
ip6 | ::= | 0*(1* h-digit :) [: [ 0*(1* h-digit :) ] ] |
ip-address | ::= | # I[ [ip4 | ip6] ] [ : 1*d-digit ] |
array | ::= | ( [object 0*( , object ) ] ) |
dictionary | ::= | { 0*( string = object ; ) } |
object | ::= | string | datablock | number | timestamp | ip-address | array | dictionary |