anchor.diff:  //https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-authorization-transact-sql
   
   alter_authorization
  -    : ALTER AUTHORIZATION ON (class_type COLON COLON)? entity=entity_name TO ( principal_name=id | SCHEMA OWNER)
  +    : alter_authorization_start (class_type colon_colon)? entity=entity_name entity_to authorization_grantee
       ; 
   
  +authorization_grantee
  +    : principal_name=id
  +    | SCHEMA OWNER
  +    ;
  +
  +entity_to
  +    : TO
  +    ;
  +
  +colon_colon
  +    : COLON COLON
  +    ;
  +
  +alter_authorization_start
  +    : ALTER AUTHORIZATION ON 
  +    ;
  +
   alter_authorization_for_sql_database
  -    : ALTER AUTHORIZATION ON (class_type_for_sql_database COLON COLON)? entity=entity_name TO ( principal_name=id | SCHEMA OWNER)
  +    : alter_authorization_start (class_type_for_sql_database colon_colon)? entity=entity_name entity_to authorization_grantee
       ; 
   
   alter_authorization_for_azure_dw
  -    : ALTER AUTHORIZATION ON (class_type_for_sql_database COLON COLON)? entity=entity_name_for_azure_dw TO ( principal_name=id | SCHEMA OWNER)
  +    : alter_authorization_start (class_type_for_azure_dw colon_colon)? entity=entity_name_for_azure_dw entity_to authorization_grantee
       ; 
   
   alter_authorization_for_parallel_dw
  -    : ALTER AUTHORIZATION ON (class_type_for_sql_database COLON COLON)? entity=entity_name_for_parallel_dw TO ( principal_name=id | SCHEMA OWNER)
  +    : alter_authorization_start (class_type_for_parallel_dw colon_colon)? entity=entity_name_for_parallel_dw entity_to authorization_grantee
       ; 
  +
   
   class_type
       : OBJECT 
  
positive.code:     | STRING
      ;
  
  //Need to implement assembly_bits still
  assembly_bits:
      ;
  
  assembly_option
      : PERMISSION_SET EQUAL (SAFE|EXTERNAL_ACCESS|UNSAFE)
      | VISIBILITY EQUAL (ON | OFF)
      | UNCHECKED DATA
      | COMMA assembly_option
      ;    
  
  network_file_share
      : DOUBLE_BACK_SLASH computer_name=id file_path
      ;
  
  file_path
      : '\\' file_path
      | id
      ;
  
  local_file
      : DISK_DRIVE file_path
      ;
  
  multiple_local_files
      :
      COMMA SINGLE_QUOTE local_file SINGLE_QUOTE
      | local_file
      ;
  
  //https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-asymmetric-key-transact-sql
  
  alter_asymmetric_key
      :
      ALTER ASYMMETRIC KEY Asym_Key_Name=id alter_asymmetric_key_option
      ;
  
  alter_asymmetric_key_option
      : asymmetric_key_option 
      | REMOVE PRIVATE KEY ;
  
  asymmetric_key_option
      : WITH PRIVATE KEY LR_BRACKET asymmetric_key_password_change_option ( COMMA asymmetric_key_password_change_option)? RR_BRACKET
      ;
  
  asymmetric_key_password_change_option
  
negative.code: 
  
  ipv6_address:
     IPV6_ADDR
     ;
  
  endpoint_for_clause
     : endpoint_for_service_broker_clause_start endpoint_server_broker_clause RR_BRACKET
     | endpoint_for_database_mirroring_start endpoint_database_mirroring_clause RR_BRACKET
  ;
  
  endpoint_for_service_broker_clause_start
     : FOR SERVICE_BROKER LR_BRACKET 
     ;
  
  endpoint_for_database_mirroring_start
     : FOR DATABASE_MIRRORING LR_BRACKET
     ;
  
  endpoint_database_mirroring_clause
     : endpoint_authentication_clause? endpoint_encryption_clause endpoint_role_clause 
     ;
  
  endpoint_role_clause
     :
     endpoint_role_clause  COMMA
     |ROLE EQUAL ( WITNESS | PARTNER | ALL )
     ;
  
  
  endpoint_server_broker_clause
     : endpoint_authentication_clause endpoint_encryption_clause? endpoint_message_forwarding_clause? endpoint_message_forward_size?
     ;
  
  endpoint_authentication_clause
     : endpoint_authentication_clause COMMA
     | endpoint_authentication_clause_start endpoint_authentication_clause_methods
     ;
  
  endpoint_authentication_clause_start
     : AUTHENTICATION EQUAL
     ;
  
  endpoint_authentication_clause_methods
     :
      WINDOWS windows_auth_methods
     | CERTIFICATE cert_name=id 
     | WINDOWS windows_auth_methods
     | CERTIFICATE cert_name=id WINDOWS windows_auth_methods
     ;
  
  windows_auth_methods
     : ( NTLM |KERBEROS | NEGOTIATE )
     ;
  
  endpoint_encryption_clause
     : endpoint_encryption_clause COMMA
     | endpoint_encryption_equal 
     ;
  
  endpoint_encryption_equal
     : ENCRYPTION EQUAL DISABLED
     | ENCRYPTION EQUAL ( SUPPORTED | REQUIRED )
     ;
  
  	
  endpoint_message_forwarding_clause
     : endpoint_message_forwarding_clause COMMA
     | MESSAGE_FORWARDING EQUAL ( ENABLED | DISABLED )
     ;
  
  endpoint_message_forward_size
     : MESSAGE_FORWARD_SIZE EQUAL DECIMAL
     ;
  
  /* Will visit later
  */
  database_mirroring_option
     : mirroring_set_option
     ;
  
  mirroring_set_option
     : PARTNER  partner_option 
     | WITNESS  witness_option 
     ;
  
  partner_option
     : EQUAL partner_server
     | FAILOVER
     | FORCE_SERVICE_ALLOW_DATA_LOSS
     | OFF
     | RESUME
     | SAFETY (FULL | OFF )
     | SUSPEND
     | TIMEOUT DECIMAL
  ;
  
  witness_option
     : EQUAL witness_server
     | OFF
  ;
  
  witness_server
     : partner_server
     ;
  
  partner_server
     :
     TCP COLON DOUBLE_FORWARD_SLASH host COLON port_number
     ;
  
  port_number
     :
     port=DECIMAL
     ;
  
  host
     : id DOT host
     | (id DOT |id)
     ;
  
  date_correlation_optimization_option:
      DATE_CORRELATION_OPTIMIZATION on_off
  