anchor.diff:  
   // Without this a semicolon after end causes really unhelpful error messages
   End      : 'end'
  -         | 'end' {wibble("Unexpected semicolon", input, null, true)}? SColon
  +         | 'end' {error("Unexpected semicolon", input, null, true)}? SColon
            ;
   
   In       : 'in';
  
positive.code:       super.reportError(e);
    }
    
    public void wibble(String error, IntStream input, Token t) throws ReflexRecognitionException {	
      CommonToken ct = (CommonToken) t;
  	int length = ct.getStopIndex() - ct.getStartIndex() +1;
  	int start = ct.getCharPositionInLine();
  
negative.code: 
  comparator 
    : Is (Equals | NEquals | GTEquals | LTEquals | GT | LT) expression
    | Is Assign { error("Assignment found where comparator expected", input, $Is); } expression 
    | Is (Or | And | Excl | Add | Subtract | Multiply | Divide | Modulus) { error("Comparator expected", input, $Is); } expression 
    ;
  
  // SWITCH requires constants as case values
  