value:

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

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   ::= '"' ( [^"\] | '\' ( '"' | '\' | 'u' hexdigit hexdigit hexdigit hexdigit ) )* '"'

referenced by:

- expression
- object
- property
- value

number:

    number   ::= int
               | long
               | double
               | biginteger
               | bigdecimal

referenced by:

- value

expression:

    expression
             ::= 'expression' string

referenced by:

- value

bytes:

    bytes    ::= 'bytes' '{' ( ( decbyte | hexbyte ) ( ',' ( decbyte | hexbyte ) )* ','? )? '}'

referenced by:

- value

boolean:

    boolean  ::= 'false'
               | 'true'

referenced by:

- value

type:

    type     ::= 'BIG_DECIMAL'
               | 'BIG_INTEGER'
               | 'BOOLEAN'
               | 'BYTES'
               | 'DOUBLE'
               | 'EXPRESSION'
               | 'LIST'
               | 'LONG'
               | 'INT'
               | 'OBJECT'
               | 'PROPERTY'
               | 'STRING'
               | 'TYPE'
               | 'UNDEFINED'

referenced by:

- value

int:

    int      ::= decinteger
               | hexinteger

referenced by:

- long
- number

long:

    long     ::= int 'L'

referenced by:

- number

double:

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

referenced by:

- number

biginteger:

    biginteger
             ::= 'big' 'integer' decinteger

referenced by:

- number

bigdecimal:

    bigdecimal
             ::= 'big' 'decimal' decinteger '.' decdigit* exponent?

referenced by:

- number

decinteger:

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

referenced by:

- bigdecimal
- biginteger
- double
- int

hexinteger:

    hexinteger
             ::= '0x' hexdigit+

referenced by:

- int

decbyte:

    decbyte  ::= [+#x2D]? ( '1' [0-2] [0-8] | [1-9]? [0-9] )

referenced by:

- bytes

hexbyte:

    hexbyte  ::= '0x' hexdigit hexdigit?

referenced by:

- bytes

decdigit:

    decdigit ::= [0-9]

referenced by:

- bigdecimal
- decinteger
- double
- exponent

hexdigit:

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

referenced by:

- hexbyte
- hexinteger
- string

exponent:

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

referenced by:

- bigdecimal
- double

| ... generated by Railroad Diagram Generator |