=================================== If, elif and else directives =================================== #if WIN32 string os = "Win32"; #elif MACOS string os = "MacOS"; #else string os = "Unknown"; #endif --- (compilation_unit (preprocessor_call (preprocessor_directive) (identifier)) (field_declaration (variable_declaration (predefined_type) (variable_declarator (identifier) (equals_value_clause (string_literal))))) (preprocessor_call (preprocessor_directive) (identifier)) (field_declaration (variable_declaration (predefined_type) (variable_declarator (identifier) (equals_value_clause (string_literal))))) (preprocessor_call (preprocessor_directive)) (field_declaration (variable_declaration (predefined_type) (variable_declarator (identifier) (equals_value_clause (string_literal))))) (preprocessor_call (preprocessor_directive))) =========================== Region directives =========================== #region Here, there, everywhere // something fast #endregion --- (compilation_unit (preprocessor_call (preprocessor_directive) (identifier) (identifier) (identifier)) (comment) (preprocessor_call (preprocessor_directive))) =================================== Define and undefine directives =================================== #define SOMETHING #undef BAD --- (compilation_unit (preprocessor_call (preprocessor_directive) (identifier)) (preprocessor_call (preprocessor_directive) (identifier))) =================================== Warning and error directives =================================== class Of1879 { #warning This class is bad. #error Okay, just stop. } --- (compilation_unit (class_declaration (identifier) (declaration_list (preprocessor_call (preprocessor_directive) (identifier) (identifier) (identifier) (identifier)) (preprocessor_call (preprocessor_directive) (identifier) (identifier) (identifier))))) =================================== Line directives =================================== class Of1879 { void AMethod() { #line 2001 "A Space" #line hidden #line default } } --- (compilation_unit (class_declaration (identifier) (declaration_list (method_declaration (void_keyword) (identifier) (parameter_list) (block (preprocessor_call (preprocessor_directive) (integer_literal) (string_literal)) (preprocessor_call (preprocessor_directive) (identifier)) (preprocessor_call (preprocessor_directive) (identifier)))))))