anchor.diff:      ;
   
   dataType
  -    : typeName dataTypeLength?
  -    | specialDatatype
  -    | typeName dataTypeLength? datetimeTypeSuffix
  +    : typeName dataTypeLength? | specialDatatype | typeName dataTypeLength? datetimeTypeSuffix
       ;
   
   typeName
  -    : DOUBLE PRECISION
  -    | INTERVAL YEAR
  -    | INTERVAL DAY
  -    | ID
  +    : DOUBLE PRECISION | INTERVAL YEAR | INTERVAL DAY | ID
       ;
   
   specialDatatype
  -    : typeName (LP_ NUMBER ID  RP_)
  -    | NATIONAL typeName (VARYING)? LP_ NUMBER RP_ 
  -    | typeName LP_? columnName  RP_?
  +    : typeName (LP_ NUMBER ID  RP_) | NATIONAL typeName VARYING? LP_ NUMBER RP_  | typeName LP_? columnName  RP_?
       ;
   
   datetimeTypeSuffix
  -    : (WITH LOCAL? TIME ZONE)?
  -    | TO MONTH
  -    | TO SECOND (LP_ NUMBER RP_)?
  +    : (WITH LOCAL? TIME ZONE)? | TO MONTH | TO SECOND (LP_ NUMBER RP_)?
       ;
   
   columnSortClause
  -    : tableAndAlias columnName
  -    (ASC | DESC)?
  +    : tableAndAlias columnName (ASC | DESC)?
       ;
   
   tableAndAlias
  
positive.code:     ;
  
  privateExprOfDb
      : treatFunction
      | caseExpr
      | intervalExpression
      | objectAccessExpression
      | constructorExpr
      ;
  
  treatFunction
  
negative.code:     ;
  
  caseExpr
      : CASE (simpleCaseExpr | searchedCaseExpr) elseClause? END
      ;
  
  simpleCaseExpr
      : expr searchedCaseExpr+
      ;
  
  searchedCaseExpr
  