anchor.diff:  fragment SCI_EXP : ('e' | 'E') ('+' | '-')? DIGIT+;
   fragment FP_NUMBER : (DIGIT+ '.' DIGIT*) | ('.' DIGIT+) SCI_EXP;
   NUMBER : (HEX_NUMBER | FP_NUMBER) ('i' | 'I' | 'j' | 'J')?;
  - 
  -//TODO-AC: handle transpose properly
  -fragment STRING_CHAR : ~('\'' | '\r' | '\n') | '\'\'';
  -STRING : '\'' STRING_CHAR* '\'';
   
   PLUS : '+';
   MINUS : '-';
  
positive.code: RCURLY : '}';
  LSQUARE : '[';
  RSQUARE : ']';
  
  fragment BRACKET_COMMENT_FILLER : ~'%' | '%' ~('{' | '}');
  BRACKET_COMMENT : '%{' BRACKET_COMMENT_FILLER* (BRACKET_COMMENT BRACKET_COMMENT_FILLER*)* '%}'; //TODO-AC: test this
  
negative.code: 
  @lexer::header {
  package matlab;
  }
  
  @lexer::members {
  private static boolean isPreTransposeChar(int ch) {
      switch(ch) {
      case ')':
      case '}':
      case ']':
      case '_': //at the end of an identifier
      case '\'': //at the end of a transpose 
                 //NB: if this was at the end of a string, it would have been an escape instead of a close quote
          return true;
      default:
          return Character.isLetterOrDigit(ch); //at the end of an identifier
      }
  }
  }
  
  array :
  