anchor.diff:        { $positionalArgumentList = new PositionalArgumentList($LPAREN); }
         (
           sa=sequencedArgument
  -        { if ($sa.sequencedArgument!=null) 
  +        { if ($sa.sequencedArgument!=null) {
                 for (PositionalArgument pa: $sa.sequencedArgument.getPositionalArguments())
  -                  $positionalArgumentList.addPositionalArgument(pa); }
  +                  $positionalArgumentList.addPositionalArgument(pa); 
  +              $positionalArgumentList.setEndToken($sa.sequencedArgument.getEndToken()); } }
         )?
         RPAREN
         { $positionalArgumentList.setEndToken($RPAREN); }
  
positive.code:           { $sequencedArgument.setEndToken($c); }
            (
              pa2=positionalArgument
              { if ($pa2.positionalArgument!=null)
                    $sequencedArgument.addPositionalArgument($pa2.positionalArgument); 
                sequencedArgument.setEndToken(null); }
            |
              sa2=spreadArgument
              { if ($sa2.positionalArgument!=null)
                    $sequencedArgument.addPositionalArgument($sa2.positionalArgument); 
                sequencedArgument.setEndToken(null); }
            |
              c2=comprehension
              { if ($c2.comprehension!=null)
                  $sequencedArgument.addPositionalArgument($c2.comprehension);
                sequencedArgument.setEndToken(null); }
            |
              { displayRecognitionError(getTokenNames(), 
                  new MismatchedTokenException(LIDENTIFIER, input)); }
  
negative.code:         { $expressionList.setEndToken($c); }
          (
            e2=expression 
            { if ($e2.expression!=null) {
                  $expressionList.addExpression($e2.expression);
                  $expressionList.setEndToken(null); } }
          | { displayRecognitionError(getTokenNames(), 
                new MismatchedTokenException(LIDENTIFIER, input)); } //TODO: sometimes it should be RPAREN!
          )
  