1 %unary-expression
2+ 
2? infix-operator (1) unary-expression

unary-expression:

1+ 
1? prefix-operator (1) 
2 %elementary-expression

elementary-expression:

1 (expression)
1 %reference
1 constant

reference:

1? %locator-qualifier (2) 
2 %basic-reference
3? (-| subscript-list | (3) -)
4+ 
4? 
4 (-| argument-list | (4) -)

locator-qualifier:

1  (2)   reference
2  -> 
2  => 
2  . 

basic-reference:

1? %qualified-reference (5) 
2 identifier (6) 

subscript-list:

1  (3) 
2+ ,
2 expression
2 *

argument-list:

1  (4) 
2+ ,
2 expression
2 *

qualified-reference:

1  (5)   basic-reference
2? (-| subscript-list |-)
3 .