======================================= Class event declarations ======================================= class A { public event EventHandler 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 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)))))))))