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

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

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

(compilation_unit
  (class_declaration
    (identifier)
    (declaration_list
      (event_declaration
        (modifier)
        (generic_name
          (identifier)
          (type_argument_list
            (identifier)))
        (identifier)
        (accessor_list
          (accessor_declaration
            (block))
          (accessor_declaration
            (block)))))))

================================================================================
Struct event declarations
================================================================================

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

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

(compilation_unit
  (struct_declaration
    (identifier)
    (declaration_list
      (event_declaration
        (modifier)
        (generic_name
          (identifier)
          (type_argument_list
            (identifier)))
        (identifier)
        (accessor_list
          (accessor_declaration
            (block))
          (accessor_declaration
            (block)))))))

================================================================================
Class event declarations with expression bodies
================================================================================

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

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

(compilation_unit
  (class_declaration
    (identifier)
    (declaration_list
      (event_declaration
        (modifier)
        (identifier)
        (identifier)
        (accessor_list
          (accessor_declaration
            (arrow_expression_clause
              (invocation_expression
                (identifier)
                (argument_list))))
          (accessor_declaration
            (arrow_expression_clause
              (invocation_expression
                (identifier)
                (argument_list)))))))))
