anchor.diff:  
   // Tokens that can be used as unquoted identifiers, emperically identified
   qname_from_unquoted_token  returns [String name]
  -	: (ACTION | AUTO_INCREMENT | BIT | BOOL | BOOLEAN | BTREE | CHARSET | COMMENT | 
  -	   DATE | DATETIME | ENGINE | ENUM | FIXED | HASH | KEY_BLOCK_SIZE | NO | 
  -	   PARSER SERIAL | SIGNED | TEMPORARY | TEXT | TIME | TIMESTAMP | VALUE | YEAR)
  +	: (ACTION | AUTO_INCREMENT | BIT | BOOL | BOOLEAN | BTREE | CHARSET | COMMENT | DATE | 
  +	   DATETIME | ENGINE | ENUM | FIXED | HASH | KEY_BLOCK_SIZE | NATIONAL | NCHAR | NO | 
  +	   NVARCHAR | PARSER SERIAL | SIGNED | TEMPORARY | TEXT | TIME | TIMESTAMP | VALUE | YEAR)
   	   {$name = tokenNames[input.LA(-1)];}
   	;
   
  
positive.code: 	| TIME {$type = "TIME";}
  	| YEAR {$type = "YEAR";}
  	| (CHAR | CHARACTER) {$type = "CHAR";}
  	| (VARCHAR | (CHAR | CHARACTER) VARYING) {$type = "VARCHAR";}
  	| TINYBLOB {$type = "TINYBLOB";}
  	| BLOB {$type = "BLOB";}
  	| MEDIUMBLOB {$type = "MEDIUMBLOB";}
  
negative.code: LIKE = 'like';
  BOOL = 'bool';
  BOOLEAN = 'boolean';
  NATIONAL = 'national';
  NCHAR = 'nchar';
  NVARCHAR = 'nvarchar';
  }
  
  @header {
  