anchor.diff:  		(
   			DOT (NEWLINE)*
   			e=member_reference_expression[e]
  +			(NULLABLE_SUFFIX {
  +					ue = new UnaryExpression(e.LexicalInfo);
  +					ue.Operator = UnaryOperatorType.SafeAccess;
  +					ue.Operand = e;
  +					e = ue;
  +				}
  +			)?
   		)
   		|
   		(
  
positive.code: 				slice[se] (COMMA slice[se])*
  			)
  			RBRACK
  		)
  		|
  		(
  
negative.code: ;
  
  protected
  safe_atom returns [Expression e]
  	{
  		e = null;
  		UnaryExpression ue = null;
  	}:
  	e = atom
  	(NULLABLE_SUFFIX {
  			ue = new UnaryExpression(e.LexicalInfo);
  			ue.Operator = UnaryOperatorType.SafeAccess;
  			ue.Operand = e;
  			e = ue;
  		}
  	)?
  ;
  
  protected
  slicing_expression returns [Expression e]
  	{
  		e = null;
  