value:

    value    ::= list
               | object
               | property
               | string
               | number
               | bytes
               | expression
               | type
               | boolean
               | 'null'

referenced by:

- list
- object
- property

list:

    list     ::= '[' ( value ( ',' value )* )? ']'

referenced by:

- value

object:

    object   ::= '{' ( string '=>' value ( ',' string '=>' value )* )? '}'

referenced by:

- value

property:

    property ::= '{' string '=>' value '}'

referenced by:

- value

string:

    string   ::= '"' ( [^"\] | '\' ( '"' | '\' | 'b' | 'f' | 't' | 'r' | 'n' | 'u' hexdigit hexdigit hexdigit hexdigit ) )* '"'

referenced by:

- expression
- object
- property
- value

number:

    number   ::= int
               | double

referenced by:

- value

expression:

    expression
             ::= '{' '"EXPRESSION_VALUE"' ':' string '}'

referenced by:

- value

bytes:

    bytes    ::= '{' '"BYTES_VALUE"' ':' base64string '}'

referenced by:

- value

boolean:

    boolean  ::= 'false'
               | 'true'

referenced by:

- value

type:

    type     ::= '{' '"TYPE_MODEL_VALUE"' ':' ( '"BIG_DECIMAL"' | '"BIG_INTEGER"' | '"BOOLEAN"' | '"BYTES"' | '"DOUBLE"' | '"EXPRESSION"' | '"LIST"' | '"LONG"' | '"INT"' | '"OBJECT"' | '"PROPERTY"' | '"STRING"' | '"TYPE"' | '"UNDEFINED"' ) '}'

referenced by:

- value

int:

    int      ::= octinteger
               | decinteger
               | hexinteger

referenced by:

- number

double:

    double   ::= [+#x2D]? ( 'Infinity' | 'NaN' | '.' decdigit* ( exponent | decdigit exponent? ) )
               | decinteger '.' decdigit* exponent?

referenced by:

- number

octinteger:

    octinteger
             ::= [+#x2D]? '0' octdigit+

referenced by:

- int

decinteger:

    decinteger
             ::= [+#x2D]? ( '0' | [1-9] decdigit* )

referenced by:

- double
- int

hexinteger:

    hexinteger
             ::= [+#x2D]? '0x' hexdigit+

referenced by:

- int

base64string:

    base64string
             ::= '"' ( base64quartet | base64newline )* base64padding? base64newline* '"'

referenced by:

- bytes

base64quartet:

    base64quartet
             ::= base64char base64char base64char base64char

referenced by:

- base64string

base64padding:

    base64padding
             ::= base64char base64char ( base64char ( base64char | '=' ) | '==' )

referenced by:

- base64string

base64char:

    base64char
             ::= [a-zA-Z0-9+/]

referenced by:

- base64padding
- base64quartet

base64newline:

    base64newline
             ::= '\r'
               | '\n'

referenced by:

- base64string

octdigit:

    octdigit ::= [0-7]

referenced by:

- octinteger

decdigit:

    decdigit ::= [0-9]

referenced by:

- decinteger
- double
- exponent

hexdigit:

    hexdigit ::= [0-9a-fA-F]

referenced by:

- hexinteger
- string

exponent:

    exponent ::= ( 'e' | 'E' ) [+#x2D]? decdigit+

referenced by:

- double

| ... generated by Railroad Diagram Generator |