anchor.diff:  		{ self.argn += 1 }
   	| #( LIST ( post_match_term )* )
   	| #( APPL ( post_match_term )+ )
  -	| #( TRNSF s=id )
  +	| #( TRNSF n=id )
   		{
  -            self.writeln("args[%i] = self.%s(args[%i])" % (self.argn, s, self.argn))
  +            self.writeln("args[%i] = self.%s(args[%i])" % (self.argn, n, self.argn))
  +            self.argn += 1
  +		}
  +	| a:ACTION
  +		{
  +            self.writeln("argn = %s " % self.argn)
  +            self.writeln("args[%i] = %s" % (self.argn, #a.getText()))
               self.argn += 1
   		}
   	;
  
positive.code: 	| UCID ( LPAREN! terms RPAREN! )?
  		{ ## = #(#[APPL,"APPL"], ##) }
  	|
  		( LCID | WILDCARD )
  		( LPAREN! terms RPAREN!
  			{ ## = #(#[APPL,"APPL"], ##) }	
  		)?
  
negative.code: 	| 
  		{ ret = "self.factory.makeNilList()" }
  	;
  
  build_trnsf_args returns [ret]
  	: h=build_term t=build_trnsf_args
  		{ ret = ",%s%s" % (h, t) }
  	| 
  		{ ret = "" }
  	;