anchor.diff:  id
   	: CONS
   	| VAR
  -	| TRANSF
   	;
   
   
  
positive.code: 	;
  
  alternative
  	: ( predicate )* ( INTO ( production )* )?
  		{ ## = #(#[ALTERNATIVE,"ALTERNATIVE"], ##) }
  	;
  
  predicate
  	: ( SEMPRED ) => SEMPRED
  	| ( ACTION ) => ACTION
  	| debug_term
  	;
  
  production
  	: ( ACTION ) => ACTION
  	| debug_term
  	;
  
  debug_term
  
negative.code: 		{ ret = "_f.parse(%r)" % #s.getText() }
  	| c:CONS 
  		{ ret = "_f.makeStr(%r)" % #c.getText() }
  	| v:VAR // p=build_term
  //		{ ret = "_f.makeVar(%r,%s)" % (#v.getText(), p) }
  		{ ret = "_k[%r]" % #v.getText() }
  	| w:WILDCARD 
  //		{ ret = "_f.makeWildcard()" }
  