anchor.diff:  predicate
   	: ( SEMPRED ) => SEMPRED
   	| ( ACTION ) => ACTION
  -	| term_debug
  +	| debug_term
   	;
   
   production
   	: ( ACTION ) => ACTION
  -	| term_debug
  -	;
  -
  -term_debug
  +	| debug_term
  +	;
  +
  +debug_term
   	: t:term
   		{
               if self.debug:
  
positive.code: 		( (LPAREN) => LPAREN! term_list RPAREN!
  			{ ## = #(#[APPL,"APPL"], ##) }	
  		)?
  	| TRANSF^ opt_args ( STAR^ )?
  	| ACTION^
  	;
  
  
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 = "," }
  		)*
  	;
  