anchor.diff:      ;
   
   createDefinition_
  -    : columnDefinition | constraintDefinition | indexDefinition_ | checkConstraintDefinition_
  +    : columnDefinition | constraintDefinition_ | indexDefinition_ | checkConstraintDefinition_
       ;
   
   columnDefinition
  -    : columnName dataType (dataTypeOption_* | dataTypeGenerated_?)
  +    : columnName dataType (inlineDataType_* | generatedDataType_*)
       ;
   
   dataType
  
positive.code:     : COLLATE EQ_? (STRING_ | ignoredIdentifier_)
      ;
  
  dataTypeOption_
      : dataTypeGeneratedOption_
      | DEFAULT? defaultValue_
      | AUTO_INCREMENT
      | COLUMN_FORMAT (FIXED | DYNAMIC | DEFAULT)
      | STORAGE (DISK | MEMORY | DEFAULT)
      | referenceDefinition_
      ;
  
  dataTypeGeneratedOption_
      : NULL | NOT NULL | UNIQUE KEY? | primaryKey | COMMENT STRING_
      ;
  
  dataTypeGenerated_
      : (GENERATED ALWAYS)? AS expr (VIRTUAL | STORED)? dataTypeGeneratedOption_*
      ;
  
  defaultValue_
      : NULL | NUMBER_ | STRING_ | currentTimestampType_ (ON UPDATE currentTimestampType_)? | ON UPDATE currentTimestampType_
      ;
  
  currentTimestampType_
      : (CURRENT_TIMESTAMP | LOCALTIME | LOCALTIMESTAMP | NOW | NUMBER_) dataTypeLength?
      ;
  
  referenceDefinition_
      : REFERENCES tableName keyParts_ (MATCH FULL | MATCH PARTIAL | MATCH SIMPLE)? referenceType_*
      ;
  
  referenceType_
      : ON (UPDATE | DELETE) referenceOption_
      ;
  
  referenceOption_
      : RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
      ;
  
  constraintDefinition
      : (CONSTRAINT ignoredIdentifier_?)? (primaryKeyOption_ | uniqueOption_ | foreignKeyOption_)
      ;
  
  
negative.code:     ;
  
  addConstraint
      : ADD constraintDefinition_
      ;
  
  addIndex
  