[
 (program) {
  (stmt_list) {
   (stmt_list) {
    (stmt_list) {
     (stmt_or_defined_macro) {
      (class_or_union_or_struct) {
       (identified_type_meta_specifier_with_template_def) {
        class
        A
       }
       (structure_body) {
        {
        (stmt_or_visibility_spec_list) {
         (constructor) {
          A
          (args_list) {
           (
           )
          }
          (function_body) {
           ;
          }
         }
         (destructor) {
          ~
          A
          (args_list) {
           (
           )
          }
          (function_body) {
           ;
          }
         }
        }
        }
       }
       ;
      }
     }
    }
    (constructor) {
     (outer_constructor_name) {
      (namespace_resolve) {
       A
       ::
      }
      A
     }
     (args_list) {
      (
      )
     }
     (function_body) {
      {
      (stmt_list) {
       (stmt_or_defined_macro) {
        (stmt) {
         (expr_function_call) {
          construct
          (
          this
          )
         }
         ;
        }
       }
      }
      }
     }
    }
   }
   (constructor) {
    (outer_destructor_name) {
     (namespace_resolve) {
      A
      ::
     }
     ~
     A
    }
    (args_list) {
     (
     )
    }
    (function_body) {
     {
     (stmt_list) {
      (stmt_or_defined_macro) {
       (stmt) {
        (expr_function_call) {
         destroy
         (
         this
         )
        }
        ;
       }
      }
     }
     }
    }
   }
  }
 }
]