config: EOL mapping mapping-body list EOL
config   ::= EOL* ( mapping | mapping-body | list ) EOL*
no referencesmapping: ( 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
         ::= ( EOL* key_value EOL* )*
referenced by: config mapping key_value: key : = EOL value , EOL
         ::= 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
         ::= ( 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
         ::= 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 |
         ::= bitxor-expr ( '|' bitxor-expr )*
referenced by: comparison bitxor-expr: bitand-expr ^
         ::= bitand-expr ( '^' bitand-expr )*
referenced by: bitor-expr bitand-expr: shift-expr &
         ::= shift-expr ( '&' shift-expr )*
referenced by: bitxor-expr shift-expr: add-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
         ::= ( '+' | '-' | '~' | '@' )* power
referenced by: mul-expr power power: primary ** unary-expr
power    ::= primary '**' unary-expr
referenced by: unary-expr 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