anchor.diff:      | STORAGE (DISK | MEMORY | DEFAULT)
       ;
   
  +commonDataTypeOption_
  +    : primaryKey | UNIQUE KEY? | NOT? NULL | collateName_ | checkConstraintDefinition_ | referenceDefinition_ | COMMENT STRING_
  +    ;
  +
  +checkConstraintDefinition_
  +    : (CONSTRAINT ignoredIdentifier_?)? CHECK expr (NOT? ENFORCED)?
  +    ;
  +
  +referenceDefinition_
  +    : REFERENCES tableName keyParts_ (MATCH FULL | MATCH PARTIAL | MATCH SIMPLE)? (ON (UPDATE | DELETE) referenceOption_)*
  +    ;
  +
  +referenceOption_
  +    : RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
  +    ;
  +
   generatedDataType_
       : commonDataTypeOption_
       | (GENERATED ALWAYS)? AS expr
       | (VIRTUAL | STORED)
       ;
   
  -commonDataTypeOption_
  -    : primaryKey | UNIQUE KEY? | NOT? NULL | collateName_ | checkConstraintDefinition_ | referenceDefinition_ | COMMENT STRING_
  -    ;
  -
  -referenceDefinition_
  -    : REFERENCES tableName keyParts_ (MATCH FULL | MATCH PARTIAL | MATCH SIMPLE)? (ON (UPDATE | DELETE) referenceOption_)*
  -    ;
  -
  -referenceOption_
  -    : RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
  -    ;
  -
   indexType_
       : USING (BTREE | HASH)
       ;
  
positive.code:     : LP_ createDefinitions_ RP_
      ;
  
  createLikeClause_
      : LP_? LIKE tableName RP_?
      ;
  
  createDefinitions_
      : createDefinition_ (COMMA_ createDefinition_)*
      ;
  
negative.code: 
  constraintDefinition_
      : (CONSTRAINT ignoredIdentifier_?)? (primaryKeyOption_ | uniqueOption_ | foreignKeyOption_)
      ;
  
  inlineDataType_
  