00001 // Dump_Visitor.h,v 1.1 2002/07/25 15:25:50 pgontla Exp 00002 00003 #include "PSDL_Node_Visitor.h" 00004 00005 class Dump_Visitor : public TAO_PSDL_Node_Visitor 00006 { 00007 public: 00008 00009 Dump_Visitor (int depth); 00010 00011 ~Dump_Visitor (); 00012 00013 // The following methods help print the parse tree. Each method 00014 // will invoke the 'accept' methods of the private members (accessed 00015 // via the public accessor methods) of the class. Again, we are 00016 // making using of the visitor pattern here. 00017 int visit_specification (TAO_PSDL_Specification *); 00018 int visit_definition (TAO_PSDL_Definition *); 00019 int visit_module (TAO_PSDL_Module *); 00020 int visit_abstract_storagetype (TAO_PSDL_Abstract_Storagetype *); 00021 int visit_abstract_storagetype_dcl (TAO_PSDL_Abstract_Storagetype_Dcl *); 00022 int visit_abstract_storagetype_fwd_dcl (TAO_PSDL_Abstract_Storagetype_Fwd_Dcl *); 00023 int visit_abstract_storagetype_header (TAO_PSDL_Abstract_Storagetype_Header *); 00024 int visit_abstract_storagetype_body (TAO_PSDL_Abstract_Storagetype_Body *); 00025 int visit_abstract_storagetype_member (TAO_PSDL_Abstract_Storagetype_Member *); 00026 int visit_abstract_storagetype_inh_spec (TAO_PSDL_Abstract_Storagetype_Inh_Spec *); 00027 int visit_abstract_storagetype_name (TAO_PSDL_Abstract_Storagetype_Name *); 00028 int visit_psdl_state_dcl (TAO_PSDL_Psdl_State_Dcl *); 00029 int visit_psdl_state_type_spec (TAO_PSDL_Psdl_State_Type_Spec *); 00030 00031 int visit_abstract_storagetype_ref_type (TAO_PSDL_Abstract_Storagetype_Ref_Type); 00032 00033 int visit_abstract_storagehome (TAO_PSDL_Abstract_Storagehome *); 00034 int visit_abstract_storagehome_fwd_dcl (TAO_PSDL_Abstract_Storagehome_Fwd_Dcl *); 00035 int visit_abstract_storagehome_dcl (TAO_PSDL_Abstract_Storagehome_Dcl *); 00036 00037 int visit_abstract_storagehome_header (TAO_PSDL_Abstract_Storagehome_Header *); 00038 int visit_abstract_storagehome_body (TAO_PSDL_Abstract_Storagehome_Body *); 00039 int visit_abstract_storagehome_member (TAO_PSDL_Abstract_Storagehome_Member *); 00040 int visit_abstract_storagehome_inh_spec (TAO_PSDL_Abstract_Storagehome_Inh_Spec *); 00041 int visit_abstract_storagehome_name (TAO_PSDL_Abstract_Storagehome_Name *); 00042 int visit_local_op_dcl (TAO_PSDL_Local_Op_Dcl *); 00043 int visit_key_dcl (TAO_PSDL_Key_Dcl *); 00044 int visit_catalog (TAO_PSDL_Catalog *); 00045 int visit_catalog_inh_spec (TAO_PSDL_Catalog_Inh_Spec *); 00046 int visit_catalog_name (TAO_PSDL_Catalog_Name *); 00047 int visit_catalog_body (TAO_PSDL_Catalog_Body *); 00048 int visit_catalog_member (TAO_PSDL_Catalog_Member *); 00049 int visit_storagetype_member (TAO_PSDL_Storagetype_Member *); 00050 int visit_storagetype_inh_spec (TAO_PSDL_Storagetype_Inh_Spec *); 00051 int visit_storagetype_name (TAO_PSDL_Storagetype_Name *); 00052 int visit_storagetype_impl_spec (TAO_PSDL_Storagetype_Impl_Spec *); 00053 int visit_storagetype_ref_type (TAO_PSDL_Storagetype_Ref_Type *); 00054 int visit_store_directive (TAO_PSDL_Store_Directive *); 00055 int visit_psdl_concrete_state_type (TAO_PSDL_Psdl_Concrete_State_Type *) ; 00056 int visit_ref_rep_directive (TAO_PSDL_Ref_Rep_Directive *) ; 00057 int visit_storagehome (TAO_PSDL_Storagehome *) ; 00058 int visit_storagehome_header (TAO_PSDL_Storagehome_Header *) ; 00059 int visit_storagehome_body (TAO_PSDL_Storagehome_Body *) ; 00060 int visit_storagehome_member (TAO_PSDL_Storagehome_Member *) ; 00061 int visit_storagehome_inh_spec (TAO_PSDL_Storagehome_Inh_Spec *) ; 00062 int visit_storagehome_name (TAO_PSDL_Storagehome_Name *) ; 00063 00064 int visit_storagehome_impl_spec (TAO_PSDL_Storagehome_Impl_Spec *) ; 00065 int visit_primary_key_dcl (TAO_PSDL_Primary_Key_Dcl *); 00066 int visit_identifier (TAO_PSDL_Identifier *); 00067 00068 int visit_type_dcl (TAO_PSDL_Type_Dcl *) ; 00069 int visit_type_declarator (TAO_PSDL_Type_Declarator *) ; 00070 int visit_type_spec (TAO_PSDL_Type_Spec *) ; 00071 int visit_simple_type_spec (TAO_PSDL_Simple_Type_Spec *) ; 00072 int visit_base_type_spec (TAO_PSDL_Base_Type_Spec *) ; 00073 int visit_template_type_spec (TAO_PSDL_Template_Type_Spec *) ; 00074 int visit_constr_type_spec (TAO_PSDL_Constr_Type_Spec *) ; 00075 int visit_declarators (TAO_PSDL_Declarators *) ; 00076 int visit_declarator (TAO_PSDL_Declarator *) ; 00077 int visit_simple_declarator (TAO_PSDL_Simple_Declarator *) ; 00078 int visit_simple_declarator_list (TAO_PSDL_Simple_Declarator_List *) ; 00079 int visit_complex_declarator (TAO_PSDL_Complex_Declarator *) ; 00080 int visit_predefined_type (TAO_PSDL_Predefined_Type *) ; 00081 int visit_member_list (TAO_PSDL_Member_List *) ; 00082 int visit_member (TAO_PSDL_Member *) ; 00083 int visit_union_type (TAO_PSDL_Union_Type *) ; 00084 int visit_switch_type_spec (TAO_PSDL_Switch_Type_Spec *) ; 00085 int visit_switch_body (TAO_PSDL_Switch_Body *) ; 00086 int visit_case_case (TAO_PSDL_Case *) ; 00087 int visit_case_label (TAO_PSDL_Case_Label *) ; 00088 int visit_element_spec (TAO_PSDL_Element_Spec *) ; 00089 int visit_const_dcl (TAO_PSDL_Const_Dcl *) ; 00090 int visit_const_type (TAO_PSDL_Const_Type *) ; 00091 int visit_const_exp (TAO_PSDL_Const_Exp *) ; 00092 int visit_or_expr (TAO_PSDL_Or_Expr *) ; 00093 int visit_xor_expr (TAO_PSDL_Xor_Expr *) ; 00094 int visit_and_expr (TAO_PSDL_And_Expr *) ; 00095 int visit_shift_expr (TAO_PSDL_Shift_Expr *) ; 00096 int visit_add_expr (TAO_PSDL_Add_Expr *) ; 00097 int visit_mult_expr (TAO_PSDL_Mult_Expr *) ; 00098 int visit_unary_expr (TAO_PSDL_Unary_Expr *) ; 00099 int visit_primary_expr (TAO_PSDL_Primary_Expr *) ; 00100 int visit_except_dcl (TAO_PSDL_Except_Dcl *) ; 00101 int visit_op_dcl (TAO_PSDL_Op_Dcl *) ; 00102 int visit_storagetype (TAO_PSDL_Storagetype *) ; 00103 int visit_storagetype_dcl (TAO_PSDL_Storagetype_Dcl *) ; 00104 int visit_storagetype_fwd_dcl (TAO_PSDL_Storagetype_Fwd_Dcl *); 00105 int visit_storagetype_header (TAO_PSDL_Storagetype_Header *); 00106 int visit_storagetype_body (TAO_PSDL_Storagetype_Body *); 00107 int visit_storagehome_scope (TAO_PSDL_Storagehome_Scope *); 00108 int visit_provides_dcl (TAO_PSDL_Provides_Dcl *); 00109 int visit_op_type_spec (TAO_PSDL_Op_Type_Spec *); 00110 int visit_parameter_dcls (TAO_PSDL_Parameter_Dcls *); 00111 int visit_param_dcl (TAO_PSDL_Param_Dcl *); 00112 int visit_raises_expr (TAO_PSDL_Raises_Expr *); 00113 int visit_context_expr (TAO_PSDL_Context_Expr *); 00114 int visit_param_type_spec (TAO_PSDL_Param_Type_Spec *); 00115 int visit_fixed_pt_type (TAO_PSDL_Fixed_Pt_Type *); 00116 int visit_constr_forward_decl (TAO_PSDL_Constr_Forward_Decl *); 00117 int visit_interface (TAO_PSDL_Interface *); 00118 int visit_interface_body (TAO_PSDL_Interface_Body *); 00119 int visit_interface_dcl (TAO_PSDL_Interface_Dcl *); 00120 int visit_forward_dcl (TAO_PSDL_Forward_Dcl *); 00121 int visit_interface_header (TAO_PSDL_Interface_Header *); 00122 int visit_export_dcl (TAO_PSDL_Export_Dcl *); 00123 int visit_interface_inheritance_spec (TAO_PSDL_Interface_Inheritance_Spec *); 00124 int visit_interface_name (TAO_PSDL_Interface_Name *); 00125 int visit_scoped_name (TAO_PSDL_Scoped_Name *); 00126 int visit_value (TAO_PSDL_Value *); 00127 int visit_value_common_base (TAO_PSDL_Value_Common_Base *); 00128 int visit_value_forward_dcl (TAO_PSDL_Value_Forward_Dcl *); 00129 int visit_value_box_dcl (TAO_PSDL_Value_Box_Dcl *); 00130 int visit_value_abs_dcl (TAO_PSDL_Value_Abs_Dcl *); 00131 int visit_value_dcl (TAO_PSDL_Value_Dcl *); 00132 int visit_value_header (TAO_PSDL_Value_Header *); 00133 int visit_value_inheritance_spec (TAO_PSDL_Value_Inheritance_Spec *); 00134 int visit_value_name (TAO_PSDL_Value_Name *); 00135 int visit_value_element (TAO_PSDL_Value_Element *); 00136 int visit_array_declarator (TAO_PSDL_Array_Declarator *); 00137 int visit_fixed_array_size (TAO_PSDL_Fixed_Array_Size *); 00138 int visit_enumerator (TAO_PSDL_Enumerator *); 00139 int visit_literal (TAO_PSDL_Literal *); 00140 int visit_state_member (TAO_PSDL_State_Member *); 00141 int visit_init_dcl (TAO_PSDL_Init_Dcl *); 00142 int visit_init_param_decls (TAO_PSDL_Init_Param_Decls *); 00143 int visit_init_param_decl (TAO_PSDL_Init_Param_Decl *); 00144 int visit_factory_parameters (TAO_PSDL_Factory_Parameters *); 00145 int visit_attr_dcl (TAO_PSDL_Attr_Dcl *); 00146 int visit_factory_dcl (TAO_PSDL_Factory_Dcl *); 00147 int visit_positive_int_const (TAO_PSDL_Positive_Int_Const *); 00148 00149 private: 00150 00151 void print_depth (int depth); 00152 00153 private: 00154 int depth_; 00155 };