anchor.diff:      : 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;
  
positive.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;}
  	| SERIAL {$type = "SERIAL";}
  	;
  
  data_type returns [String type]
  
negative.code: NATIONAL = 'national';
  NCHAR = 'nchar';
  NVARCHAR = 'nvarchar';
  GEOMETRY = 'geometry';
  GEOMETRYCOLLECTION = 'geometrycollection';
  POINT = 'point';
  MULTIPOINT  = 'multipoint';
  LINESTRING = 'linestring';
  MULTILINESTRING = 'multilinestring';
  POLYGON = 'polygon';
  MULTIPOLYGON = 'multipolygon';
  }
  
  @header {
  