anchor.diff:  NATIONAL = 'national';
   NCHAR = 'nchar';
   NVARCHAR = 'nvarchar';
  +GEOMETRY = 'geometry';
  +GEOMETRYCOLLECTION = 'geometrycollection';
  +POINT = 'point';
  +MULTIPOINT  = 'multipoint';
  +LINESTRING = 'linestring';
  +MULTILINESTRING = 'multilinestring';
  +POLYGON = 'polygon';
  +MULTIPOLYGON = 'multipolygon';
   }
   
   @header {
  
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:     : ENUM {$type = "ENUM";} (eset_constraint {$len1 = Integer.toString($eset_constraint.count);})
      | SET {$type = "SET";} (eset_constraint {$len1 = Integer.toString($eset_constraint.count);})
      ;
  
  spatial_data_type returns [String type]
  	: GEOMETRY {$type = "GEOMETRY";}
  	| GEOMETRYCOLLECTION {$type = "GEOMETRYCOLLECTION";}
  	| POINT {$type = "POINT";}
  	| MULTIPOINT  {$type = "MULTIPOINT";}
  	| LINESTRING {$type = "LINESTRING";}
  	| MULTILINESTRING {$type = "MULTILINESTRING";}
  	| POLYGON {$type = "POLYGON";}
  	| MULTIPOLYGON {$type = "MULTIPOLYGON";}
  	;
  
  length_constraint returns [String len1]
  	: LEFT_PAREN NUMBER {$len1 = $NUMBER.text;} RIGHT_PAREN;
  