anchor.diff:  	;
   	
   package_statement
  -	:	'package' ID ( '.' ID )* ';'?	
  +	:	'package' id=ID { packageName = id.getText(); } ( '.' id=ID { packageName += "." + id.getText(); } )* ';'?	
   	;
   	
   import_statement
  
positive.code: 	;
  	
  	
  lhs	
  	: lhs_or
  	;
  
  	
  lhs_column
  	:	fact_binding
  	|	fact
  	;
   	
  fact_binding
   	:
   		ID '=>' fact
   	;
   
  fact
   	:	ID '(' constraints? ')'
   	;
   	
  	
  constraints
  	:	constraint ( ',' constraint )*
  	;
  	
  constraint
  	:	ID	(	'=='
  			|	'>'
  			|	'>='
  			|	'<'
  			|	'<='
  			|	'!='
  			)	(	literal_constraint
  				|	retval_constraint )
  	;
  	
  literal_constraint
  	:	STRING
  	|	INT
  	|	FLOAT	
  	;
  	
  retval_constraint
  	:
  	;
  	
  
negative.code: 
  
  rule
  	:
  		'rule' ruleName=word 
  		{ rule = new RuleDescr( packageName + "." + ruleName, null ); }
  		rule_options?
  		'when' ':'?
  		{ AndDescr lhs = new AndDescr(); rule.setLhs( lhs ); }
  			(l=lhs { rootLhs.addConfiguration( l ); } )*
  		'then' ':'?
  		{ rule.setRhs( null ); }
  		'end' 
  	;
  
  rule_options
  