anchor.diff:  	: ACTION
   	;
   
  -debug_term
  -	: t:term
  +debug_term[matching]
  +	: t:term[matching]
   		{
               if self.debug:
                   import sys
  
positive.code: 
  alternative
  	: 
  		( predicate )* 	debug_term 	( predicate )* 
  		( INTO ( production )* debug_term ( production )* )?
  		{ ## = #(#[ALTERNATIVE,"ALTERNATIVE"], ##) }
  	;
  
  
negative.code: 		{ ret = l }
  	| #( APPL c=build_term a=build_term )
  		{ ret = "_f.makeAppl(%s,%s)" % (c, a) }
  	| #( t:TRANSF a=build_trnsf_args)
  		{ ret = "self.%s(%s)" % (#t.getText(), a) }
  	| #( tm:TRANSF_MAP ah=build_term at=build_trnsf_args )
  		{ ret = "self._map(%s,self.%s,%s)" % (ah, #tm.getText(), at) }
  	| a:ACTION
  		{ ret = #a.getText() }
  