anchor.diff:  	|	str=STRING { word=str.getText(); word=word.substring( 1, word.length()-1 ); }
   	;
   
  +
  +MISC 	:
  +		'!' | '@' | '$' | '%' | '^' | '&' | '*' | '_' | '-' | '+' | '|' | ',' | '{' | '}' | '[' | ']'
  +	;
   
   WS      :       (	' '
                   |	'\t'
  
positive.code: 
  compilation_unit
  	:	prolog 
  		(r=rule {this.rules.add( r ); })*
  	;
  	
  prolog
  	:	opt_eol
  		( name=package_statement { this.packageName = name; } )?
  		opt_eol
  		( name=import_statement { this.imports.add( name ); } )*
  		opt_eol
  		use_expander?
  		opt_eol
  
negative.code: 	public String getPackageName() { return packageName; }
  	public List getImports() { return imports; }
  	public List getRules() { return rules; }
  */
  }
  
  @lexer::header {
  