anchor.diff:      | 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
  +    | assembly_option COMMA
       ;    
   
   network_file_share
  -    : DOUBLE_BACK_SLASH computer_name=id file_path
  +    : network_file_start network_computer file_path
  +    ;
  + 
  +network_computer
  +    : computer_name=id
  +    ;
  +
  +network_file_start
  +    : DOUBLE_BACK_SLASH
       ;
   
   file_path
  -    : '\\' file_path
  +    : file_directory_path_separator file_path
       | id
       ;
   
  +file_directory_path_separator
  +    : '\\'
  +    ;
  +
   local_file
  -    : DISK_DRIVE file_path
  -    ;
  -
  +    : local_drive file_path
  +    ;
  +
  +local_drive
  +    :
  +    DISK_DRIVE
  +    ;
   multiple_local_files
       :
  -    COMMA SINGLE_QUOTE local_file SINGLE_QUOTE
  +    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 Asym_Key_Name=id alter_asymmetric_key_option
  -    ;
  -
  -alter_asymmetric_key_option
  -    : asymmetric_key_option 
  -    | REMOVE PRIVATE 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
  -    : WITH PRIVATE KEY LR_BRACKET asymmetric_key_password_change_option ( COMMA asymmetric_key_password_change_option)? RR_BRACKET
  +    : 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
  
positive.code: //https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-application-role-transact-sql
  
  alter_application_role
      : ALTER APPLICATION ROLE application_role=id  alter_application_role_with_clause
      ;
  
  alter_application_role_with_clause
      :WITH
         (NAME EQUAL new_application_role_name=id COMMA?)
         (PASSWORD EQUAL  application_role_password=STRING COMMA?)?
         (DEFAULT_SCHEMA  EQUAL app_role_default_schema=id COMMA?)?
      ;
  
  alter_assembly
      : ALTER ASSEMBLY assembly_name=id alter_assembly_clause 
      ;
  
  alter_assembly_clause
  
negative.code:     ;
  
  alter_assembly_from_clause
      : alter_assembly_from_clause_start (client_assembly_specifier | alter_assembly_file_bits )
      ;
  
  alter_assembly_from_clause_start
      : FROM
      ;
  
  alter_assembly_drop_clause
      : alter_assembly_drop alter_assembly_drop_multiple_files
      ;
  
  alter_assembly_drop_multiple_files
      : ALL
      | multiple_local_files
      ;
  
  alter_assembly_drop
      : DROP
      ;
  
  alter_assembly_add_clause
      : alter_asssembly_add_clause_start alter_assembly_client_file_clause 
      ;
  
  alter_asssembly_add_clause_start
      : ADD FILE FROM
      ;
     
  
  alter_assembly_add_files
      : alter_assembly_client_file_clause 
      | alter_assembly_add_files COMMA
      ;
  
  // need to implement
  alter_assembly_client_file_clause
      :  alter_assembly_file_name (alter_assembly_as id)?
      ;
  
  alter_assembly_file_name
      : STRING
      ;
  
  //need to implement
  alter_assembly_file_bits
      : alter_assembly_as id
      ;
  
  alter_assembly_as
      : AS
      ;
  
  alter_assembly_with_clause
      : alter_assembly_with assembly_option
      ;
  
  alter_assembly_with
      : WITH
      ;
  
  client_assembly_specifier
  