anchor.diff:  		( (LPAREN) => LPAREN! term_list RPAREN!
   			{ ## = #(#[APPL,"APPL"], ##) }	
   		)?
  -	| TRANSF^ opt_args ( STAR^ )?
  +	| TRANSF^ 
  +		( ( LPAREN ) => LPAREN! ( term ( COMMA! term )* )? RPAREN! )?
  +		( STAR^ )?
   	| ACTION^
   	;
   
  
positive.code: predicate
  	: ( SEMPRED ) => SEMPRED
  	| ( ACTION ) => ACTION
  	| term_debug
  	;
  
  production
  	: ( ACTION ) => ACTION
  	| term_debug
  	;
  
  term_debug
  	: t:term
  		{
              if self.debug:
  
negative.code: 		{ ret = "_f.makeNilList()" }
  	| #( COMMA h=build_term t=build_term )
  		{ ret = "_f.makeConsList(%s,%s)" % (h, t) }
      | #( STAR #( t2:TRANSF ah=build_term at=build_trnsf_args ) )
  		{ ret = "self.map(%s,self.%s,%s)" % (ah, #t2.getText(), at) }
  	;
  
  build_trnsf_args returns [ret]
  	:
  		{ ret = "" } { sep = "" }
  	 	( t=build_term
  		{ ret += sep + t } { sep = "," }
  		)*
  	;
  