PSDL_Scope_Visitor.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 // PSDL_Scope_Visitor.h,v 1.1 2002/07/25 15:25:51 pgontla Exp
00003 //
00004 // ============================================================================
00005 //
00006 // = LIBRARY
00007 //    PSS
00008 //
00009 // = FILENAME
00010 //    PSDL_Scope_Visitor
00011 //
00012 // = DESCRIPTION
00013 //    This class serves dual purposes: for generating a parse tree and for
00014 //    being a base class for the classes that put the generated code
00015 //    that should go into the stubs. Derived classes override the
00016 //    necessary methods. Uses the Visitor Pattern.
00017 //
00018 // = AUTHOR
00019 //    Priyanka Gontla <gontla_p@ociweb.com>
00020 //
00021 // ============================================================================
00022 
00023 #ifndef TAO_PSDL_SCOPE_VISITOR_H
00024 #define TAO_PSDL_SCOPE_VISITOR_H
00025 
00026 #include "PSDL_Node_Visitor.h"
00027 
00028 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00029 # pragma once
00030 #endif /* ACE_LACKS_PRAGMA_ONCE */
00031 
00032 #include "PSDL_Node.h"
00033 
00034 class TAO_PSDL_Export TAO_PSDL_Scope_Visitor : public TAO_PSDL_Node_Visitor
00035 {
00036  public:
00037 
00038   TAO_PSDL_Scope_Visitor (TAO_PSDL_Node *psdl_node);
00039 
00040   ~TAO_PSDL_Scope_Visitor ();
00041 
00042   // The following methods will contain code that should be executed
00043   // for each particular type of a node. The derived classes override
00044   // only the necessary methods. And, hence, the methods are not made
00045   // pure virtual. asdkl
00046   int visit_specification (TAO_PSDL_Specification *);
00047   int visit_definition (TAO_PSDL_Definition *);
00048   int visit_module (TAO_PSDL_Module *);
00049   int visit_abstract_storagetype (TAO_PSDL_Abstract_Storagetype *);
00050   int visit_abstract_storagetype_dcl (TAO_PSDL_Abstract_Storagetype_Dcl *);
00051   int visit_abstract_storagetype_fwd_dcl (TAO_PSDL_Abstract_Storagetype_Fwd_Dcl *);
00052   int visit_abstract_storagetype_header (TAO_PSDL_Abstract_Storagetype_Header *);
00053   int visit_abstract_storagetype_body (TAO_PSDL_Abstract_Storagetype_Body *);
00054   int visit_abstract_storagetype_member (TAO_PSDL_Abstract_Storagetype_Member *);
00055   int visit_abstract_storagetype_inh_spec (TAO_PSDL_Abstract_Storagetype_Inh_Spec *);
00056   int visit_abstract_storagetype_name (TAO_PSDL_Abstract_Storagetype_Name *);
00057   int visit_psdl_state_dcl (TAO_PSDL_Psdl_State_Dcl *);
00058   int visit_psdl_state_type_spec (TAO_PSDL_Psdl_State_Type_Spec *);
00059 
00060   int visit_abstract_storagetype_ref_type (TAO_PSDL_Abstract_Storagetype_Ref_Type);
00061 
00062   int visit_abstract_storagehome (TAO_PSDL_Abstract_Storagehome *);
00063   int visit_abstract_storagehome_fwd_dcl (TAO_PSDL_Abstract_Storagehome_Fwd_Dcl *);
00064   int visit_abstract_storagehome_dcl (TAO_PSDL_Abstract_Storagehome_Dcl *);
00065 
00066   int visit_abstract_storagehome_header (TAO_PSDL_Abstract_Storagehome_Header *);
00067   int visit_abstract_storagehome_body (TAO_PSDL_Abstract_Storagehome_Body  *);
00068   int visit_abstract_storagehome_member (TAO_PSDL_Abstract_Storagehome_Member *);
00069   int visit_abstract_storagehome_inh_spec (TAO_PSDL_Abstract_Storagehome_Inh_Spec *);
00070   int visit_abstract_storagehome_name (TAO_PSDL_Abstract_Storagehome_Name *);
00071   int visit_local_op_dcl (TAO_PSDL_Local_Op_Dcl *);
00072   int visit_key_dcl (TAO_PSDL_Key_Dcl *);
00073   int visit_catalog (TAO_PSDL_Catalog *);
00074   int visit_catalog_inh_spec (TAO_PSDL_Catalog_Inh_Spec *);
00075   int visit_catalog_name (TAO_PSDL_Catalog_Name *);
00076   int visit_catalog_body (TAO_PSDL_Catalog_Body *);
00077   int visit_catalog_member (TAO_PSDL_Catalog_Member *);
00078   int visit_storagetype_member (TAO_PSDL_Storagetype_Member *);
00079   int visit_storagetype_inh_spec (TAO_PSDL_Storagetype_Inh_Spec *);
00080   int visit_storagetype_name (TAO_PSDL_Storagetype_Name *);
00081   int visit_storagetype_impl_spec (TAO_PSDL_Storagetype_Impl_Spec *);
00082   int visit_storagetype_ref_type (TAO_PSDL_Storagetype_Ref_Type *);
00083   int visit_store_directive (TAO_PSDL_Store_Directive *);
00084   int visit_psdl_concrete_state_type (TAO_PSDL_Psdl_Concrete_State_Type *) ;
00085   int visit_ref_rep_directive (TAO_PSDL_Ref_Rep_Directive *) ;
00086   int visit_storagehome (TAO_PSDL_Storagehome *) ;
00087   int visit_storagehome_header (TAO_PSDL_Storagehome_Header *) ;
00088   int visit_storagehome_body  (TAO_PSDL_Storagehome_Body *) ;
00089   int visit_storagehome_member  (TAO_PSDL_Storagehome_Member *) ;
00090   int visit_storagehome_inh_spec  (TAO_PSDL_Storagehome_Inh_Spec *) ;
00091   int visit_storagehome_name  (TAO_PSDL_Storagehome_Name *) ;
00092 
00093   int visit_storagehome_impl_spec (TAO_PSDL_Storagehome_Impl_Spec *) ;
00094   int visit_primary_key_dcl (TAO_PSDL_Primary_Key_Dcl *);
00095   int visit_identifier (TAO_PSDL_Identifier *);
00096 
00097   int visit_type_dcl (TAO_PSDL_Type_Dcl *) ;
00098   int visit_type_declarator (TAO_PSDL_Type_Declarator *) ;
00099   int visit_type_spec (TAO_PSDL_Type_Spec *) ;
00100   int visit_simple_type_spec  (TAO_PSDL_Simple_Type_Spec *) ;
00101   int visit_base_type_spec  (TAO_PSDL_Base_Type_Spec *) ;
00102   int visit_template_type_spec  (TAO_PSDL_Template_Type_Spec *) ;
00103   int visit_constr_type_spec  (TAO_PSDL_Constr_Type_Spec *) ;
00104   int visit_declarators  (TAO_PSDL_Declarators *) ;
00105   int visit_declarator  (TAO_PSDL_Declarator *) ;
00106   int visit_simple_declarator  (TAO_PSDL_Simple_Declarator *) ;
00107   int visit_simple_declarator_list  (TAO_PSDL_Simple_Declarator_List *) ;
00108   int visit_complex_declarator  (TAO_PSDL_Complex_Declarator *) ;
00109   int visit_predefined_type  (TAO_PSDL_Predefined_Type *) ;
00110   int visit_member_list (TAO_PSDL_Member_List *) ;
00111   int visit_member (TAO_PSDL_Member *) ;
00112   int visit_union_type (TAO_PSDL_Union_Type *) ;
00113   int visit_switch_type_spec (TAO_PSDL_Switch_Type_Spec *) ;
00114   int visit_switch_body (TAO_PSDL_Switch_Body *) ;
00115   int visit_case_case (TAO_PSDL_Case *) ;
00116   int visit_case_label (TAO_PSDL_Case_Label *) ;
00117   int visit_element_spec (TAO_PSDL_Element_Spec *) ;
00118   int visit_const_dcl (TAO_PSDL_Const_Dcl *) ;
00119   int visit_const_type (TAO_PSDL_Const_Type *) ;
00120   int visit_const_exp (TAO_PSDL_Const_Exp *) ;
00121   int visit_or_expr (TAO_PSDL_Or_Expr *) ;
00122   int visit_xor_expr (TAO_PSDL_Xor_Expr *) ;
00123   int visit_and_expr (TAO_PSDL_And_Expr *) ;
00124   int visit_shift_expr (TAO_PSDL_Shift_Expr *) ;
00125   int visit_add_expr (TAO_PSDL_Add_Expr *) ;
00126   int visit_mult_expr (TAO_PSDL_Mult_Expr *) ;
00127   int visit_unary_expr (TAO_PSDL_Unary_Expr *) ;
00128   int visit_primary_expr (TAO_PSDL_Primary_Expr *) ;
00129   int visit_except_dcl (TAO_PSDL_Except_Dcl *) ;
00130   int visit_op_dcl (TAO_PSDL_Op_Dcl *) ;
00131   int visit_storagetype (TAO_PSDL_Storagetype *) ;
00132   int visit_storagetype_dcl (TAO_PSDL_Storagetype_Dcl *) ;
00133   int visit_storagetype_fwd_dcl (TAO_PSDL_Storagetype_Fwd_Dcl *);
00134   int visit_storagetype_header (TAO_PSDL_Storagetype_Header *);
00135   int visit_storagetype_body (TAO_PSDL_Storagetype_Body *);
00136   int visit_storagehome_scope (TAO_PSDL_Storagehome_Scope *);
00137   int visit_provides_dcl (TAO_PSDL_Provides_Dcl *);
00138   int visit_op_type_spec (TAO_PSDL_Op_Type_Spec *);
00139   int visit_parameter_dcls (TAO_PSDL_Parameter_Dcls *);
00140   int visit_param_dcl (TAO_PSDL_Param_Dcl *);
00141   int visit_raises_expr (TAO_PSDL_Raises_Expr *);
00142   int visit_context_expr (TAO_PSDL_Context_Expr *);
00143   int visit_param_type_spec (TAO_PSDL_Param_Type_Spec *);
00144   int visit_fixed_pt_type (TAO_PSDL_Fixed_Pt_Type *);
00145   int visit_constr_forward_decl (TAO_PSDL_Constr_Forward_Decl *);
00146   int visit_interface (TAO_PSDL_Interface *);
00147   int visit_interface_body (TAO_PSDL_Interface_Body *);
00148   int visit_interface_dcl (TAO_PSDL_Interface_Dcl *);
00149   int visit_forward_dcl (TAO_PSDL_Forward_Dcl *);
00150   int visit_interface_header (TAO_PSDL_Interface_Header *);
00151   int visit_export_dcl (TAO_PSDL_Export_Dcl *);
00152   int visit_interface_inheritance_spec (TAO_PSDL_Interface_Inheritance_Spec *);
00153   int visit_interface_name (TAO_PSDL_Interface_Name *);
00154   int visit_scoped_name (TAO_PSDL_Scoped_Name *);
00155   int visit_value (TAO_PSDL_Value *);
00156   int visit_value_common_base (TAO_PSDL_Value_Common_Base *);
00157   int visit_value_forward_dcl (TAO_PSDL_Value_Forward_Dcl *);
00158   int visit_value_box_dcl (TAO_PSDL_Value_Box_Dcl *);
00159   int visit_value_abs_dcl (TAO_PSDL_Value_Abs_Dcl *);
00160   int visit_value_dcl (TAO_PSDL_Value_Dcl *);
00161   int visit_value_header (TAO_PSDL_Value_Header *);
00162   int visit_value_inheritance_spec (TAO_PSDL_Value_Inheritance_Spec *);
00163   int visit_value_name (TAO_PSDL_Value_Name *);
00164   int visit_value_element (TAO_PSDL_Value_Element *);
00165   int visit_array_declarator (TAO_PSDL_Array_Declarator *);
00166   int visit_fixed_array_size (TAO_PSDL_Fixed_Array_Size *);
00167   int visit_enumerator (TAO_PSDL_Enumerator *);
00168   int visit_literal (TAO_PSDL_Literal *);
00169   int visit_state_member (TAO_PSDL_State_Member *);
00170   int visit_init_dcl (TAO_PSDL_Init_Dcl *);
00171   int visit_init_param_decls (TAO_PSDL_Init_Param_Decls *);
00172   int visit_init_param_decl (TAO_PSDL_Init_Param_Decl *);
00173   int visit_factory_parameters (TAO_PSDL_Factory_Parameters *);
00174   int visit_attr_dcl (TAO_PSDL_Attr_Dcl *);
00175   int visit_factory_dcl (TAO_PSDL_Factory_Dcl *);
00176   int visit_positive_int_const (TAO_PSDL_Positive_Int_Const *);
00177 
00178   ACE_CString get_scoped_type (void);
00179 
00180 private:
00181 
00182   TAO_PSDL_Node *psdl_node_;
00183   ACE_CString scoped_type_;
00184 };
00185 
00186 #endif /* TAO_PSDL_SCOPE_VISITOR_H */

Generated on Thu Nov 9 14:07:04 2006 for TAO_PSS by doxygen 1.3.6