anchor.diff:  
   
   ipv6_address:
  -        IPV6_ADDR
  -	;
  -
  -endpoint_for_clause:
  -     FOR SERVICE_BROKER LR_BRACKET endpoint_server_broker_clause RR_BRACKET
  -     |FOR DATABASE_MIRRORING LR_BRACKET endpoint_database_mirroring_clause RR_BRACKET
  +   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_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
  -        |AUTHENTICATION EQUAL endpoint_authentication_clause_methods
  -	;
  -
  -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
  -	|ENCRYPTION EQUAL DISABLED
  -	|ENCRYPTION EQUAL ( SUPPORTED | REQUIRED )  endpoint_encryption_algorithm?
  -	;
  -
  -endpoint_encryption_algorithm: ALGORITHM ( AES | RC4 | AES RC4 | RC4 AES )
  -	; 
  +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
  -	;
  +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)
  -	;
  +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
  
positive.code: //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_for_sql_database
      : ALTER AUTHORIZATION ON (class_type_for_sql_database COLON COLON)? entity=entity_name TO ( principal_name=id | SCHEMA OWNER)
      ; 
  
  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_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)
      ; 
  
  class_type
      : OBJECT 
  
negative.code:     | STRING
      ;
  
  assembly_option
      : PERMISSION_SET EQUAL (SAFE|EXTERNAL_ACCESS|UNSAFE)
      | VISIBILITY EQUAL (ON | OFF)
      | UNCHECKED DATA
      | assembly_option COMMA
      ;    
  
  network_file_share
      : network_file_start network_computer file_path
      ;
   
  network_computer
      : computer_name=id
      ;
  
  network_file_start
      : DOUBLE_BACK_SLASH
      ;
  
  file_path
      : file_directory_path_separator file_path
      | id
      ;
  
  file_directory_path_separator
      : '\\'
      ;
  
  local_file
      : local_drive file_path
      ;
  
  local_drive
      :
      DISK_DRIVE
      ;
  multiple_local_files
      :
      multiple_local_file_start local_file SINGLE_QUOTE COMMA
      | local_file
      ;
  
  multiple_local_file_start
      : SINGLE_QUOTE 
      ;
  
  //https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-asymmetric-key-transact-sql
  
  alter_asymmetric_key
      :
      alter_asymmetric_key_start Asym_Key_Name=id (asymmetric_key_option | REMOVE PRIVATE KEY )
      ;
  
  alter_asymmetric_key_start
      : ALTER ASYMMETRIC KEY
      ;
  
  asymmetric_key_option
      : asymmetric_key_option_start asymmetric_key_password_change_option ( COMMA asymmetric_key_password_change_option)? RR_BRACKET
      ;
  
  asymmetric_key_option_start
      : WITH PRIVATE KEY LR_BRACKET
      ;
  
  asymmetric_key_password_change_option
  