===================================== Using directives ===================================== using A; using B.C; using global::E.F; using G = H.I; using static J.K; --- (compilation_unit (using_directive (identifier)) (using_directive (qualified_name (identifier) (identifier))) (using_directive (qualified_name (alias_qualified_name (global) (identifier)) (identifier))) (using_directive (name_equals (identifier)) (qualified_name (identifier) (identifier))) (using_directive (qualified_name (identifier) (identifier)))) ===================================== Nested using directives ===================================== namespace Foo { using A; } --- (compilation_unit (namespace_declaration (identifier) (declaration_list (using_directive (identifier))))) ===================================== Comments ===================================== // I'm a single-line comment /* * I'm a block comment: a * b / c */ --- (compilation_unit (comment) (comment)) ===================================== Namespaces ===================================== namespace A { namespace B.C.D { } namespace E.F { } } --- (compilation_unit (namespace_declaration (identifier) (declaration_list (namespace_declaration (qualified_name (qualified_name (identifier) (identifier)) (identifier)) (declaration_list)) (namespace_declaration (qualified_name (identifier) (identifier)) (declaration_list))))) ===================================== Interfaces ===================================== public interface IFoo { } --- (compilation_unit (interface_declaration (modifier) (identifier) (declaration_list))) ===================================== Externs ===================================== extern alias A; --- (compilation_unit (extern_alias_directive (identifier))) ===================================== Delegates ===================================== public delegate int Global(ref char a = '\n'); delegate void A() where T:class; delegate void A(params int [] test); class Z { delegate void Zed(); } --- (compilation_unit (delegate_declaration (modifier) (predefined_type) (identifier) (parameter_list (parameter (parameter_modifier) (predefined_type) (identifier) (equals_value_clause (character_literal (escape_sequence)))))) (delegate_declaration (void_keyword) (identifier) (type_parameter_list (type_parameter (identifier))) (parameter_list) (type_parameter_constraints_clause (identifier) (type_parameter_constraint))) (delegate_declaration (void_keyword) (identifier) (parameter_list (parameter_array (array_type (predefined_type) (array_rank_specifier)) (identifier)))) (class_declaration (identifier) (declaration_list (delegate_declaration (void_keyword) (identifier) (parameter_list))))) ===================================== Var declared equal to integer literal ===================================== var a = 1; --- (compilation_unit (field_declaration (variable_declaration (implicit_type) (variable_declarator (identifier) (equals_value_clause (integer_literal))))))