config:
EOL
mapping
mapping-body
list
EOL
config
::=
EOL
* (
mapping
|
mapping-body
|
list
)
EOL
*
no references
mapping:
(
mapping-body
}
mapping
::= '('
mapping-body
'}'
referenced by:
atom
config
list:
[
list-body
]
list
::= '['
list-body
']'
referenced by:
atom
config
mapping-body:
EOL
key_value
EOL
mapping-body
::= (
EOL
*
key_value
EOL
* )*
referenced by:
config
mapping
key_value:
key
:
=
EOL
value
,
EOL
key_value
::=
key
( ':' | '=' )
EOL
*
value
( ',' |
EOL
)?
referenced by:
mapping-body
key:
strings
IDENTIFIER
key
::=
strings
|
IDENTIFIER
referenced by:
key_value
strings:
STRING
strings
::=
STRING
+
referenced by:
key
value
list-body:
EOL
expr
,
EOL
EOL
list-body
::= (
EOL
*
expr
( ',' |
EOL
)?
EOL
* )*
referenced by:
list
expr:
and-expr
or
||
expr
::=
and-expr
( ( 'or' | '||' )
and-expr
)*
referenced by:
atom
list-body
and-expr:
not-expr
and
&&
and-expr
::=
not-expr
( ( 'and' | '&&' )
not-expr
)*
referenced by:
expr
not-expr:
not
!
comparison
not-expr
::= ( 'not' | '!' )*
comparison
referenced by:
and-expr
comparison:
bitor-expr
comp-op
bitor-expr
comparison
::=
bitor-expr
(
comp-op
bitor-expr
)?
referenced by:
not-expr
comp-op:
<=
<
>=
>
==
!=
<>
is
not
not
in
comp-op
::= '<='
| '<'
| '>='
| '>'
| '=='
| '!='
| '<>'
| 'is' 'not'?
| 'not'? 'in'
referenced by:
comparison
bitor-expr:
bitxor-expr
|
bitor-expr
::=
bitxor-expr
( '|'
bitxor-expr
)*
referenced by:
comparison
bitxor-expr:
bitand-expr
^
bitxor-expr
::=
bitand-expr
( '^'
bitand-expr
)*
referenced by:
bitor-expr
bitand-expr:
shift-expr
&
bitand-expr
::=
shift-expr
( '&'
shift-expr
)*
referenced by:
bitxor-expr
shift-expr:
add-expr
<<
>>
shift-expr
::=
add-expr
( ( '<<' | '>>' )
add-expr
)*
referenced by:
bitand-expr
add-expr:
mul-expr
+
-
add-expr
::=
mul-expr
( ( '+' | '-' )
mul-expr
)*
referenced by:
shift-expr
mul-expr:
unary-expr
*
/
//
%
mul-expr
::=
unary-expr
( ( '*' | '/' | '//' | '%' )
unary-expr
)*
referenced by:
add-expr
unary-expr:
+
-
~
@
power
unary-expr
::= ( '+' | '-' | '~' | '@' )*
power
referenced by:
mul-expr
power
power:
primary
**
unary-expr
power
::=
primary
'**'
unary-expr
referenced by:
unary-expr
primary:
atom
trailer
primary
::=
atom
trailer
*
referenced by:
atom
power
atom:
mapping
list
value
$
{
primary
}
(
expr
)
atom
::=
mapping
|
list
|
value
| '$' '{'
primary
'}'
| '('
expr
')'
referenced by:
primary
value:
strings
IDENTIFIER
INTEGER
FLOAT
COMPLEX
true
false
null
value
::=
strings
|
IDENTIFIER
|
INTEGER
|
FLOAT
|
COMPLEX
| 'true'
| 'false'
| 'null'
referenced by:
atom
key_value