anchor.diff:  
   // GRAMMAR OF A DECLARATION
   
  -declaration : import_declaration
  +declaration
  + : import_declaration
    | constant_declaration
    | variable_declaration
    | typealias_declaration
  
positive.code: attribute : '@' attribute_name attribute_argument_clause? ;
  attribute_name : identifier  ;
  attribute_argument_clause : '('  balanced_tokens?  ')'  ;
  attributes : attribute attributes? ;
  balanced_tokens : balanced_token balanced_tokens? ;
  balanced_token : '('  balanced_tokens? ')'
   | '[' balanced_tokens?']'
   | '{' balanced_tokens?'}'
   | identifier | expression | context_sensitive_keyword | literal | Operator
  // | Any punctuation except ( ,  ')' , '[' , ']' , { , or }
   ;
  
negative.code:  | '\\U' Hexadecimal_digit Hexadecimal_digit Hexadecimal_digit Hexadecimal_digit Hexadecimal_digit Hexadecimal_digit Hexadecimal_digit Hexadecimal_digit
  ;
  
  WS : [ \n\r\t\u000B\u000C\u0000]+ -> channel(HIDDEN) ;
  
  Block_comment : '/*' (Block_comment|.)*? '*/' -> channel(HIDDEN) ; // nesting allow
  
  Line_comment : '//' .*? '\n' -> channel(HIDDEN) ;