anchor.diff:                                }
                                 ;
                                 
  -parameterList
  -returns [StringBuilder text]
  -@init {
  -    StringBuilder t = new StringBuilder();
  -    String sep = _SPACE;
  +parameterList[StringBuilder parent]
  +returns [StringBuilder text]
  +@init {
  +    StringBuilder t = new StringBuilder();
  +    List<String> params = new ArrayList<String>();
  +    String sep = "";
       String end = _RPAREN;
  -    t.append( _LPAREN );
  -}
  -@after {
  +    t.append( _LPAREN + _SPACE );
  +    int len = t.length();
  +    if ( parent != null ) {
  +        int last_nl = parent.lastIndexOf( _NEWLINE );
  +        if ( last_nl == -1 ) {
  +            len += parent.length();
  +        }
  +        else {
  +            len += parent.substring( last_nl+1 ).length();
  +        }
  +    }
  +}
  +@after {
  +    for ( String s : params ) {
  +        t.append( sep + s );
  +        if ( params.size() > parameterWrap ) sep = _COMMA + _NEWLINE + getSpace(len);
  +        else sep = _COMMA + _SPACE;
  +        end = _SPACE + _RPAREN;
  +    }
       t.append( end );
       $text = t;
   }
   
                                 : ( parameterDefinition       
                                 {
  -                                  t.append( sep + getText( $parameterDefinition.text ) );
  -                                  sep = _COMMA + _SPACE;
  -                                  end = _SPACE + _RPAREN;
  +                                  params.add( getText( $parameterDefinition.text ) );
                                 }
                                  )*
                                 ;
  
positive.code:                                        t.append( _SPACE );
                                         t.append( getText( $serviceName.text ) );
                                         t.append( _SPACE );
                                         t.append( getText( $parameterList.text ) );
                                     }
                                     (returnType
  
negative.code:                                    INSTANCE?
                                     fullObjectReference
                                     serviceName
                                     parameterList[null]
                                     returnType?
                                     codeBlock
                                     pragmaList
  