================================================================================
Class event declarations
================================================================================

class A {
  public event EventHandler<T> SomeEvent { add { } remove { } }
}

struct A {
  public event EventHandler<T> SomeEvent { add { } remove { } }
}

class A {
  public event EventHandler SomeEvent { add => addSomething(); remove => removeSomething(); }
}

--------------------------------------------------------------------------------

(compilation_unit
  (class_declaration
    name: (identifier)
    body: (declaration_list
      (event_declaration
        (modifier)
        type: (generic_name
          (identifier)
          (type_argument_list
            (identifier)))
        name: (identifier)
        accessors: (accessor_list
          (accessor_declaration
            body: (block))
          (accessor_declaration
            body: (block))))))
  (struct_declaration
    name: (identifier)
    body: (declaration_list
      (event_declaration
        (modifier)
        type: (generic_name
          (identifier)
          (type_argument_list
            (identifier)))
        name: (identifier)
        accessors: (accessor_list
          (accessor_declaration
            body: (block))
          (accessor_declaration
            body: (block))))))
  (class_declaration
    name: (identifier)
    body: (declaration_list
      (event_declaration
        (modifier)
        type: (identifier)
        name: (identifier)
        accessors: (accessor_list
          (accessor_declaration
            body: (arrow_expression_clause
              (invocation_expression
                function: (identifier)
                arguments: (argument_list))))
          (accessor_declaration
            body: (arrow_expression_clause
              (invocation_expression
                function: (identifier)
                arguments: (argument_list)))))))))
