anchor.diff:  	| BIT {$type = "BIT";}
   	| BINARY {$type = "BINARY";}
   	| VARBINARY {$type = "VARBINARY";}
  +	| SERIAL {$type = "SERIAL";}
   	;
   	
   numeric_data_type returns [String type]
  
positive.code: 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 | NATIONAL | NCHAR | NO | 
  	   NVARCHAR | PARSER SERIAL | SIGNED | TEMPORARY | TEXT | TIME | TIMESTAMP | VALUE | YEAR)
  	   {$name = tokenNames[input.LA(-1)];}
  	;
  
  
negative.code: 	  (decimal_constraint {$len1 = $decimal_constraint.len1; $len2 = $decimal_constraint.len2;})? 
  	  (SIGNED | UNSIGNED {$type=$type + " UNSIGNED";})?
  	| enum_or_set_data_type {$type = $enum_or_set_data_type.type; $len1 = $enum_or_set_data_type.len1;}
  	| spatial_data_type {$type = $spatial_data_type.type;}
  	;
  
  data_type returns [String type]
  