diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-04-14 05:47:01 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-04-14 05:47:01 +0000 |
commit | 1bda2ed944f06e6ef20d483549409070b9bae505 (patch) | |
tree | 4b5602aeaad1dab3e6b4db752f91311a9d8ad619 /TAO/TAO_IDL/be_include | |
parent | ea56952b7880274cd4d3a4b84e39794b0521942c (diff) | |
download | ATCD-ACE-4_4_40.tar.gz |
This commit was manufactured by cvs2svn to create tag 'ACE-4_4_40'.ACE-4_4_40
Diffstat (limited to 'TAO/TAO_IDL/be_include')
54 files changed, 0 insertions, 7868 deletions
diff --git a/TAO/TAO_IDL/be_include/be.h b/TAO/TAO_IDL/be_include/be.h deleted file mode 100644 index 3dafbfec175..00000000000 --- a/TAO/TAO_IDL/be_include/be.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF -ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS -FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF -DEALING, USAGE OR TRADE PRACTICE. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR -ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL -DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _BE_BE_HH -#define _BE_BE_HH - -// be.h -// - -#if defined (ACE_WIN32) -#pragma warning(disable:4250) -#endif /* ACE_WIN32 */ - -// ACE includes - -#include "ace/ACE.h" -#include "ace/OS.h" -#include "ace/Singleton.h" -#include "ace/Synch.h" -#include "ace/Log_Msg.h" -#include "ace/Containers.h" - -/* - * BE includes - */ - -#include "be_decl.h" // class BE_Decl -#include "be_scope.h" // class BE_Scope -#include "be_generator.h" // BE generator class -#include "be_type.h" -#include "be_predefined_type.h" // class BE_PredefinedType -#include "be_module.h" // class BE_Module -#include "be_interface.h" // class BE_Interface -#include "be_interface_fwd.h" // class BE_InterfaceFwd -#include "be_structure.h" // class BE_Structure -#include "be_exception.h" // class BE_Exception -#include "be_expression.h" // class BE_Expr_val -#include "be_enum.h" // class BE_Enum -#include "be_operation.h" // class BE_Operation -#include "be_field.h" // class BE_Field -#include "be_argument.h" // class BE_Argument -#include "be_attribute.h" // class BE_Attribute -#include "be_union.h" // class BE_Union -#include "be_union_branch.h" // class BE_UnionBranch -#include "be_union_label.h" // class BE_UnionLabel -#include "be_constant.h" // class BE_Constant -#include "be_enum_val.h" // class BE_EnumVal -#include "be_array.h" // class BE_Array -#include "be_sequence.h" // class BE_Sequence -#include "be_string.h" // class BE_String -#include "be_typedef.h" // class BE_Typedef -#include "be_root.h" // class BE_Root -#include "be_native.h" // class BE_Native - -#include "be_helper.h" // helper functions -#include "be_state.h" // code generation states -#include "be_codegen.h" // code generator -#include "be_factory.h" // factory - -#include "be_visitor.h" // abstract visitor -#include "be_visitor_context.h" // visitor context - -#endif // _BE_BE_HH diff --git a/TAO/TAO_IDL/be_include/be_argument.h b/TAO/TAO_IDL/be_include/be_argument.h deleted file mode 100644 index 5f417e6e9e4..00000000000 --- a/TAO/TAO_IDL/be_include/be_argument.h +++ /dev/null @@ -1,65 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_argument.h -// -// = DESCRIPTION -// Extension of class AST_Argument that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_ARGUMENT_H) -#define BE_ARGUMENT_H - -/* - * BE_Argument - */ -class be_argument : public virtual AST_Argument, - public virtual be_decl -{ -public: - // =Operations - - be_argument (void); - // default constructor - - be_argument (AST_Argument::Direction d, AST_Type *ft, UTL_ScopedName *n, - UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // generate client header for the argument - - virtual int gen_client_stubs (void); - // generate client side stubs for the argument - - virtual int gen_server_header (void); - // generate server header for the argument - - virtual int gen_server_skeletons (void); - // generate server skeletons for the argument - - virtual int gen_client_inline (void); - // Generates the client-side inline for the argument - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the argument - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_argument, AST_Argument, be_decl); - DEF_NARROW_FROM_DECL (be_argument); -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_array.h b/TAO/TAO_IDL/be_include/be_array.h deleted file mode 100644 index 55dcabe0e38..00000000000 --- a/TAO/TAO_IDL/be_include/be_array.h +++ /dev/null @@ -1,120 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_array.h -// -// = DESCRIPTION -// Extension of class AST_Array that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_ARRAY_H) -#define BE_ARRAY_H - -class TAO_OutStream; - -/* - * BE_Array - */ -class be_array : public virtual AST_Array, - public virtual be_type -{ -public: - // =Operations - - be_array (void); - // default constructor - - be_array (UTL_ScopedName *n, unsigned long ndims, UTL_ExprList *dims); - // constructor - - ~be_array (void); - - virtual int gen_client_header (void); - // generate client header for array - - virtual int gen_client_stubs (void); - // generate client side stubs for array - - virtual int gen_server_header (void); - // generate server header for array - - virtual int gen_server_skeletons (void); - // generate server skeletons for array - - virtual int gen_client_inline (void); - // Generates the client-side inline for the array - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the array - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - virtual int gen_forany_defn (void); - // the forany class - - virtual int gen_forany_impl (void); - // the forany impl - - virtual int gen_dimensions (TAO_OutStream *os, unsigned short slice=0); - // generate dimensions. If slice == 1, generate dimensions for the slice - // definition - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_array, AST_Array, be_type); - DEF_NARROW_FROM_DECL (be_array); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown - - virtual int create_name (void); - // create a name for us - - const char* tao_name (void); - -private: - char* tao_name_; - // We need a name to generate typecodes and other objects, but it - // must be different from the typedef name.... -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_attribute.h b/TAO/TAO_IDL/be_include/be_attribute.h deleted file mode 100644 index c1ad4b8b362..00000000000 --- a/TAO/TAO_IDL/be_include/be_attribute.h +++ /dev/null @@ -1,64 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_attribute.h -// -// = DESCRIPTION -// Extension of class AST_Attribute that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_ATTRIBUTE_H) -#define BE_ATTRIBUTE_H - -/* - * BE_Attribute - */ -class be_attribute : public virtual AST_Attribute, - public virtual be_decl -{ -public: - // =Operations - - be_attribute (void); - // default constructor - - be_attribute (idl_bool ro, AST_Type *ft, UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // generate client header for the attribute - - virtual int gen_client_stubs (void); - // generate client side stubs for the attribute - - virtual int gen_server_header (void); - // generate server header for the attribute - - virtual int gen_server_skeletons (void); - // generate server skeletons for the attribute - - virtual int gen_client_inline (void); - // Generates the client-side inline for the attribute - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the attribute - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_attribute, AST_Attribute, be_decl); - DEF_NARROW_FROM_DECL (be_attribute); -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_codegen.h b/TAO/TAO_IDL/be_include/be_codegen.h deleted file mode 100644 index c3516c62bfc..00000000000 --- a/TAO/TAO_IDL/be_include/be_codegen.h +++ /dev/null @@ -1,461 +0,0 @@ -// $Id$ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_codegen.h -// -// = DESCRIPTION -// The Code generator class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_CODEGEN_H) -#define TAO_BE_CODEGEN_H - -#define NAMEBUFSIZE 1024 -// maximum length of static buffers used to store names - -class TAO_Visitor_Factory; -class be_visitor_context; - -class TAO_CodeGen -{ - // = TITLE - // TAO_CodeGen - // - // = DESCRIPTION - // Holds global parameters for the Back End and generates the C++ mapping - // -public: - - // define all the code generation states. The first letter C/S of the suffix stands - // for client/server-side and the second letter H/I/S stands for - // header/inline/impl file. These are used to denote the state or the context - // of code generation we are in and serves to produce the right kind of - // visitor for us - - enum CG_STATE - { - // initial state - TAO_INITIAL, - - // rest of the state in alphabetical order of the types - - // emitting code for arguments of an operation. No distinction between - // headers, inlines, stubs. - TAO_ARGUMENT_CH, // in client header - TAO_ARGUMENT_CI, // in client inline - TAO_ARGUMENT_CS, // in client stubs - TAO_ARGUMENT_SH, // in server header - TAO_ARGUMENT_SI, // in server inline - TAO_ARGUMENT_SS, // in server skeleton - TAO_ARGUMENT_ARGLIST_CH, // argument in op signature of - // ... client header - TAO_ARGUMENT_ARGLIST_OTHERS, // ... in other cases - TAO_ARGUMENT_PRE_DOCALL_CS, // preprocessing of argument - // variable before passing to - // do_static_call (in stub) - TAO_ARGUMENT_DOCALL_CS, // passing argument variable to do_static_call - TAO_ARGUMENT_POST_DOCALL_CS, // postprocessing of argument - // variable after do_static_call - TAO_ARGUMENT_VARDECL_SS, // declaration of argument - // variable in skeleton (server) - TAO_ARGUMENT_MARSHAL_SS, // passing argument node to the - TAO_ARGUMENT_DEMARSHAL_SS, // demarshal and marshal - // operations - TAO_ARGUMENT_POST_MARSHAL_SS, - TAO_ARGUMENT_PRE_UPCALL_SS, // preprocessing of argument - // variable before upcall - TAO_ARGUMENT_UPCALL_SS, // passing argument variable to upcall - TAO_ARGUMENT_POST_UPCALL_SS, // postprocessing of argument - // variable after upcall - - // emitting code for attributes. - TAO_ATTRIBUTE_CH, // in client header - TAO_ATTRIBUTE_CS, // in client stubs - TAO_ATTRIBUTE_SH, // in server header - TAO_ATTRIBUTE_SS, // in server skeletons - TAO_ATTRIBUTE_COLLOCATED_SH, // in server header for collocated - TAO_ATTRIBUTE_COLLOCATED_SS, // in server skeletons for - // collocated - - TAO_ATTRIBUTE_RETVAL_DECL_SS, - TAO_ATTRIBUTE_RETVAL_ASSIGN_SS, - TAO_ATTRIBUTE_RETURN_TYPE_CH, - TAO_ATTRIBUTE_INPARAM_TYPE_CH, - TAO_ATTRIBUTE_RETURN_TYPE_CS, - TAO_ATTRIBUTE_RETVAL_DECL_CS, - TAO_ATTRIBUTE_RETVAL_EXCEPTION_CS, - TAO_ATTRIBUTE_RETVAL_RETURN_CS, - TAO_ATTRIBUTE_INPARAM_TYPE_CS, - TAO_ATTRIBUTE_PRE_DOCALL_CS, - TAO_ATTRIBUTE_DOCALL_CS, - TAO_ATTRIBUTE_POST_DOCALL_CS, - TAO_ATTRIBUTE_RETURN_TYPE_SH, - TAO_ATTRIBUTE_INPARAM_TYPE_SH, - TAO_ATTRIBUTE_RESULT_SS, - TAO_ATTRIBUTE_INPARAM_TYPE_SS, - TAO_ATTRIBUTE_PRE_UPCALL_SS, - TAO_ATTRIBUTE_UPCALL_SS, - TAO_ATTRIBUTE_POST_UPCALL_SS, - - // emitting code for array defn - TAO_ARRAY_CH, - TAO_ARRAY_CI, - TAO_ARRAY_CS, - - TAO_ARRAY_DEFN_CH, - TAO_ARRAY_DEFN_CI, - TAO_ARRAY_DEFN_CS, - TAO_ARRAY_DEFN_SH, - TAO_ARRAY_DEFN_SI, - TAO_ARRAY_DEFN_SS, - - // emitting code for rest of the array decl - TAO_ARRAY_OTHER_CH, - TAO_ARRAY_OTHER_CI, - TAO_ARRAY_OTHER_CS, - TAO_ARRAY_OTHER_SH, - TAO_ARRAY_OTHER_SI, - TAO_ARRAY_OTHER_SS, - - // emitting code for the constants - TAO_CONSTANT_CH, // in client header - TAO_CONSTANT_CI, // XXXASG rm? - TAO_CONSTANT_CS, // in client stub - - // emitting code for enums - TAO_ENUM_CH, // in client header - TAO_ENUM_CI, // XXXASG rm? - TAO_ENUM_CS, // in client stubs - TAO_ENUM_SH, // XXXASG rm? all 3 - TAO_ENUM_SI, - TAO_ENUM_SS, - - // emitting code for exceptions - TAO_EXCEPTION_CH, - TAO_EXCEPTION_CTOR_CH, - TAO_EXCEPTION_CI, - TAO_EXCEPTION_CS, - TAO_EXCEPTION_CTOR_CS, - TAO_EXCEPTION_CTOR_ASSIGN_CS, - TAO_EXCEPTION_SH, - TAO_EXCEPTION_SI, - TAO_EXCEPTION_SS, - - // emitting fields i.e., struct members - TAO_FIELD_CH, - TAO_FIELD_CI, - TAO_FIELD_CS, - - // emitting code for the interface - TAO_INTERFACE_CH, - TAO_INTERFACE_CI, - TAO_INTERFACE_CS, - TAO_INTERFACE_SH, - TAO_INTERFACE_SI, - TAO_INTERFACE_SS, - TAO_INTERFACE_COLLOCATED_SH, - TAO_INTERFACE_COLLOCATED_SS, - - // emitting code for the interface forward declaration - TAO_INTERFACE_FWD_CH, - TAO_INTERFACE_FWD_CI, - - // emitting code for the module - TAO_MODULE_CH, - TAO_MODULE_CI, - TAO_MODULE_CS, - TAO_MODULE_SH, - TAO_MODULE_SI, - TAO_MODULE_SS, - - // emitting code for an operation. - TAO_OPERATION_CH, // in client header - TAO_OPERATION_CI, // XXXASG rm? - TAO_OPERATION_CS, // in client stubs - TAO_OPERATION_SH, // in server header - TAO_OPERATION_SI, // XXXASG rm? - TAO_OPERATION_SS, // in server skeletons - TAO_OPERATION_COLLOCATED_SH, // in collocated server header - TAO_OPERATION_COLLOCATED_SS, // in collocated server skel - TAO_OPERATION_RETTYPE_CH, // return type in client header op - // signature - TAO_OPERATION_RETTYPE_OTHERS, // ... in other cases - TAO_OPERATION_RETURN_TYPE_CS, // - TAO_OPERATION_ARGLIST_CH, // parameter list in op signature - // ... for client header - TAO_OPERATION_ARGLIST_SH, // ... for server header - TAO_OPERATION_ARGLIST_COLLOCATED_SH, // ... for collocated server - TAO_OPERATION_ARGLIST_OTHERS, // ... for all other cases - TAO_OPERATION_RETVAL_DECL_CS, // return value variable declaration - TAO_OPERATION_RETVAL_EXCEPTION_CS, // return value on exception (error) - TAO_OPERATION_RETVAL_PRE_DOCALL_CS, // preprocessing for return value - // before sending over the wire - TAO_OPERATION_ARG_PRE_DOCALL_CS, // preprocessing of arguments - // before do_static_call - TAO_OPERATION_RETVAL_DOCALL_CS, // passing the return type - // variable to do_static_call - TAO_OPERATION_ARG_DOCALL_CS, // passing argument variable to do_static_call - TAO_OPERATION_RETVAL_POST_DOCALL_CS, // processing of return type - // after do_static_call - TAO_OPERATION_ARG_POST_DOCALL_CS, // processing of arg after do_static_call - TAO_OPERATION_RETVAL_RETURN_CS, // returning the return type - // variable - TAO_OPERATION_EXCEPTLIST_CS, // generating the exception list - TAO_OPERATION_RETVAL_DECL_SS, // return type decl in skeleton - TAO_OPERATION_ARG_DECL_SS, // argument decl in skeleton - TAO_OPERATION_RETVAL_DEMARSHAL_SS, // passing return type variable - TAO_OPERATION_ARG_DEMARSHAL_SS, // and argument variables to the - TAO_OPERATION_RETVAL_MARSHAL_SS, // marshal and demarshal operations - TAO_OPERATION_ARG_MARSHAL_SS, - TAO_OPERATION_ARG_POST_MARSHAL_SS, - TAO_OPERATION_RETVAL_ASSIGN_SS, // assigning to return type - // variable - TAO_OPERATION_ARG_PRE_UPCALL_SS, // pre upcall processing - TAO_OPERATION_RETVAL_UPCALL_SS, // passing return type var and argument - TAO_OPERATION_ARG_UPCALL_SS, // variables to upcall - TAO_OPERATION_RETVAL_POST_UPCALL_SS, // post upcall processing for - TAO_OPERATION_ARG_POST_UPCALL_SS, // return and argument variables - TAO_OPERATION_RESULT_SS, // XXXASG rm? - - // for predefined type - TAO_PREDEFINED_TYPE_CH, - TAO_PREDEFINED_TYPE_CI, - TAO_PREDEFINED_TYPE_CS, - - // emitting code for root - TAO_ROOT_CH, - TAO_ROOT_CI, - TAO_ROOT_CS, - TAO_ROOT_SH, - TAO_ROOT_SI, - TAO_ROOT_SS, - - // emitting sequences - TAO_SEQUENCE_CH, - TAO_SEQUENCE_CI, - TAO_SEQUENCE_CS, - - // emitting code for sequence base type - TAO_SEQUENCE_BASE_CH, - TAO_SEQUENCE_BASE_CI, - TAO_SEQUENCE_BASE_CS, - TAO_SEQUENCE_BASE_SH, - TAO_SEQUENCE_BASE_SI, - TAO_SEQUENCE_BASE_SS, - - // emitting code for sequence body - TAO_SEQUENCE_BODY_CH, - TAO_SEQUENCE_BODY_CI, - TAO_SEQUENCE_BODY_CS, - TAO_SEQUENCE_BODY_SH, - TAO_SEQUENCE_BODY_SI, - TAO_SEQUENCE_BODY_SS, - - // for special sequnce elements - TAO_SEQELEM_RETTYPE_CH, - TAO_SEQELEM_RETTYPE_CI, - TAO_SEQELEM_RETTYPE_CS, - - // for sequence buffer types - TAO_SEQUENCE_BUFFER_TYPE_CH, - TAO_SEQUENCE_BUFFER_TYPE_CI, - TAO_SEQUENCE_BUFFER_TYPE_CS, - - // emitting code for strings - TAO_STRING_CH, - TAO_STRING_CI, - TAO_STRING_CS, - TAO_STRING_SH, - TAO_STRING_SI, - TAO_STRING_SS, - - // emitting code for struct and its members - TAO_STRUCT_CH, - TAO_STRUCT_CI, - TAO_STRUCT_CS, - - // emitting code for typedefs - TAO_TYPEDEF_CH, - TAO_TYPEDEF_CI, - TAO_TYPEDEF_CS, - TAO_TYPEDEF_SH, - TAO_TYPEDEF_SI, - TAO_TYPEDEF_SS, - - // emitting code for unions - TAO_UNION_CH, - TAO_UNION_CI, - TAO_UNION_CS, - - // emitting code for the discriminant - TAO_UNION_DISCTYPEDEFN_CH, - TAO_UNION_DISCTYPEDEFN_CI, - TAO_UNION_DISCTYPEDEFN_CS, - TAO_UNION_DISCTYPEDEFN_SH, - TAO_UNION_DISCTYPEDEFN_SI, - TAO_UNION_DISCTYPEDEFN_SS, - - // emitting code for the public members of the union - TAO_UNION_PUBLIC_CH, - TAO_UNION_PUBLIC_CI, - TAO_UNION_PUBLIC_CS, - TAO_UNION_PUBLIC_ASSIGN_CS, - TAO_UNION_PUBLIC_SH, - TAO_UNION_PUBLIC_SI, - TAO_UNION_PUBLIC_SS, - - // emitting code for private members of the union - TAO_UNION_PRIVATE_CH, - TAO_UNION_PRIVATE_CI, - TAO_UNION_PRIVATE_CS, - TAO_UNION_PRIVATE_SH, - TAO_UNION_PRIVATE_SI, - TAO_UNION_PRIVATE_SS, - - // Always must be last - TAO_UNKNOWN - - }; - - TAO_CodeGen (void); - // Constructor - - ~TAO_CodeGen (void); - // destructor - - be_visitor *make_visitor (be_visitor_context *); - // Factory that makes the right visitor based on the contex. This - // delegates the task to its factory data member - - be_state *make_state (void); - // factory method returning appropriate subclass of the be_state object - // based on the current code generation state - - int gen_cplusplus_mapping (void); - // generate the C++ mapping for CORBA IDL - - int client_header (const char *fname); - // set the client header stream - - TAO_OutStream *client_header (void); - // get the client header stream - - int client_stubs (const char *fname); - // set the client stub stream - - TAO_OutStream *client_stubs (void); - // get the client stubs stream - - int client_inline (const char *fname); - // set the client inline stream - - TAO_OutStream *client_inline (void); - // get the client inline stream - - int server_header (const char *fname); - // set the server header stream - - TAO_OutStream *server_header (void); - // get the server header stream - - int server_skeletons (const char *fname); - // set the server skeletons stream - - TAO_OutStream *server_skeletons (void); - // get the server skeletons stream - - int server_inline (const char *fname); - // set the server inline stream - - TAO_OutStream *server_inline (void); - // get the server inline stream - - void outstream (TAO_OutStream *os); - // set current out stream - - TAO_OutStream *outstream (void); - // retrieve current out stream being used - - void visitor_factory (TAO_Visitor_Factory *); - // set the visitor factory object - - int end_client_header (void); - // put a last #endif in the client header - - int end_server_header (void); - // put a last #endif in the server header - - void push (CG_STATE s); - // set the code generation state - - void pop (void); - // out of the current state - - void reset (void); - // reset the stack to 1 - - CG_STATE state (void); - // return the current state - - void node (be_decl *n); - // pass info - - be_decl *node (void); - // retrieve passed info - - const char *upcase (const char *str); - // convert input string to all upcase - -private: - TAO_OutStream *client_header_; - // client header stream - - TAO_OutStream *client_stubs_; - // client stub file stream - - TAO_OutStream *client_inline_; - // client side inline definitions - - TAO_OutStream *server_header_; - // server header stream - - TAO_OutStream *server_skeletons_; - // server skeleton stream - - TAO_OutStream *server_inline_; - // server side inline file - - TAO_OutStream *curr_os_; - // currently used out stream - - CG_STATE *state_; - // code generation state stack - - int top_; - // top of state stack - - int size_; - // size of allocated stack - - be_decl *node_; - // save current node in this - - TAO_Visitor_Factory *visitor_factory_; - // visitor factory object -}; - -typedef ACE_Singleton<TAO_CodeGen, ACE_SYNCH_RECURSIVE_MUTEX> TAO_CODEGEN; -// Singleton instance of the BE code generator - -extern TAO_CodeGen *tao_cg; // code generator instance which is used everywhere - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_constant.h b/TAO/TAO_IDL/be_include/be_constant.h deleted file mode 100644 index e11271450b1..00000000000 --- a/TAO/TAO_IDL/be_include/be_constant.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_constant.h -// -// = DESCRIPTION -// Extension of class AST_Constant that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_CONSTANT_H) -#define BE_CONSTANT_H - -/* - * BE_Constant - */ -class be_constant : public virtual AST_Constant , public virtual be_decl -{ -public: - // Operations - - be_constant (void); - // constructor - - be_constant (AST_Expression::ExprType et, - AST_Expression *v, - UTL_ScopedName *n, - UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // Generates the client-side header information for the constant - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the constant - - virtual int gen_server_header (void); - // Generates the server-side header information for the constant - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the constant - - virtual int gen_client_inline (void); - // Generates the client-side inline for the constant - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the constant - - // = helper - char *exprtype_to_string (void); - // returns the appropriate type - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_constant, AST_Constant, be_decl); - DEF_NARROW_FROM_DECL (be_constant); - -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_decl.h b/TAO/TAO_IDL/be_include/be_decl.h deleted file mode 100644 index 2a37587f419..00000000000 --- a/TAO/TAO_IDL/be_include/be_decl.h +++ /dev/null @@ -1,179 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_decl.h -// -// = DESCRIPTION -// Extension of the AST_Decl class. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_DECL_H) -#define TAO_BE_DECL_H - -class be_scope; -class be_visitor; - -/* - * BE_Decl - */ -class be_decl : public virtual AST_Decl -{ - // = TITLE - // be_decl - // = DESCRIPTION - // The back end extension of the AST_Decl class. Provides an abstract - // interface - // -public: - enum SIZE_TYPE - { - SIZE_UNKNOWN, - FIXED, - VARIABLE - }; - // indicates if we are fixed size or variable. Most useful for structs, - // unions, and arrays. - - // =Operations - - be_decl (void); - // Default constructor - - be_decl (AST_Decl::NodeType type, UTL_ScopedName *n, UTL_StrList *pragmas); - // constructor that sets the node type - - ~be_decl (void); - // destructor - - virtual int gen_client_header (void) = 0; - // Generates the client-side header information for the decl - - virtual int gen_client_stubs (void) = 0; - // Generates the client-side stubs for the decl - - virtual int gen_server_header (void) = 0; - // Generates the server-side header information for the decl - - virtual int gen_server_skeletons (void) = 0; - // Generates the server-side skeletons for the decl - - virtual int gen_client_inline (void) = 0; - // Generates the client-side inline for the decl - - virtual int gen_server_inline (void) = 0; - // Generates the server-side inlines for the decl - - virtual void size_type (SIZE_TYPE); - // set the size type - - virtual SIZE_TYPE size_type (void); - // return our size type - - const char *repoID (void); - // retrieve the repository ID - - const char *fullname (void); - // return the stringified full name - - const char *flatname (void); - // return the flattened full scoped name - - virtual idl_bool is_nested (void); - // determines if we are inside of a nested scope or not - - virtual int gen_encapsulation (void); - // encapsulation of parameters - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual be_scope *scope (void); - // return the scope created by this node (if one exists) - - // Visiting - virtual int accept (be_visitor *visitor); - - // boolean methods to test if code was already generated - idl_bool cli_hdr_gen (void); - idl_bool cli_stub_gen (void); - idl_bool cli_inline_gen (void); - idl_bool srv_hdr_gen (void); - idl_bool srv_skel_gen (void); - idl_bool srv_inline_gen (void); - - // set the flag indicating that code generation is done - void cli_hdr_gen (idl_bool); - void cli_stub_gen (idl_bool); - void cli_inline_gen (idl_bool); - void srv_hdr_gen (idl_bool); - void srv_skel_gen (idl_bool); - void srv_inline_gen (idl_bool); - - idl_bool is_child (be_decl *node); - // am I a direct child of node? - - // Narrowing - DEF_NARROW_METHODS1 (be_decl, AST_Decl); - DEF_NARROW_FROM_DECL (be_decl); - -protected: - // =helper - - virtual int compute_size_type (void); - // determine our size type and set it if it is unknown - - virtual void compute_repoID (void); - // computes the repoID - - virtual void compute_fullname (void); - // computes the fully scoped name - - virtual void compute_flatname (void); - // compute the flattened fully scoped name - - virtual int tc_name2long (const char *name, long *&, long &); - // name represented as a padded array of longs - - virtual long repoID_encap_len (void); - // return encapsulation length required to hold repository ID - - virtual long name_encap_len (void); - // return encapsulation length required to hold IDL name - - // variables that indicate if the code generation for that node is already - // been done. This way we avoid regenerating same code. - idl_bool cli_hdr_gen_; - idl_bool cli_stub_gen_; - idl_bool cli_inline_gen_; - idl_bool srv_hdr_gen_; - idl_bool srv_skel_gen_; - idl_bool srv_inline_gen_; - - char *fullname_; - // our full scoped name - - char *flatname_; - // flattened fully scoped name - - char *repoID_; - // repository ID - - SIZE_TYPE size_type_; - // whether we are fixed or variable size (by default fixed) - - long encap_len_; - // encapsulation length - required for typecodes - -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_enum.h b/TAO/TAO_IDL/be_include/be_enum.h deleted file mode 100644 index c8f4f80a8e5..00000000000 --- a/TAO/TAO_IDL/be_include/be_enum.h +++ /dev/null @@ -1,95 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_enum.h -// -// = DESCRIPTION -// Extension of class AST_Enum that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_ENUM_H) -#define BE_ENUM_H - -/* - * BE_Enum - */ -class be_enum : public virtual AST_Enum, - public virtual be_scope, - public virtual be_type -{ -public: - // Operations - - be_enum (void); - // default constructor - - be_enum (UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // Generates the client-side header information for the enum - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the enum - - virtual int gen_server_header (void); - // Generates the server-side header information for the enum - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the enum - - virtual int gen_client_inline (void); - // Generates the client-side inline for the enum - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the enum - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int member_count (void); - // return the count of members - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_enum, AST_Enum, be_scope, be_type); - DEF_NARROW_FROM_DECL (be_enum); - DEF_NARROW_FROM_SCOPE (be_enum); - -private: - //=helper - - int compute_member_count (void); - // count the number of members - - int member_count_; - // number of members -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_enum_val.h b/TAO/TAO_IDL/be_include/be_enum_val.h deleted file mode 100644 index e8671c23275..00000000000 --- a/TAO/TAO_IDL/be_include/be_enum_val.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_enum_val.h -// -// = DESCRIPTION -// Extension of class AST_EnumVal that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_ENUM_VAL_H) -#define BE_ENUM_VAL_H - -/* - * BE_EnumVal - */ -class be_enum_val : public virtual AST_EnumVal, - public virtual be_decl -{ -public: - // =Operations - - be_enum_val (void); - // default constructor - - be_enum_val (unsigned long v, UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // Generates the client-side header information for the EnumVal - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the EnumVal - - virtual int gen_server_header (void); - // Generates the server-side header information for the EnumVal - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the EnumVal - - virtual int gen_client_inline (void); - // Generates the client-side inline for the EnumVal - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the EnumVal - - virtual int gen_encapsulation (void); - // generate the typecode - - virtual long tc_encap_len (void); - // return length of encapsulation - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_enum_val, AST_EnumVal, be_decl); - DEF_NARROW_FROM_DECL (be_enum_val); -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_exception.h b/TAO/TAO_IDL/be_include/be_exception.h deleted file mode 100644 index 46081d3c90f..00000000000 --- a/TAO/TAO_IDL/be_include/be_exception.h +++ /dev/null @@ -1,77 +0,0 @@ -#if !defined (BE_EXCEPTION_H) -#define BE_EXCEPTION_H - -/* - * BE_Exception - */ -class be_exception : public virtual AST_Exception, - public virtual be_scope, - public virtual be_type - -{ -public: - // Operations - be_exception (void); - // default constructor - - be_exception (UTL_ScopedName *n, UTL_StrList *p); - // constructor - - // =code generation - - virtual int gen_client_header (void); - // generate client header - - virtual int gen_client_inline (void); - // generate client inline - - virtual int gen_client_stubs (void); - // generate client stubs - - virtual int gen_server_header (void); - // generate server header - - virtual int gen_server_inline (void); - // generate server inline - - virtual int gen_server_skeletons (void); - // generate server skeletons - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int member_count (void); - // return the count of members - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_exception, AST_Exception, be_scope, be_type); - DEF_NARROW_FROM_DECL (be_exception); - DEF_NARROW_FROM_SCOPE (be_exception); - -private: - //=helper - - int compute_member_count (void); - // count the number of members - - int member_count_; - // number of members -}; - -#endif // end of if !defined (...) diff --git a/TAO/TAO_IDL/be_include/be_expression.h b/TAO/TAO_IDL/be_include/be_expression.h deleted file mode 100644 index 7429a299977..00000000000 --- a/TAO/TAO_IDL/be_include/be_expression.h +++ /dev/null @@ -1,46 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_expression.h -// -// = DESCRIPTION -// Extension of class AST_Expression that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_EXPRESSION_H) -#define BE_EXPRESSION_H - -/* - * BE_Expression - */ -class be_expression : public virtual AST_Expression -{ -public: - // Operations - be_expression (UTL_ScopedName *n); - be_expression (AST_Expression *b, AST_Expression::ExprType t); - be_expression (AST_Expression::ExprComb c, - AST_Expression *v1, - AST_Expression *v2); - be_expression (long l); - be_expression (long l, AST_Expression::ExprType t); - be_expression (unsigned long l); - be_expression (String *s); - be_expression (char c); - be_expression (double d); - - // Visiting - virtual int accept (be_visitor *visitor); -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_factory.h b/TAO/TAO_IDL/be_include/be_factory.h deleted file mode 100644 index 9ed9a18f0de..00000000000 --- a/TAO/TAO_IDL/be_include/be_factory.h +++ /dev/null @@ -1,72 +0,0 @@ -// $Id$ - -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL Backend -// -// = FILENAME -// be_factory.h -// -// = DESCRIPTION -// Defines a factory that returns a specialized output stream object that -// understands a specific Front End -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_FACTORY_H) -#define TAO_BE_FACTORY_H - -class TAO_Visitor_Factory -{ - // =TITLE - // TAO_Visitor_Factory - // - // =DESCRIPTION - // Abstract factory that creates visitors -public: - virtual ~TAO_Visitor_Factory (void); - // destructor - - virtual be_visitor *make_visitor (be_visitor_context *) = 0; - // create the right visitor - -}; - -class TAO_OutStream_Factory -{ - // =TITLE - // TAO_OutStream_Factory - // =DESCRIPTION - // factory to produce specialized instances of the output stream objects -public: - enum TAO_OutStream_Type - { - TAO_SUNSOFT, - TAO_FLICK - }; - - TAO_OutStream_Factory (void); - // constructor - - ~TAO_OutStream_Factory (void); - // destructor - - TAO_OutStream *make_outstream (void); - // make the specialized out stream class - - int set_stream_type (TAO_OutStream_Type t); - // set the stream type - -private: - TAO_OutStream_Type strm_type_; -}; - -typedef ACE_Singleton<TAO_OutStream_Factory, ACE_SYNCH_RECURSIVE_MUTEX> TAO_OUTSTREAM_FACTORY; -// Singleton instance of the OutStream factory - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_field.h b/TAO/TAO_IDL/be_include/be_field.h deleted file mode 100644 index 4fcb1535058..00000000000 --- a/TAO/TAO_IDL/be_include/be_field.h +++ /dev/null @@ -1,74 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_field.h -// -// = DESCRIPTION -// Extension of class AST_Field that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_FIELD_H) -#define BE_FIELD_H - -/* - * BE_Field - */ -class be_field : public virtual AST_Field, - public virtual be_decl -{ -public: - // =Operations - - be_field (void); - // default constructor - - be_field (AST_Type *ft, UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // Generates the client-side header information for the field - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the field - - virtual int gen_server_header (void); - // Generates the server-side header information for the field - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the field - - virtual int gen_client_inline (void); - // Generates the client-side inline for the field - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the field - - virtual int gen_encapsulation (void); - // generate the typecode - - virtual long tc_encap_len (void); - // return the total byte length of ourselves represented as an encapsulation - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_field, AST_Field, be_decl); - DEF_NARROW_FROM_DECL (be_field); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_generator.h b/TAO/TAO_IDL/be_include/be_generator.h deleted file mode 100644 index 3f4f38bca3f..00000000000 --- a/TAO/TAO_IDL/be_include/be_generator.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF -ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS -FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF -DEALING, USAGE OR TRADE PRACTICE. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR -ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL -DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _BE_GENERATOR_BE_GENERATOR_HH -#define _BE_GENERATOR_BE_GENERATOR_HH - -// be_generator.hh -// -// Defines BE class for generator -// -// This defines the same protocol as the AST_Generator class but actually -// is implemented to create nodes of AST classes subclassed in this BE - -/* -** DEPENDENCIES: AST_Generator.h -** -** USE: Included from be.h -*/ - -class be_generator : public AST_Generator { -public: - virtual AST_Root *create_root(UTL_ScopedName *n, - UTL_StrList *p); - // Create a node representing a module which is the root of an AST made up of - // BE nodes - - // Operations - virtual AST_PredefinedType - *create_predefined_type(AST_PredefinedType::PredefinedType t, - UTL_ScopedName *n, - UTL_StrList *p); - - virtual AST_Module *create_module(UTL_ScopedName *n, UTL_StrList *p); - virtual AST_Interface *create_interface(UTL_ScopedName *n, - AST_Interface **ih, - long nih, - UTL_StrList *p); - virtual AST_InterfaceFwd *create_interface_fwd(UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_Exception *create_exception(UTL_ScopedName *n, UTL_StrList *p); - virtual AST_Structure *create_structure(UTL_ScopedName *n, UTL_StrList *p); - virtual AST_Enum *create_enum(UTL_ScopedName *n, UTL_StrList *p); - virtual AST_Operation *create_operation(AST_Type *rt, - AST_Operation::Flags fl, - UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_Field *create_field(AST_Type *ft, UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_Argument *create_argument(AST_Argument::Direction d, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_Attribute *create_attribute(idl_bool ro, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_Union *create_union(AST_ConcreteType *dt, - UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_UnionBranch *create_union_branch(AST_UnionLabel *lab, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_UnionLabel *create_union_label(AST_UnionLabel::UnionLabel ul, - AST_Expression *lv); - virtual AST_Constant *create_constant(AST_Expression::ExprType et, - AST_Expression *ev, - UTL_ScopedName *n, - UTL_StrList *p); - - virtual AST_Expression *create_expr(UTL_ScopedName *n); - virtual AST_Expression *create_expr(AST_Expression *v, - AST_Expression::ExprType t); - virtual AST_Expression *create_expr(AST_Expression::ExprComb c, - AST_Expression *v1, - AST_Expression *v2); - virtual AST_Expression *create_expr(long v); - virtual AST_Expression *create_expr(long v, - AST_Expression::ExprType t); - virtual AST_Expression *create_expr(unsigned long v); - virtual AST_Expression *create_expr(String *s); - virtual AST_Expression *create_expr(char c); - virtual AST_Expression *create_expr(double d); - - virtual AST_EnumVal *create_enum_val(unsigned long v, - UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_Array *create_array(UTL_ScopedName *n, - unsigned long ndims, - UTL_ExprList *dims); - virtual AST_Sequence *create_sequence(AST_Expression *v, AST_Type *bt); - virtual AST_String *create_string(AST_Expression *v); - virtual AST_String *create_wstring(AST_Expression *v); - virtual AST_Typedef *create_typedef(AST_Type *bt, - UTL_ScopedName *n, - UTL_StrList *p); - // Create a node representing a native - virtual AST_Native *create_native (UTL_ScopedName *n, - UTL_StrList *p); - -}; - -#endif // _BE_GENERATOR_BE_GENERATOR_HH diff --git a/TAO/TAO_IDL/be_include/be_helper.h b/TAO/TAO_IDL/be_include/be_helper.h deleted file mode 100644 index e456e7394b3..00000000000 --- a/TAO/TAO_IDL/be_include/be_helper.h +++ /dev/null @@ -1,174 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_helper.h -// -// = DESCRIPTION -// Defines the abstract class for outputting the C++ mapping. This is a -// helper class to the singleton TAO_CodeGen class -// -// = AUTHOR -// Aniruddha Gokhale -// -// Improvements by Carlos O'Ryan -// -// ============================================================================ - -#if !defined (TAO_BE_OUTSTRM_H) -#define TAO_BE_OUTSTRM_H - -// a dummy structure to inform TAO_OutStream's << operator to put a newline -// and use the current indentation for the succeeding line -struct TAO_NL -{ -public: - TAO_NL (void); -}; - -struct TAO_INDENT -{ - // = TITLE - // Operates like a manipulator, increasing the indentation level. - // - // = DESCRIPTION - // Increase the indentation level, if the "do_now" parameter is - // not zero then the <indent> method is called on the stream. - // - TAO_INDENT (int do_now = 0); - - const int do_now_; -}; - -struct TAO_UNINDENT -{ - // = TITLE - // Operates like a manipulator, decreasing the indentation level. - // - // = DESCRIPTION - // Decrease the indentation level, if the "do_now" parameter is - // not zero then the <indent> method is called on the stream. - // - TAO_UNINDENT (int do_now = 0); - - const int do_now_; -}; - -extern const TAO_NL be_nl; -extern const TAO_INDENT be_idt; -extern const TAO_INDENT be_idt_nl; -extern const TAO_UNINDENT be_uidt; -extern const TAO_UNINDENT be_uidt_nl; - -class TAO_OutStream -{ - // =TITLE - // TAO_OutStream - // =DESCRIPTION - // Defines an interface by which the backend code generator can print its - // output to the underlying I/O handle. This is a helper class that will be - // used by the TAO_CodeGen class. However, this is an abstract class and - // classes that understand specific front ends must derive from this - // class. -public: - - // Enumerated type to indicate the stream type - enum STREAM_TYPE - { - TAO_CLI_HDR, - TAO_CLI_INL, - TAO_CLI_IMPL, - TAO_SVR_HDR, - TAO_SVR_INL, - TAO_SVR_IMPL - }; - - TAO_OutStream (void); - // constructor. - - virtual ~TAO_OutStream (void); - // destructor - - int open (const char *fname, TAO_OutStream::STREAM_TYPE st=TAO_OutStream::TAO_CLI_HDR); - // open the underlying low-level handle for output - - void stream_type (TAO_OutStream::STREAM_TYPE); - // set the stream type - - TAO_OutStream::STREAM_TYPE stream_type (void); - // return the stream type - - int incr_indent (unsigned short flag=1); - // increment the indentation level and by default actually indent the output - // accordingly - - int decr_indent (unsigned short flag=1); - // decrease the indentation level and by default actually indent the output - // accordingly - - int reset (void); - // reset indentation level to 0 - - int indent (void); - // indent starting next line - - int nl (void); - // put a newline and indent on the next line - - int print (const char *format, ...); - // "printf" style variable argument print - - int gen_ifdef_macro (const char *flatname, const char *suffix=0); - // generate a #if !defined, #defined macro - - int gen_endif (void); - // generate an endif statement - - // =overloaded operators - - TAO_OutStream &operator<< (const char *str); - // output the char string and return a reference to ourselves - - TAO_OutStream &operator<< (const long num); - // output the integer and return a reference to ourselves - - // = MANIPULATORS - - TAO_OutStream &operator<< (const TAO_NL& nl); - TAO_OutStream &operator<< (const TAO_INDENT& i); - TAO_OutStream &operator<< (const TAO_UNINDENT& i); - - // The following will be provided by specialized classes - - TAO_OutStream &operator<< (Identifier *id); - // output an Identifier node - - TAO_OutStream &operator<< (UTL_IdList *idl); - // output a scoped name - - TAO_OutStream &operator<< (AST_Expression *expr); - // output an AST_Expression node - - // provided by specialized classes - virtual TAO_OutStream &print (Identifier *id) = 0; - - virtual TAO_OutStream &print (UTL_IdList *idl) = 0; - - virtual TAO_OutStream &print (AST_Expression *idl) = 0; - -protected: - FILE *fp_; - // the underlying low-level I/O handle - - TAO_OutStream::STREAM_TYPE st_; - // stream type - - int indent_level_; - // indentation level - -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_interface.h b/TAO/TAO_IDL/be_include/be_interface.h deleted file mode 100644 index fc01883e9a5..00000000000 --- a/TAO/TAO_IDL/be_include/be_interface.h +++ /dev/null @@ -1,181 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_interface.h -// -// = DESCRIPTION -// Extension of class AST_Interface that provides additional means for C++ -// mapping of an interface. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_INTERFACE_H) -#define TAO_BE_INTERFACE_H - -class TAO_OutStream; - -/* - * BE_Interface - */ -class be_interface : public virtual AST_Interface, - public virtual be_scope, - public virtual be_type -{ - // = TITLE - // The back end extension of the AST_Interface class - // - // = DESCRIPTION - // -public: - - // used to pass functions to the template method - typedef int (*tao_code_emitter) (be_interface *, be_interface *, TAO_OutStream *); - - // Operations - be_interface (void); - // Default constructor - - be_interface (UTL_ScopedName *n, AST_Interface **ih, long nih, - UTL_StrList *p); - // Constructor that sets its scoped name <n>, a list of inherited interfaces - // <ih>, the number of inherited interfaces <nih>, and any prgmas <p> - - ~be_interface (void); - // dtor - - virtual int gen_client_header (void); - // Generates the client-side header information for the interface - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the interface - - virtual int gen_server_header (void); - // Generates the server-side header information for the interface - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the interface - - virtual int gen_client_inline (void); - // Generates the client-side inline for the interface - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the interface - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - const char *full_skel_name (void); - // retrieve the fully scoped skel class name - - // - // Each interface (to fix names "T") also defines two help classes, - // the "collocated" class inherits from T, but delegates on the - // skeleton for T (usually POA_T or POA_ModuleName::T), in other - // words it is a Bridge from T to its implementation. - // The class is nested inside the skeleton class. - // - // The "stub" is a class defined on the client scope, it actually - // defines the stubs (all operations in T are pure virtual). - // @@ TODO currently the stub class is not implemented. - // - const char *full_coll_name (void); - // retrieve the fully qualified collocated class name - - const char *local_coll_name (void) const; - // retrieve the fully qualified collocated class name - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int traverse_inheritance_graph (tao_code_emitter gen, - TAO_OutStream *os); - // template method using breadth first traversal of inheritance graph - - const char *relative_skel_name (const char *other_class_name); - // relative skeleton name - - const char *relative_coll_name (const char *other_class_name); - // relative name for collocated class. - - // Visiting - virtual int accept (be_visitor *visitor); - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Narrowing - DEF_NARROW_METHODS3 (be_interface, AST_Interface, be_scope, be_type); - DEF_NARROW_FROM_DECL (be_interface); - DEF_NARROW_FROM_SCOPE (be_interface); - - static int is_a_helper (be_interface *, be_interface *, TAO_OutStream *os); - // helper method passed to the template method - - static int downcast_helper (be_interface *, - be_interface *, - TAO_OutStream *os); - - static int gen_optable_helper (be_interface *, - be_interface *, - TAO_OutStream *os); - // helper method passed to the template method - - static int gen_skel_helper (be_interface *, - be_interface *, - TAO_OutStream *os); - // helper method passed to the template method - - void compute_fullskelname (void); - // compute the fully scoped skel class name - - int gen_operation_table (void); - // generate the operation table including entries for inherited interfaces - - static const char *relative_name (const char* our_name, - const char *other_class_name); - // relative name for collocated class. - - int gen_optable_entries (be_interface *); - // generate the operation table entries - - void compute_coll_name (void); - // compute the fully qualified collocated class name. - -private: - char *full_skel_name_; // fully scoped skeleton name - - int skel_count_; // number of static skeletons in the operation table - - char *full_coll_name_; - char *local_coll_name_; -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_interface_fwd.h b/TAO/TAO_IDL/be_include/be_interface_fwd.h deleted file mode 100644 index 717e388b46b..00000000000 --- a/TAO/TAO_IDL/be_include/be_interface_fwd.h +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_interface.h -// -// = DESCRIPTION -// Extension of class AST_Interface_Fwd that provides additional means for C++ -// mapping of an interface. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_INTERFACE_FWD_H) -#define BE_INTERFACE_FWD_H - -/* - * BE_InterfaceFwd - */ -class be_interface_fwd : public virtual AST_InterfaceFwd, - public virtual be_type -{ - // =TITLE - // be_interface_fwd - // =DESCRIPTION - // Extensions to the AST_Interface_Fwd class -public: - // Operations - - be_interface_fwd (void); - // default constructor - - be_interface_fwd (UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // Generates the client-side header information for the interface - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the interface - - virtual int gen_server_header (void); - // Generates the server-side header information for the interface - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the interface - - virtual int gen_client_inline (void); - // Generates the client-side inline for the interface - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the interface - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - virtual int gen_typecode (void); - // generate the typecode - - virtual long tc_size (void); - // return typecode size - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor* visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_interface_fwd, AST_InterfaceFwd, be_type); - DEF_NARROW_FROM_DECL (be_interface_fwd); - -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_interpretive.h b/TAO/TAO_IDL/be_include/be_interpretive.h deleted file mode 100644 index e6312b8d2cd..00000000000 --- a/TAO/TAO_IDL/be_include/be_interpretive.h +++ /dev/null @@ -1,40 +0,0 @@ -// $Id$ - -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL Backend -// -// = FILENAME -// be_interpretive_visitor.h -// -// = DESCRIPTION -// Defines a factory that returns a specialized visitor object based on the -// code generation state. The visitors returned by this factory generate -// stubs and skeletons that use interpretive form of marshaling -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -class TAO_Interpretive_Visitor_Factory: public TAO_Visitor_Factory -{ - // =TITLE - // TAO_Visitor_Factory - // - // =DESCRIPTION - // Factory that creates visitors that generate stubs/skeletons for - // interpretive form of marshaling -public: - TAO_Interpretive_Visitor_Factory (void); - // constructor - - virtual ~TAO_Interpretive_Visitor_Factory (void); - // destructor - - virtual be_visitor *make_visitor (be_visitor_context *); - // create the right visitor - -}; diff --git a/TAO/TAO_IDL/be_include/be_module.h b/TAO/TAO_IDL/be_include/be_module.h deleted file mode 100644 index 519c5be9a43..00000000000 --- a/TAO/TAO_IDL/be_include/be_module.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_module.h -// -// = DESCRIPTION -// Extension of class AST_Module that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_MODULE_H) -#define _BE_MODULE_H - -/* - * BE_Module - */ - -class be_module : public virtual AST_Module, - public virtual be_scope, - public virtual be_decl -{ -public: - // =Operations - - be_module (void); - // default constructor - - be_module (UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // Generates the client-side header information for the module - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the module - - virtual int gen_server_header (void); - // Generates the server-side header information for the module - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the module - - virtual int gen_client_inline (void); - // Generates the client-side inline for the module - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the module - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_module, AST_Module, be_scope, be_decl); - DEF_NARROW_FROM_DECL (be_module); - DEF_NARROW_FROM_SCOPE (be_module); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_native.h b/TAO/TAO_IDL/be_include/be_native.h deleted file mode 100644 index 8b04f93565c..00000000000 --- a/TAO/TAO_IDL/be_include/be_native.h +++ /dev/null @@ -1,75 +0,0 @@ -// Id -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_native.h -// -// = DESCRIPTION -// The native IDL type -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - - -#if !defined (BE_NATIVE_H) -#define BE_NATIVE_H - -// Representation of "native" IDL type added by the POA spec - -class be_native : public virtual AST_Native, public virtual be_type -{ -public: - // =Operations - - // Constructor(s) - be_native (void); - // default constructor - - be_native(UTL_ScopedName *n, UTL_StrList *p); - // constructor that initializes its scoped name - - virtual ~be_native (void) {} - // destructor - - virtual int gen_client_header (void); - // Generates the client-side header information for the type - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the type - - virtual int gen_server_header (void); - // Generates the server-side header information for the type - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the type - - virtual int gen_client_inline (void); - // Generates the client-side inline for the type - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the type - - virtual int gen_typecode (void); - // generate the typecode description - - virtual long tc_size (void); - // return typecode size - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2(be_native, AST_Native, be_type); - DEF_NARROW_FROM_DECL(be_native); -}; - -#endif /* BE_NATIVE_H */ diff --git a/TAO/TAO_IDL/be_include/be_operation.h b/TAO/TAO_IDL/be_include/be_operation.h deleted file mode 100644 index bf22269394e..00000000000 --- a/TAO/TAO_IDL/be_include/be_operation.h +++ /dev/null @@ -1,94 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_operation.h -// -// = DESCRIPTION -// Extension of class AST_Operation that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_OPERATION_H) -#define BE_OPERATION_H - -class be_argument; - -/* - * BE_Operation - */ -class be_operation : public virtual AST_Operation, - public virtual be_scope, - public virtual be_decl -{ -public: - // =Operations - - be_operation (void); - // default constructor - - be_operation (AST_Type *rt, AST_Operation::Flags fl, UTL_ScopedName *n, - UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // generate client header - - virtual int gen_client_stubs (void); - // generate client side stubs - - virtual int gen_server_header (void); - // generate server header - - virtual int gen_server_skeletons (void); - // generate server skeletons - - virtual int gen_client_inline (void); - // Generates the client-side inline for the operation - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the operation - - virtual int argument_count (void); - // return the count of members - - virtual int has_native (void); - // Any of the arguments or the return value is a <native> type. - // This is important because in that case no code should be - // generated for the stubs. - - be_argument *add_argument_to_scope (be_argument *arg); - // add an argument to the scope - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_operation, AST_Operation, be_scope, be_decl); - DEF_NARROW_FROM_DECL (be_operation); - DEF_NARROW_FROM_SCOPE (be_operation); - -protected: - //=helper - int compute_size_type (void); - // compute the size type if it is unknown - - int compute_argument_attr (void); - // count the number of arguments - - int argument_count_; - // number of arguments - - int has_native_; - // Is any argument of type native. -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_predefined_type.h b/TAO/TAO_IDL/be_include/be_predefined_type.h deleted file mode 100644 index 7b0d6c8406f..00000000000 --- a/TAO/TAO_IDL/be_include/be_predefined_type.h +++ /dev/null @@ -1,93 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_predefined_type.h -// -// = DESCRIPTION -// Extension of class AST_PredefinedType that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_PREDEFINED_TYPE_H) -#define _BE_PREDEFINED_TYPE_H - -// be_classes.hh -// -// Defines all classes for dummy BE - -/* - * BE_PredefinedType - */ -class be_predefined_type : public virtual AST_PredefinedType, - public virtual be_type -{ -public: - // =Operations - - be_predefined_type (void); - // default constructor - - be_predefined_type (AST_PredefinedType::PredefinedType t, UTL_ScopedName *n, - UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // Generates the client-side header information for the predefined type - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the predefined type - - virtual int gen_server_header (void); - // Generates the server-side header information for the predefined type - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the predefined type - - virtual int gen_client_inline (void); - // Generates the client-side inline for the predefined type - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the predefined type - - virtual int gen_typecode (void); - // generate the typecode - - virtual long tc_size (void); - // return typecode size - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor* visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_predefined_type, AST_PredefinedType, be_type); - DEF_NARROW_FROM_DECL (be_predefined_type); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown - - virtual void compute_tc_name (void); - // overridden method -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_root.h b/TAO/TAO_IDL/be_include/be_root.h deleted file mode 100644 index 43e979c4722..00000000000 --- a/TAO/TAO_IDL/be_include/be_root.h +++ /dev/null @@ -1,77 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_root.h -// -// = DESCRIPTION -// Extension of class AST_Root that provides the backend -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_ROOT_H) -#define TAO_BE_ROOT_H - -class be_root : public virtual AST_Root, - public virtual be_scope, - public virtual be_decl -{ - // = TITLE - // The back end extension of the AST_Root class - // - // = DESCRIPTION - // -public: - // Operations - be_root (void); - // Default constructor - - be_root (UTL_ScopedName *n, UTL_StrList *p); - // Constructor that sets its scoped name <n>, and any pragmas <p> - - int gen_idl2cplusplus_mapping (void); - // generates the IDL to C++ mapping - - virtual int gen_client_header (void); - // Generates the client-side header information for the root - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the root - - virtual int gen_server_header (void); - // Generates the server-side header information for the root - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the root - - virtual int gen_client_inline (void); - // Generates the client-side inline for the root - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the root - - // =Scope management functions that override the AST scope management methods - // since the AST methods set the names of the sequences, strings, and arrays - // to a fixed value which interferes with our back-end code generation - AST_Sequence *fe_add_sequence (AST_Sequence *); - AST_String *fe_add_string (AST_String *); - AST_Array *fe_add_array (AST_Array *); - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_root, AST_Root, be_scope, be_decl); - DEF_NARROW_FROM_DECL (be_root); - DEF_NARROW_FROM_SCOPE (be_root); -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_scope.h b/TAO/TAO_IDL/be_include/be_scope.h deleted file mode 100644 index c5509438613..00000000000 --- a/TAO/TAO_IDL/be_include/be_scope.h +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_scope.h -// -// = DESCRIPTION -// Extension of the UTL_Scope CFE class -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_SCOPE_H) -#define TAO_BE_SCOPE_H - -class be_decl; - -/* - * BE_Scope - */ -class be_scope : public virtual UTL_Scope -{ - // = TITLE - // be_scope - // = DESCRIPTION - // The back end extension of the UTL_Scope class - // -public: - // Operations - - be_scope (void); - // Default constructor - - be_scope (AST_Decl::NodeType nt); - // constructor that sets the node type - - virtual ~be_scope (void); - // destructor - - virtual int gen_client_header (void); - // Generates the client-side header information for the scope - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the scope - - virtual int gen_server_header (void); - // Generates the server-side header information for the scope - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the scope - - virtual int gen_client_inline (void); - // Generates the client-side inline for the scope - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the scope - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual void comma (unsigned short set); - // set the comma producing state - - int comma (void) const; - // get the comma producing state - - virtual be_decl *decl (void); - // return the be_decl node corresponding to this scope node - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS1 (be_scope, UTL_Scope); - DEF_NARROW_FROM_SCOPE (be_scope); - -private: - unsigned short comma_; - // if set, generate a comma after every element is handled -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_sequence.h b/TAO/TAO_IDL/be_include/be_sequence.h deleted file mode 100644 index ce5cb519f89..00000000000 --- a/TAO/TAO_IDL/be_include/be_sequence.h +++ /dev/null @@ -1,145 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_sequence.h -// -// = DESCRIPTION -// Extension of class AST_Sequence that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_SEQUENCE_H) -#define BE_SEQUENCE_H - -/* - * BE_Sequence - */ - -class be_typedef; - -// A sequence in OMG IDL does not define a scoping construct just as a struct -// or union or an interface do. However, in the C++ mapping, a sequence becomes -// a class. If the base type of a sequence is another anonymous sequence, then -// the base type is defined in the scope of this sequence. Hence we define -// be_sequence to possess the additional characteristics of a scope -class be_sequence : public virtual AST_Sequence, - public virtual be_scope, - public virtual be_type -{ -public: - enum MANAGED_TYPE - { - MNG_UNKNOWN , - MNG_NONE, - MNG_STRING, - MNG_OBJREF - }; - - // =Operations - - be_sequence (void); - // default constructor - - be_sequence (AST_Expression *v, AST_Type *bt); - // constructor - - virtual int create_name (be_typedef *node=0); - // create a name for ourselves. If we are typedefed, then we get the name of - // the typedef node, else we generate a name for ourselves - - virtual int gen_client_header (void); - // Generates the client-side header information for the sequence - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the sequence - - virtual int gen_server_header (void); - // Generates the server-side header information for the sequence - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the sequence - - virtual int gen_client_inline (void); - // Generates the client-side inline for the sequence - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the sequence - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - virtual int gen_managed_type_ch (void); - // generate code for managed types in header - - virtual int gen_managed_type_ci (void); - // generate code for managed types in inlined file - - virtual int gen_managed_type_cs (void); - // generate code for managed types in impl file - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual MANAGED_TYPE managed_type (void); - // return the managed type - - virtual idl_bool unbounded (void) const; - // is this sequence bounded or not - - // =Scope management functions - be_sequence *fe_add_sequence (be_sequence *); - - virtual be_decl *decl (void); - // overridden method on the be_scope class - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_sequence, AST_Sequence, be_scope, be_type); - DEF_NARROW_FROM_DECL (be_sequence); - -protected: - virtual char *gen_name (void); - // helper to create_name - -private: - idl_bool unbounded_; - // whether we are bounded or unbounded - - MANAGED_TYPE mt_; - // our managed type -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_state.h b/TAO/TAO_IDL/be_include/be_state.h deleted file mode 100644 index 353238bbb09..00000000000 --- a/TAO/TAO_IDL/be_include/be_state.h +++ /dev/null @@ -1,294 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_state.h -// -// = DESCRIPTION -// The Code generator state class and its subclasses -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_STATE_H) -#define TAO_BE_STATE_H - -class be_state -{ - // =TITLE - // be_state - // =DESCRIPTION - // Emits code based on current state. This is an abstract base class. The - // task of code generation is handled by subclasses. -public: - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0) = 0; - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef - - virtual ~be_state (void); - // destructor - -protected: - be_state (void); - // constructor -}; - -// ============== subclasses ==================== - -class be_state_struct : public be_state -{ - // =TITLE - // be_state_struct - // =DESCRIPTION - // struct generation -public: - - be_state_struct (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton<be_state_struct, ACE_SYNCH_RECURSIVE_MUTEX> TAO_BE_STATE_STRUCT; - -class be_state_union_disctypedefn_ch: public be_state -{ - // =TITLE - // be_state_union_disctypedefn_ch - // =DESCRIPTION - // union discriminant defn generation in client header -public: - - be_state_union_disctypedefn_ch (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton<be_state_union_disctypedefn_ch, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_UNION_DISCTYPEDEFN_CH; - -class be_state_union_disctypedefn_ci: public be_state -{ - // =TITLE - // be_state_union_disctypedefn_ci - // =DESCRIPTION - // union discriminant defn generation in client inline file -public: - - be_state_union_disctypedefn_ci (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton<be_state_union_disctypedefn_ci, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_UNION_DISCTYPEDEFN_CI; - -class be_state_union_public_ch: public be_state -{ - // =TITLE - // be_state_union_public_ch - // =DESCRIPTION - // union discriminant defn generation in client header file -public: - - be_state_union_public_ch (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton<be_state_union_public_ch, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_UNION_PUBLIC_CH; - -class be_state_union_public_ci: public be_state -{ - // =TITLE - // be_state_union_public_ci - // =DESCRIPTION - // union discriminant defn generation in client inline file -public: - - be_state_union_public_ci (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton<be_state_union_public_ci, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_UNION_PUBLIC_CI; - -class be_state_union_private_ch: public be_state -{ - // =TITLE - // be_state_union_private_ch - // =DESCRIPTION - // union discriminant defn generation in client header file -public: - - be_state_union_private_ch (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton<be_state_union_private_ch, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_UNION_PRIVATE_CH; - -class be_state_union_public_cs: public be_state -{ - // =TITLE - // be_state_union_public_cs - // =DESCRIPTION - // union discriminant defn generation in client stubs file -public: - - be_state_union_public_cs (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton<be_state_union_public_cs, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_UNION_PUBLIC_CS; - -class be_state_operation: public be_state -{ - // =TITLE - // be_state_operation - // =DESCRIPTION - // operation return type -public: - - be_state_operation (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton<be_state_operation, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_OPERATION; - -class be_state_argument: public be_state -{ - // =TITLE - // be_state_argument - // =DESCRIPTION - // argument return type -public: - - be_state_argument (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton<be_state_argument, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_ARGUMENT; - -class be_state_typedef: public be_state -{ - // =TITLE - // be_state_typedef - // =DESCRIPTION - // typedef code generation -public: - - be_state_typedef (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton<be_state_typedef, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_TYPEDEF; - -class be_state_array: public be_state -{ - // =TITLE - // be_state_array - // =DESCRIPTION - // array code generation -public: - - be_state_array (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton<be_state_array, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_ARRAY; - -class be_state_sequence: public be_state -{ - // =TITLE - // be_state_sequence - // =DESCRIPTION - // sequence code generation -public: - - be_state_sequence (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton<be_state_sequence, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_SEQUENCE; - -class be_state_attribute : public be_state -{ - // =TITLE - // be_state_attribute - // =DESCRIPTION - // attribute code generation -public: - be_state_attribute (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third - // parameter is used for recursive invocation involving a typedef -}; - -typedef ACE_Singleton<be_state_attribute, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_ATTRIBUTE; - -class be_state_exception : public be_state -{ - // =TITLE - // be_state_exception - // =DESCRIPTION - // exception code generation -public: - be_state_exception (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third - // parameter is used for recursive invocation involving a typedef -}; - -typedef ACE_Singleton<be_state_exception, ACE_SYNCH_RECURSIVE_MUTEX> - TAO_BE_STATE_EXCEPTION; - -#endif /* end of be_state */ diff --git a/TAO/TAO_IDL/be_include/be_string.h b/TAO/TAO_IDL/be_include/be_string.h deleted file mode 100644 index 0121bcf1216..00000000000 --- a/TAO/TAO_IDL/be_include/be_string.h +++ /dev/null @@ -1,87 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_string.h -// -// = DESCRIPTION -// Extension of class AST_String that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_STRING_H) -#define BE_STRING_H - -/* - * BE_String - */ -class be_string : public virtual AST_String, - public virtual be_type -{ -public: - // Operations - - be_string (void); - // default constructor - - be_string (AST_Expression *v); - // constructor - - be_string (AST_Expression *v, long wide); - // constructor - - virtual int gen_client_header (void); - // generate client header for string - - virtual int gen_client_stubs (void); - // generate client side stubs for string - - virtual int gen_server_header (void); - // generate server header for string - - virtual int gen_server_skeletons (void); - // generate server skeletons for string - - virtual int gen_client_inline (void); - // Generates the client-side inline for the string - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the string - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_string, AST_String, be_type); - DEF_NARROW_FROM_DECL (be_string); - -protected: - virtual void compute_tc_name (void); - // overridden method to compute typecode name -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_structure.h b/TAO/TAO_IDL/be_include/be_structure.h deleted file mode 100644 index d1521ea9d25..00000000000 --- a/TAO/TAO_IDL/be_include/be_structure.h +++ /dev/null @@ -1,111 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_structure.h -// -// = DESCRIPTION -// Extension of class AST_Structure that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_STRUCTURE_H) -#define BE_STRUCTURE_H - -/* - * BE_Structure - */ -class be_structure : public virtual AST_Structure, - public virtual be_scope, - public virtual be_type -{ -public: - // =Operations - - be_structure (void); - // default constructor - - be_structure (UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // Generates the client-side header information for the struct - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the struct - - virtual int gen_server_header (void); - // Generates the server-side header information for the struct - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the struct - - virtual int gen_client_inline (void); - // Generates the client-side inline for the struct - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the struct - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int member_count (void); - // return the count of members - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_structure, AST_Structure, be_scope, be_type); - DEF_NARROW_FROM_DECL (be_structure); - DEF_NARROW_FROM_SCOPE (be_structure); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown - -private: - //=helper - - int compute_member_count (void); - // count the number of members - - int member_count_; - // number of members -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_sunsoft.h b/TAO/TAO_IDL/be_include/be_sunsoft.h deleted file mode 100644 index 7dc6c512fe3..00000000000 --- a/TAO/TAO_IDL/be_include/be_sunsoft.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_sunsoft.h -// -// = DESCRIPTION -// SunSoft specific backend output generation -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_HELPER_H) -#define TAO_BE_HELPER_H - -class TAO_SunSoft_OutStream : public TAO_OutStream -{ - // =TITLE - // TAO_SunSoft_OutStream - // =DESCRIPTION - // Backend specific to SunSoft AST nodes -public: - TAO_SunSoft_OutStream (void); - // constructor - - ~TAO_SunSoft_OutStream (void); - // destuctor - - virtual TAO_OutStream &print (Identifier *id); - // output the SunSoft IDL Identifier Node - - virtual TAO_OutStream &print (UTL_IdList *idl); - // output the SunSoft IDL UTL_IdList Node which is usually used to maintain a - // scoped name - - virtual TAO_OutStream &print (AST_Expression *expr); - // output the contents of the AST_Expression node -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_type.h b/TAO/TAO_IDL/be_include/be_type.h deleted file mode 100644 index 88632350609..00000000000 --- a/TAO/TAO_IDL/be_include/be_type.h +++ /dev/null @@ -1,122 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_type.h -// -// = DESCRIPTION -// Extension of class AST_Type that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_TYPE_H) -#define BE_TYPE_H - -class TAO_OutStream; - -/* - * BE_Type - */ -class be_type : public virtual AST_Type, - public virtual be_decl -{ -public: - // =Operations - - be_type (void); - // default constructor - - be_type (AST_Decl::NodeType nt, UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual ~be_type (void); - - virtual int gen_client_header (void) = 0; - // Generates the client-side header information for the type - - virtual int gen_client_stubs (void) = 0; - // Generates the client-side stubs for the type - - virtual int gen_server_header (void) = 0; - // Generates the server-side header information for the type - - virtual int gen_server_skeletons (void) = 0; - // Generates the server-side skeletons for the type - - virtual int gen_client_inline (void) = 0; - // Generates the client-side inline for the type - - virtual int gen_server_inline (void) = 0; - // Generates the server-side inlines for the type - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - virtual int gen_typecode (void) = 0; - // generate the typecode description - - virtual long tc_size (void) = 0; - // return typecode size - - UTL_ScopedName *tc_name (void); - // return the typecode name - - virtual const char *nested_type_name (be_decl *d, const char *suffix = 0); - // type name of a node used when generating declarations - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // Different types have different mappings as return values, for - // instance interfaces are returned by reference (_ptr), but basic - // types by value. - // Typedefs are tricky, their mapping depend on the real type they - // are aliasing, but the name should be the typedef name, hence - // typedefs delegate on their base type, but pass their nodes down - // so the real name can be generated; hence the <type> parameter. - // This method writes the type as a return value on the stream. - - virtual AST_Decl::NodeType base_node_type (void) const; - // Typedefs are tricky to handle, in many points their mapping - // depend on base type they are aliasing. Since typedefs can be - // recursive simply using "base_type->node_type()" will not work, so - // the most "unaliased" type is needed. - - // Visiting - virtual int accept (be_visitor* visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_type, AST_Type, be_decl); - DEF_NARROW_FROM_DECL (be_type); - -protected: - virtual void compute_tc_name (void); - // computes the fully scoped typecode name - - UTL_ScopedName *tc_name_; - // typecode name - - char *type_name_; - // type name (this uses the ACE NESTED macro) - - char *nested_type_name_; - // for the corresponding method. -}; - -#endif // end of if !defined diff --git a/TAO/TAO_IDL/be_include/be_typedef.h b/TAO/TAO_IDL/be_include/be_typedef.h deleted file mode 100644 index 3afda4d7125..00000000000 --- a/TAO/TAO_IDL/be_include/be_typedef.h +++ /dev/null @@ -1,93 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_typedef.h -// -// = DESCRIPTION -// Extension of class AST_typedef that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_TYPEDEF_H) -#define BE_TYPEDEF_H - -/* - * BE_Typedef - */ -class be_typedef : public virtual AST_Typedef, - public virtual be_type -{ -public: - // =Operations - - be_typedef (void); - // default constructor - - be_typedef (AST_Type *bt, UTL_ScopedName *n, UTL_StrList *p); - // constructor - - be_type *primitive_base_type (void); - // return the most primitive base type by traversing the chain of typedefed - // base types - - virtual int gen_client_header (void); - // Generates the client-side header information for the typedef - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the typedef - - virtual int gen_server_header (void); - // Generates the server-side header information for the typedef - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the typedef - - virtual int gen_client_inline (void); - // Generates the client-side inline for the typedef - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the typedef - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual AST_Decl::NodeType base_node_type (void) const; - // Return the most "unaliased" type node for the base type (see - // be_type.h). - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_typedef, AST_Typedef, be_type); - DEF_NARROW_FROM_DECL (be_typedef); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown - -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_union.h b/TAO/TAO_IDL/be_include/be_union.h deleted file mode 100644 index 8d9729a74cf..00000000000 --- a/TAO/TAO_IDL/be_include/be_union.h +++ /dev/null @@ -1,119 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_union.h -// -// = DESCRIPTION -// Extension of class AST_Union that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_UNION_H) -#define BE_UNION_H - -/* - * BE_Union - */ -class be_union : public virtual AST_Union, - public virtual be_scope, - public virtual be_type -{ -public: - // =Operations - - be_union (void); - // default constructor - - be_union(AST_ConcreteType *dt, UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // Generates the client-side header information for the union - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the union - - virtual int gen_server_header (void); - // Generates the server-side header information for the union - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the union - - virtual int gen_client_inline (void); - // Generates the client-side inline for the union - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the union - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int member_count (void); - // return the count of members - - virtual int default_index (void); - // return the default index used - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_union, AST_Union, be_scope, be_type); - DEF_NARROW_FROM_DECL(be_union); - DEF_NARROW_FROM_SCOPE(be_union); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown - -private: - //=helper - - int compute_member_count (void); - // count the number of members - - int compute_default_index (void); - // count the default index - - int member_count_; - // number of members - - int default_index_; - // default label index (zero based indexing) -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_union_branch.h b/TAO/TAO_IDL/be_include/be_union_branch.h deleted file mode 100644 index 75393231e57..00000000000 --- a/TAO/TAO_IDL/be_include/be_union_branch.h +++ /dev/null @@ -1,74 +0,0 @@ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_union_branch.h -// -// = DESCRIPTION -// Extension of class AST_UnionBranch that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_UNION_BRANCH_H) -#define BE_UNION_BRANCH_H - -/* - * BE_UnionBranch - */ -class be_union_branch : public virtual AST_UnionBranch, - public virtual be_decl -{ -public: - // Operations - be_union_branch (void); - // default constructor - - be_union_branch (AST_UnionLabel *lab, AST_Type *ft, UTL_ScopedName *n, - UTL_StrList *p); - // constructor - - virtual int gen_client_header (void); - // Generates the client-side header information for the union branch - - virtual int gen_client_stubs (void); - // Generates the client-side stubs for the union branch - - virtual int gen_server_header (void); - // Generates the server-side header information for the union branch - - virtual int gen_server_skeletons (void); - // Generates the server-side skeletons for the union branch - - virtual int gen_client_inline (void); - // Generates the client-side inline for the union branch - - virtual int gen_server_inline (void); - // Generates the server-side inlines for the union branch - - virtual int gen_encapsulation (void); - // generate the encapsulation - - virtual long tc_encap_len (void); - // return the total byte length of ourselves represented as an encapsulation - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_union_branch, AST_UnionBranch, be_decl); - DEF_NARROW_FROM_DECL (be_union_branch); -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown - -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_union_label.h b/TAO/TAO_IDL/be_include/be_union_label.h deleted file mode 100644 index 31b9abbba2a..00000000000 --- a/TAO/TAO_IDL/be_include/be_union_label.h +++ /dev/null @@ -1,17 +0,0 @@ -#if !defined(BE_UNION_LABEL_H) -#define BE_UNION_LABEL_H - -/* - * BE_UnionLabel - */ -class be_union_label : public virtual AST_UnionLabel { -public: - // Operations - be_union_label(); - be_union_label(AST_UnionLabel::UnionLabel ul, AST_Expression *v); - - // Visiting - virtual int accept (be_visitor *visitor); -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_visitor.h b/TAO/TAO_IDL/be_include/be_visitor.h deleted file mode 100644 index 9c6c05e1632..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor.h +++ /dev/null @@ -1,157 +0,0 @@ -// -// $Id$ -// - -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor.h -// -// = DESCRIPTION -// The abstract visitor class. The concrete classes are responsible for code -// generation. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Carlos O'Ryan, Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_H) -#define TAO_BE_VISITOR_H - -class be_decl; -class be_scope; -class be_type; -class be_predefined_type; -class be_module; -class be_interface; -class be_interface_fwd; -class be_structure; -class be_exception; -class be_expression; -class be_enum; -class be_operation; -class be_field; -class be_argument; -class be_attribute; -class be_union; -class be_union_branch; -class be_union_label; -class be_constant; -class be_enum_val; -class be_array; -class be_sequence; -class be_string; -class be_typedef; -class be_root; -class be_native; - -class be_visitor_context; -class TAO_OutStream; - -class be_visitor -{ - // - // = TITLE - // Base class for visitors. - // - // = DESCRIPTION - // To implement code generation we use the "Visitor Pattern", this - // is the abstract "Visitor". - // The "visit" methods are not pure virtual to facilitate the - // implementation of simple visitors that only override a few. - // -public: - virtual ~be_visitor (void); - - virtual visit_decl (be_decl *d); - // visit a decl node - - virtual int visit_scope (be_scope *node); - // visit the scope - - virtual int visit_type (be_type *node); - // visit the type - - virtual int visit_predefined_type (be_predefined_type *node); - // visit the predefined type - - virtual int visit_module (be_module *node); - // visit module - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface_fwd - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_exception (be_exception *node); - // visit exception - - virtual int visit_expression (be_expression *node); - // visit expression - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_operation (be_operation *node); - // visit an operation - - virtual int visit_field (be_field *node); - // visit a field - - virtual int visit_argument (be_argument *node); - // visit argument - - virtual int visit_attribute (be_attribute *node); - // visit an attribute - - virtual int visit_union (be_union *node); - // visit union - - virtual int visit_union_branch (be_union_branch *node); - // visit union branch - - virtual int visit_union_label (be_union_label *node); - // visit union label - - virtual int visit_constant (be_constant *node); - // visit a constant - - virtual int visit_enum_val (be_enum_val *node); - // visit enum val - - virtual int visit_array (be_array *node); - // visit an array - - virtual int visit_sequence (be_sequence *node); - // visit a sequence - - virtual int visit_string (be_string *node); - // visit a string - - virtual int visit_typedef (be_typedef *node); - // visit a typedef - - virtual int visit_root (be_root *node); - // visit a root - - virtual int visit_native (be_native *node); - // visit a native - -protected: - be_visitor (void); - // constructor is protected - -}; - -#endif // TAO_BE_VISITOR_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_args.h b/TAO/TAO_IDL/be_include/be_visitor_args.h deleted file mode 100644 index 78ceb5b70b2..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_args.h +++ /dev/null @@ -1,574 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_args.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments -// -// = AUTHOR -// Aniruddha Gokhale and Carlos O' Ryan -// -// ============================================================================ - -#ifndef _BE_VISITOR_ARGS_H -#define _BE_VISITOR_ARGS_H - -#include "be_visitor_decl.h" - -class be_visitor_args : public be_visitor_decl -{ - // - // = TITLE - // Generates the code for arguments output. - // - // = DESCRIPTION - // At several stages in the code generation a node of type - // "be_operation" is visited, and the code for its arguments must - // be generated. - // Sometimes the argument declarations must be generated (such as - // in the class declaration), other the arguments names (such as - // in method invocations). - // This class implements some common functionality required across all - // argument visitors - // -public: - be_visitor_args (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args (void); - // destructor - - //= helper - virtual const char *type_name (be_type *type, const char *suffix=0); - // helper that produces either a nested name for header files or full name - // for others - - virtual AST_Argument::Direction direction (void); - // return the direction of the argument node - - virtual int visit_argument (be_argument *node); - // must be overridden by derived classes -}; - -class be_visitor_args_arglist : public be_visitor_args -{ - // - // = TITLE - // Generates the code for arguments output. - // - // = DESCRIPTION - // At several stages in the code generation a node of type - // "be_operation" is visited, and the code for its arguments must - // be generated. - // Sometimes the argument declarations must be generated (such as - // in the class declaration), other the arguments names (such as - // in method invocations). - // This class implements the declaration output, in other words, - // it outputs both the arguments and their types. - // -public: - be_visitor_args_arglist (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_arglist (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_native (be_native *node); - // visit native node - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -// ************************************************************ -// class be_visitor_args_pre_docall_cs -// ************************************************************ -class be_visitor_args_pre_docall_cs : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_docall_cs - // - // = DESCRIPTION - // Code to be generated when making the do_static_call - // -public: - be_visitor_args_pre_docall_cs (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_pre_docall_cs (void); - // destructor - - virtual int void_return_type (void); - // return true if the operation return type is void - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -// ************************************************************ -// class be_visitor_args_docall_cs -// ************************************************************ -class be_visitor_args_docall_cs : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_docall_cs - // - // = DESCRIPTION - // Code to be generated when making the do_static_call - // -public: - be_visitor_args_docall_cs (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_docall_cs (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -// ************************************************************ -// class be_visitor_args_post_docall_cs -// ************************************************************ -class be_visitor_args_post_docall_cs : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_post_docall_cs - // - // = DESCRIPTION - // Code to be generated after the do_static_call is done - // -public: - be_visitor_args_post_docall_cs (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_post_docall_cs (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type -}; - -// ************************************************************ -// class be_visitor_args_vardecl_ss -// ************************************************************ -class be_visitor_args_vardecl_ss : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_vardecl_ss - // - // = DESCRIPTION - // Visitor for variable declaration for argument - // -public: - be_visitor_args_vardecl_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_vardecl_ss (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -// ************************************************************ -// class be_visitor_args_pre_upcall_ss -// ************************************************************ -class be_visitor_args_pre_upcall_ss : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_upcall_ss - // - // = DESCRIPTION - // Visitor for passing argument to the upcall - // -public: - be_visitor_args_pre_upcall_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_pre_upcall_ss (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -// ************************************************************ -// class be_visitor_args_upcall_ss -// ************************************************************ -class be_visitor_args_upcall_ss : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_upcall_ss - // - // = DESCRIPTION - // Visitor for passing argument to the upcall - // -public: - be_visitor_args_upcall_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_upcall_ss (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - -}; - -// ************************************************************ -// class be_visitor_args_marshal_ss -// ************************************************************ -class be_visitor_args_marshal_ss : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_marshal_ss - // - // = DESCRIPTION - // Visitor for passing argument to the marshaling/demarshaling routine - // -public: - be_visitor_args_marshal_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_marshal_ss (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -// ************************************************************ -// class be_visitor_args_post_upcall_ss -// ************************************************************ -class be_visitor_args_post_upcall_ss : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_post_upcall_ss - // - // = DESCRIPTION - // Visitor for post processing after upcall - // -public: - be_visitor_args_post_upcall_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_post_upcall_ss (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -// ************************************************************ -// class be_visitor_args_post_marshal_ss -// ************************************************************ -class be_visitor_args_post_marshal_ss : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_post_marshal_ss - // - // = DESCRIPTION - // Visitor for post processing after marshal - // -public: - be_visitor_args_post_marshal_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_post_marshal_ss (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif // _BE_VISITOR_ARGS_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_attribute.h b/TAO/TAO_IDL/be_include/be_visitor_attribute.h deleted file mode 100644 index 6db40e2a693..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_attribute.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_attribute.h -// -// = DESCRIPTION -// Concrete visitor for the Attribute class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_ATTRIBUTE_H) -#define TAO_BE_VISITOR_ATTRIBUTE_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -// ************************************************************ -// Attribute visitor -// ************************************************************ - -class be_visitor_attribute : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_attribute - // - // = DESCRIPTION - // This is a concrete visitor to generate code for attributes. We have one - // class for mapping into the client and server. - // - // -public: - be_visitor_attribute (be_visitor_context *ctx); - // constructor - - ~be_visitor_attribute (void); - // destructor - - virtual int visit_attribute (be_attribute *node); - // visit attribute. We provide code for this method in the derived class - -}; - - -#endif diff --git a/TAO/TAO_IDL/be_include/be_visitor_constant.h b/TAO/TAO_IDL/be_include/be_visitor_constant.h deleted file mode 100644 index 2f2902f844d..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_constant.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_constant.h -// -// = DESCRIPTION -// Concrete visitor for the constant class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_CONSTANT_H) -#define TAO_BE_VISITOR_CONSTANT_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -class be_visitor_constant_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_constant_ch - // - // = DESCRIPTION - // This is the visitor for constant for the header file - // - // -public: - be_visitor_constant_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_constant_ch (void); - // destructor - - virtual int visit_constant (be_constant *node); - // visit constant. - -}; - -class be_visitor_constant_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_constant_cs - // - // = DESCRIPTION - // This is the visitor for constant for the impl file - // - // -public: - be_visitor_constant_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_constant_cs (void); - // destructor - - virtual int visit_constant (be_constant *node); - // visit constant - -}; - -#endif // TAO_BE_VISITOR_CONSTANT_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_context.h b/TAO/TAO_IDL/be_include/be_visitor_context.h deleted file mode 100644 index 399f59137cf..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_context.h +++ /dev/null @@ -1,226 +0,0 @@ -// -// $Id$ -// - -/* -*- C++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_context.h -// -// = DESCRIPTION -// This class serves to provide all the necessary context information to the -// visitor as it generates code. This may include the scope inside which the -// code is generated, the output file that is being used, and others. This -// context information will be passed to the abstract/concrete visitor -// factory which in turn will use it to construct the right visitor. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_CONTEXT_H) -#define TAO_BE_VISITOR_CONTEXT_H - -class be_visitor_context -{ -public: - be_visitor_context (void); - // default constructor - - be_visitor_context (const be_visitor_context &ctx); - // default constructor - - ~be_visitor_context (void); - // destructor - - be_visitor_context &operator= (const be_visitor_context &ctx); - // assignment operator - - // =helpers - - void stream (TAO_OutStream *os); - // set the output stream - - TAO_OutStream *stream (void); - // get the stream - - void scope (be_decl *scope); - // set the scope - - be_decl *scope (void); - // get the scope in which code will be generated - - void node (be_decl *node); - // current node being visited - - be_decl *node (void); - // node being visited - - void state (TAO_CodeGen::CG_STATE); - // code generation state - - TAO_CodeGen::CG_STATE state (void); - // return the code generation state - - void alias (be_typedef *node); - // set the alias node (if any) - - be_typedef *alias (void); - // return the aliased node (if any) - - void tdef (be_typedef *node); - // set the typedef node (if any) - - be_typedef *tdef (void); - // return the typedef node (if any) - - void attribute (be_attribute *attr); - // set the attribute node if any - - be_attribute *attribute (void); - // get the attribute node - - void exception (idl_bool); - // is it the special ctor for exceptions? - - idl_bool exception (void); - // is it the special ctor for exceptions? - - void comma (idl_bool); - // scope supoorts generation of comma after each element - - idl_bool comma (void); - // are we supposed to generate a comma? - - // = helpers - - // visitors may need the actual type of the node stored in this context. We - // could have kept separate nodes but that would have increased the size of - // the context class by a large extent. So we will rely on the - // "narrow_from_decl" approach - - // two types of helpers are provided here. One of them returns the node as - // the desired actual type. The other returns the scope as the desired type. - - be_argument *be_node_as_argument (void); - // return the node as argument if possible - - be_array *be_node_as_array (void); - // return the node as array if possible - - be_attribute *be_node_as_attribute (void); - // return the node as attribute if possible - - be_constant *be_node_as_constant (void); - // return the node as constant if possible - - be_enum *be_node_as_enum (void); - // return the node as enum if possible - - be_enum_val *be_node_as_enum_val (void); - // return the node as enum_val if possible - - be_exception *be_node_as_exception (void); - // return the node as exception if possible - - be_field *be_node_as_field (void); - // return the node as field if possible - - be_interface *be_node_as_interface (void); - // return the node as interface if possible - - be_interface_fwd *be_node_as_interface_fwd (void); - // return the node as interface_fwd if possible - - be_module *be_node_as_module (void); - // return the node as module if possible - - be_operation *be_node_as_operation (void); - // return the node as operation if possible - - be_predefined_type *be_node_as_predefined_type (void); - // return the node as predefined_type if possible - - be_root *be_node_as_root (void); - // return the node as root if possible - - be_sequence *be_node_as_sequence (void); - // return the node as sequence if possible - - be_string *be_node_as_string (void); - // return the node as string if possible - - be_structure *be_node_as_structure (void); - // return the node as structure if possible - - be_typedef *be_node_as_typedef (void); - // return the node as typedef if possible - - be_union *be_node_as_union (void); - // return the node as union if possible - - be_union_branch *be_node_as_union_branch (void); - // return the node as union_branch if possible - - // for scope - - be_enum *be_scope_as_enum (void); - // return the scope as enum if possible - - be_exception *be_scope_as_exception (void); - // return the scope as exception if possible - - be_interface *be_scope_as_interface (void); - // return the scope as interface if possible - - be_module *be_scope_as_module (void); - // return the scope as module if possible - - be_operation *be_scope_as_operation (void); - // return the scope as operation if possible - - be_root *be_scope_as_root (void); - // return the scope as root if possible - - be_structure *be_scope_as_structure (void); - // return the scope as structure if possible - - be_union *be_scope_as_union (void); - // return the scope as union if possible - -private: - TAO_CodeGen::CG_STATE state_; - // code generation state - - TAO_OutStream *os_; - // current output stream - - be_decl *scope_; - // current scope in which code is generated - - be_decl *node_; - // current node - - be_typedef *alias_; - // aliased node used as a scoped name to define IDL types. - - be_typedef *tdef_; - // typedef node - - be_attribute *attr_; - // attribute node stored here while generating its code - - idl_bool exception_; - // is it the special ctor for exceptions? - - idl_bool comma_; - // whether scope should generate a comma after every element -}; - - -#endif /* BE_VISITOR_CONTEXT_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_decl.h b/TAO/TAO_IDL/be_include/be_visitor_decl.h deleted file mode 100644 index 4c8f575cacd..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_decl.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_decl.h -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Decl" node -// -// = AUTHOR -// Aniruddha Gokhale and Carlos O'Ryan -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_DECL_H) -#define TAO_BE_VISITOR_DECL_H - -#include "be_visitor.h" - -class be_visitor_decl : public be_visitor -{ - // - // = TITLE - // be_visitor_decl - // - // = DESCRIPTION - // This is a concrete visitor for the be_decl node. Its only purpose is to - // maintain state information for the derived visitor - // -public: - be_visitor_decl (be_visitor_context *ctx); - // constructor - - ~be_visitor_decl (void); - // destructor - -protected: - // using a protected mechanism will allow derived visitors to access this - // information - - be_visitor_context *ctx_; - // any context information required by the visitor -}; - - -#endif // TAO_BE_VISITOR_DECL_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_enum.h b/TAO/TAO_IDL/be_include/be_visitor_enum.h deleted file mode 100644 index 59a6aff8ab6..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_enum.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_enum.h -// -// = DESCRIPTION -// Concrete visitor for the enum class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_ENUM_H) -#define TAO_BE_VISITOR_ENUM_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -class be_visitor_enum_ch : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_enum_ch - // - // = DESCRIPTION - // This is the base visitor for enum for the header file - // - // -public: - be_visitor_enum_ch (be_visitor_context *ctx); - // conenumor - - ~be_visitor_enum_ch (void); - // deenumor - - virtual int visit_enum (be_enum *node); - // visit enum. - - // =visit operations on syntactically valid elements in our scope - - virtual int visit_enum_val (be_enum_val *node); - // visit enum_val - - // = helper - - virtual int post_process (void); - // generate a comma after each element is processed -}; - -class be_visitor_enum_cs : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_enum_cs - // - // = DESCRIPTION - // This is the visitor for enum for the impl file - // - // -public: - be_visitor_enum_cs (be_visitor_context *ctx); - // conenumor - - ~be_visitor_enum_cs (void); - // deenumor - - virtual int visit_enum (be_enum *node); - // visit enum and generate the typecode - -}; - -#endif // TAO_BE_VISITOR_ENUM_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_exception.h b/TAO/TAO_IDL/be_include/be_visitor_exception.h deleted file mode 100644 index 627fd708b5f..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_exception.h +++ /dev/null @@ -1,231 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_exception.h -// -// = DESCRIPTION -// Concrete visitor for the Exception class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_EXCEPTION_H) -#define TAO_BE_VISITOR_EXCEPTION_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -class be_visitor_exception : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_exception - // - // = DESCRIPTION - // This is the base visitor for exception - // - // -public: - be_visitor_exception (be_visitor_context *ctx); - // ctor - - ~be_visitor_exception (void); - // dtor - - virtual int visit_exception (be_exception *node); - // visit exception. We provide code for this method in the derived class - - // =visit operations on syntactically valid elements in our scope - - virtual int visit_field (be_field *node); - // visit field -}; - -class be_visitor_exception_ch : public be_visitor_exception -{ - // - // = TITLE - // be_visitor_exception_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for exception - // - // -public: - be_visitor_exception_ch (be_visitor_context *ctx); - // constructureor - - ~be_visitor_exception_ch (void); - // destructureor - - virtual int visit_exception (be_exception *node); - // visit exception. We provide code for this method in the derived class - -}; - -class be_visitor_exception_ci : public be_visitor_exception -{ - // - // = TITLE - // be_visitor_exception_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for exception - // - // -public: - be_visitor_exception_ci (be_visitor_context *ctx); - // ctor - - ~be_visitor_exception_ci (void); - // dtor - - virtual int visit_exception (be_exception *node); - // visit exception. We provide code for this method in the derived class - -}; - -class be_visitor_exception_cs : public be_visitor_exception -{ - // - // = TITLE - // be_visitor_exception_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for exception - // - // -public: - be_visitor_exception_cs (be_visitor_context *ctx); - // ctor - - ~be_visitor_exception_cs (void); - // dtor - - virtual int visit_exception (be_exception *node); - // visit exception. We provide code for this method in the derived class - -}; - -class be_visitor_exception_ctor : public be_visitor_scope -{ - // =TITLE - // be_visitor_exception_ctor - // - // =DESCRIPTION - // generation of the special constructor -public: - be_visitor_exception_ctor (be_visitor_context *ctx); - // ctor - - ~be_visitor_exception_ctor (void); - // dtor - - virtual int post_process (void); - // post processing after each element - - virtual int visit_exception (be_exception *node); - // visit exception. We provide code for this method in the derived class - - virtual int visit_field (be_field *node); - // visit the argument node - - // =visit all the nodes that can be the types for the field - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -class be_visitor_exception_ctor_assign : public be_visitor_scope -{ - // =TITLE - // be_visitor_exception_ctor_assign - // - // =DESCRIPTION - // generation of the assignment statements in -public: - be_visitor_exception_ctor_assign (be_visitor_context *ctx); - // ctor - - ~be_visitor_exception_ctor_assign (void); - // dtor - - virtual int visit_exception (be_exception *node); - // visit exception. - - virtual int visit_field (be_field *node); - // visit the field node - - // =visit all the nodes that can be the types for the field - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif // TAO_BE_VISITOR_EXCEPTION_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_field.h b/TAO/TAO_IDL/be_include/be_visitor_field.h deleted file mode 100644 index 9846554bccc..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_field.h +++ /dev/null @@ -1,162 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_field.h -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Field" node -// -// = AUTHOR -// Aniruddha Gokhale and Carlos O'Ryan -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_FIELD_H) -#define TAO_BE_VISITOR_FIELD_H - -#include "be_visitor_decl.h" - -class be_visitor_field_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_field_ch - // - // = DESCRIPTION - // This is a concrete visitor for the be_field node for the client header. - // -public: - be_visitor_field_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_field_ch (void); - // destructor - - virtual int visit_field (be_field *node); - // visit the field node - - // =visit operations on all possible data types that a field can be - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit enum type - - virtual int visit_interface (be_interface *node); - // visit interface type - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward type - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_typedef (be_typedef *node); - // visit typedefed type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -class be_visitor_field_ci : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_field_ci - // - // = DESCRIPTION - // This is a concrete visitor for the be_field node for the client inline - // file - // -public: - be_visitor_field_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_field_ci (void); - // destructor - - virtual int visit_field (be_field *node); - // visit the field node - - // =visit operations on all possible data types that a field can be and for - // which inline code must be generated - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_typedef (be_typedef *node); - // visit typedefed type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -class be_visitor_field_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_field_cs - // - // = DESCRIPTION - // This is a concrete visitor for the be_field node for the client stubs - // file - // -public: - be_visitor_field_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_field_cs (void); - // destructor - - virtual int visit_field (be_field *node); - // visit the field node - - // =visit operations on all possible data types that a field can be and impl - // code must be generated - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit enum type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_typedef (be_typedef *node); - // visit typedefed type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -#endif // TAO_BE_VISITOR_FIELD_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface.h b/TAO/TAO_IDL/be_include/be_visitor_interface.h deleted file mode 100644 index c649c3a5fc2..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface.h +++ /dev/null @@ -1,257 +0,0 @@ - -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_interface.h -// -// = DESCRIPTION -// Concrete visitor for the Interface class -// -// = AUTHOR -// Carlos O'Ryan and Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_INTERFACE_H) -#define TAO_BE_VISITOR_INTERFACE_H - -#include "be_visitor_scope.h" - - -// = DESCRIPTION -// Interface code generation is complex, the client stubs require -// two different class and the server also require other two. -// Only one of them includes whatever nested typedefs, exceptions -// and or structures are defined in the interface. -// To break this complexity a different visitor is used for each -// case. -// -// = NOTE -// Visitors were added recently into the compiler, so some -// code is still generated using the old "state oriented" approach; -// notably only the _collocated class is actually generated using -// the visitor, in the other cases (the interface class and the -// skeleton class) we still call back the old code generation -// methods. -// - -class be_visitor_interface : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_interface - // - // = DESCRIPTION - // This is a concrete visitor for interface that abstracts all common tasks - // - -public: - be_visitor_interface (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface (void); - // destructor - - virtual int visit_interface (be_interface *node); - // visit the interface node - - // =visit methods on all elements syntactically valid in a Interface scope - - virtual int visit_attribute (be_attribute *node); - // visit attribute - - virtual int visit_constant (be_constant *node); - // visit a constant - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_exception (be_exception *node); - // visit an exception - - virtual int visit_operation (be_operation *node); - // visit operation - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - - virtual int visit_typedef (be_typedef *node); - // visit the typedef node - -}; - -// we need derived interface visitors for the client and server header files. For -// the others, they use the default interface visitor - -class be_visitor_interface_ch : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for interface - // - // -public: - be_visitor_interface_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_ch (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor - -}; - -class be_visitor_interface_ci : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for interface - // - // -public: - be_visitor_interface_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_ci (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor - -}; - -class be_visitor_interface_cs : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for interface - // - // -public: - be_visitor_interface_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_cs (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor -}; - -class be_visitor_interface_sh : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for interface - // - // -public: - be_visitor_interface_sh (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_sh (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor -}; - -class be_visitor_interface_si : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_si - // - // = DESCRIPTION - // This is a concrete visitor to generate the server inline for interface - // - // -public: - be_visitor_interface_si (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_si (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor -}; - -class be_visitor_interface_ss : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_ss - // - // = DESCRIPTION - // This is a concrete visitor to generate the server skeletons for interface - // - // -public: - be_visitor_interface_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_ss (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor -}; - -class be_visitor_interface_collocated_sh : public be_visitor_interface -{ - // = TITLE - // Generate the "collocated" class declaration. - -public: - be_visitor_interface_collocated_sh (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_interface_collocated_sh (void); - // destructor - - virtual int visit_interface (be_interface *node); - // visit an interface - -}; - -class be_visitor_interface_collocated_ss : public be_visitor_interface -{ - // = TITLE - // Generate the "collocated" class declaration. - -public: - be_visitor_interface_collocated_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_interface_collocated_ss (void); - // destructor - - virtual int visit_interface (be_interface *node); - // visit interface - -}; - -#endif // _BE_VISITOR_INTERFACE_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h b/TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h deleted file mode 100644 index b24a9942e39..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_interface_fwd.h -// -// = DESCRIPTION -// Concrete visitor for the interface_fwd class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_INTERFACE_FWD_H) -#define TAO_BE_VISITOR_INTERFACE_FWD_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -class be_visitor_interface_fwd_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_interface_fwd_ch - // - // = DESCRIPTION - // This is the visitor for interface_fwd for the header file - // - // -public: - be_visitor_interface_fwd_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_fwd_ch (void); - // destructor - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface_fwd. - -}; - -class be_visitor_interface_fwd_ci : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_interface_fwd_ci - // - // = DESCRIPTION - // This is the visitor for interface_fwd for the inline file - // - // -public: - be_visitor_interface_fwd_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_fwd_ci (void); - // destructor - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface_fwd - -}; - -#endif // TAO_BE_VISITOR_INTERFACE_FWD_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_module.h b/TAO/TAO_IDL/be_include/be_visitor_module.h deleted file mode 100644 index 0a1f64a4496..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_module.h +++ /dev/null @@ -1,124 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_module.h -// -// = DESCRIPTION -// Concrete visitor for the Module class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_MODULE_H) -#define TAO_BE_VISITOR_MODULE_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -class be_visitor_module : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_module - // - // = DESCRIPTION - // This is a concrete visitor for module that abstracts all common tasks - // - -public: - be_visitor_module (be_visitor_context *ctx); - // constructor - - ~be_visitor_module (void); - // destructor - - // =visit methods on all elements syntactically valid in a Module scope - - virtual int visit_constant (be_constant *node); - // visit a constant - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_exception (be_exception *node); - // visit an exception - - virtual int visit_interface (be_interface *node); - // visit an interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit an interface - - virtual int visit_module (be_module *node); - // visit a module - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - - virtual int visit_typedef (be_typedef *node); - // visit the typedef node - -}; - -// we need derived module visitors for the client and server header files. For -// the others, they use the default module visitor - -class be_visitor_module_ch : public be_visitor_module -{ - // - // = TITLE - // be_visitor_module_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for module - // - // -public: - be_visitor_module_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_module_ch (void); - // destructor - - virtual int visit_module (be_module *node); - // visit module. We provide code for this method in the derived class - -}; - -class be_visitor_module_sh : public be_visitor_module -{ - // - // = TITLE - // be_visitor_module_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for module - // - // -public: - be_visitor_module_sh (be_visitor_context *ctx); - // constructor - - ~be_visitor_module_sh (void); - // destructor - - virtual int visit_module (be_module *node); - // visit module. We provide code for this method in the derived class - -}; - - -#endif // TAO_BE_VISITOR_MODULE_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation.h b/TAO/TAO_IDL/be_include/be_visitor_operation.h deleted file mode 100644 index d6b66b4c71f..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation.h +++ /dev/null @@ -1,789 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_operation.h -// -// = DESCRIPTION -// Concrete visitor for the Operation class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_OPERATION_H) -#define TAO_BE_VISITOR_OPERATION_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -// ************************************************************ -// Operation visitor for client header -// ************************************************************ - -class be_visitor_operation_ch : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for operation - // - // -public: - be_visitor_operation_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_ch (void); - // destructor - - virtual int visit_operation (be_operation *node); - // visit operation. We provide code for this method in the derived class - -}; - -// ************************************************************ -// Operation visitor for client stubs -// ************************************************************ - -class be_visitor_operation_cs : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for operation - // - // -public: - be_visitor_operation_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_cs (void); - // destructor - - virtual int visit_operation (be_operation *node); - // visit operation. - - virtual int visit_argument (be_argument *node); - // visit argument to generate ParamData entries - - virtual int post_process (void); - // stuff to output after every member of the scope is handled -}; - -// ************************************************************ -// Operation visitor for server header -// ************************************************************ - -class be_visitor_operation_sh : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for operation - // - // -public: - be_visitor_operation_sh (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_sh (void); - // destructor - - virtual int visit_operation (be_operation *node); - // visit operation. We provide code for this method in the derived class - -}; - -// ************************************************************ -// Operation visitor for server skeletons -// ************************************************************ - -class be_visitor_operation_ss : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_ss - // - // = DESCRIPTION - // This is a concrete visitor to generate the server skeletons for operation - // - // -public: - be_visitor_operation_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_ss (void); - // destructor - - virtual int visit_operation (be_operation *node); - // visit operation. We provide code for this method in the derived class - - virtual int visit_argument (be_argument *node); - // visit argument to generate ParamData entries - - virtual int post_process (void); - // stuff to output after every member of the scope is handled -}; - -// ************************************************************ -// Operation visitor for server header in the collocated class -// ************************************************************ - -class be_visitor_operation_collocated_sh : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_collocated_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for operation - // in the collocated class - // - // -public: - be_visitor_operation_collocated_sh (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_collocated_sh (void); - // destructor - - virtual int visit_operation (be_operation *node); - // visit operation node. - -}; - -// ***************************************************************** -// Operation visitor for server skeletons for the collocated class -// ***************************************************************** - -class be_visitor_operation_collocated_ss : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_ss - // - // = DESCRIPTION - // This is a concrete visitor to generate the server skeletons for - // operation in the collocated class - // - // -public: - be_visitor_operation_collocated_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_collocated_ss (void); - // destructor - - virtual int visit_operation (be_operation *node); - // visit operation node. - -}; - -// *********************************************************************** -// Operation visitor for return types in the signature of the operation -// *********************************************************************** - -class be_visitor_operation_rettype : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_ch - // - // = DESCRIPTION - // This is a visitor to generate operation return types - // - // -public: - be_visitor_operation_rettype (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_native (be_native *node); - // visit native type - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -// ****************************************************************************** -// Operation visitor for argument list - generates parameters in the signature -// ****************************************************************************** - -class be_visitor_operation_arglist : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operaion_arglist - // - // = DESCRIPTION - // This is a visitor to generate operation argument list - // - // -public: - be_visitor_operation_arglist (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_arglist (void); - // destructor - - int visit_operation (be_operation *node); - // visit the operation - - int visit_argument (be_argument *node); - // visit each argument - -}; - -// ************************************************************ -// Operation visitor for return type variable declaration -// ************************************************************ - -class be_visitor_operation_rettype_vardecl_cs :public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_vardecl_cs - // - // = DESCRIPTION - // This is a visitor to generate a variable declaration ofr an operation - // return type - // -public: - be_visitor_operation_rettype_vardecl_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_vardecl_cs (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -// ************************************************************ -// Operation visitor for preprocessing before do_static_call is invoked -// ************************************************************ - -class be_visitor_operation_rettype_pre_docall_cs :public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_pre_docall_cs - // - // = DESCRIPTION - // This is a visitor to generate any pre processing before the do_static_call is - // made - // -public: - be_visitor_operation_rettype_pre_docall_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_pre_docall_cs (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -// ************************************************************ -// Operation visitor for passing return variable to do_static_call -// ************************************************************ - -class be_visitor_operation_rettype_docall_cs :public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_docall_cs - // - // = DESCRIPTION - // This is a visitor to generate a variable declaration ofr an operation - // return type - // -public: - be_visitor_operation_rettype_docall_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_docall_cs (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -// ************************************************************ -// Operation visitor for postprocessing after do_static_call is invoked -// ************************************************************ - -class be_visitor_operation_rettype_post_docall_cs :public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_psot_docall_cs - // - // = DESCRIPTION - // This is a visitor to generate any post processing after the do_static_call is - // made - // -public: - be_visitor_operation_rettype_post_docall_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_post_docall_cs (void); - // destructor - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node -}; - -// ************************************************************ -// Operation visitor for returning the return val -// ************************************************************ - -class be_visitor_operation_rettype_return_cs :public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_return_cs - // - // = DESCRIPTION - // This is a visitor to generate a variable declaration ofr an operation - // return type - // -public: - be_visitor_operation_rettype_return_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_return_cs (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -// ****************************************************************************** -// Visitor for -// ****************************************************************************** - -class be_visitor_operation_exceptlist_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operaion_exceptlist_cs - // - // = DESCRIPTION - // This is a visitor to generate operation exception list to be provided to - // the do_static_call - // - // -public: - be_visitor_operation_exceptlist_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_exceptlist_cs (void); - // destructor - - int visit_operation (be_operation *node); - // visit the operation - -}; - -// ************************************************************ -// generic operation visitor for docall, upcall, pre/post -// ************************************************************ - -class be_visitor_operation_argument : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_argument - // - // = DESCRIPTION - // This is a visitor to generate a variable declaration ofr an operation - // return type - // -public: - be_visitor_operation_argument (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_argument (void); - // destructor - - int post_process (void); - // stuff to o/p after each element of the scope is handled - - int visit_operation (be_operation *node); - // visit the operation - - int visit_argument (be_argument *node); - // visit argument - -}; - -// ************************************************************ -// Operation visitor for return type variable declaration in the server -// skeleton -// ************************************************************ - -class be_visitor_operation_rettype_vardecl_ss :public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_vardecl_ss - // - // = DESCRIPTION - // This is a visitor to generate a variable declaration ofr an operation - // return type in the server skeleton - // -public: - be_visitor_operation_rettype_vardecl_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_vardecl_ss (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -// *********************************************************************** -// Operation visitor for passing return type to the marshal/demarshal routine -// inside the server skeleton -// *********************************************************************** - -class be_visitor_operation_rettype_marshal_ss : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_marshal_ss - // - // = DESCRIPTION - // This is a visitor to pass return type to the marshal/demarshal routines - // - // -public: - be_visitor_operation_rettype_marshal_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_marshal_ss (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -// *********************************************************************** -// Operation visitor for assignment to return types in an upcall -// *********************************************************************** - -class be_visitor_operation_rettype_assign_ss : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_ch - // - // = DESCRIPTION - // This is a visitor to generate code that assigns to the return type - // variable in the upcall - // - // -public: - be_visitor_operation_rettype_assign_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_assign_ss (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -// *********************************************************************** -// Operation visitor for post upcall processing of return types -// *********************************************************************** - -class be_visitor_operation_rettype_post_upcall_ss : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_post_upcall_ss - // - // = DESCRIPTION - // This is a visitor for post processing after an upcall - // - // -public: - be_visitor_operation_rettype_post_upcall_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_post_upcall_ss (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -#endif // TAO_BE_VISITOR_OPERATION_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_root.h b/TAO/TAO_IDL/be_include/be_visitor_root.h deleted file mode 100644 index 7d0f4f6a704..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_root.h +++ /dev/null @@ -1,210 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_root.h -// -// = DESCRIPTION -// Concrete visitor for the Root class -// -// = AUTHOR -// Aniruddha Gokhale and Carlos O'Ryan -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_ROOT_H) -#define TAO_BE_VISITOR_ROOT_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -class be_visitor_root : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_root - // - // = DESCRIPTION - // This is a concrete visitor for root that abstracts all common tasks - // - -public: - be_visitor_root (be_visitor_context *ctx); - // constructor - - ~be_visitor_root (void); - // destructor - - virtual int visit_root (be_root *node); - // visit root - - // =visit methods on all elements syntactically valid in a Root scope - - virtual int visit_constant (be_constant *node); - // visit a constant - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_exception (be_exception *node); - // visit an exception - - virtual int visit_interface (be_interface *node); - // visit an interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit an interface - - virtual int visit_module (be_module *node); - // visit a module - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - - virtual int visit_typedef (be_typedef *node); - // visit the typedef node - - // =helper. This is used by derived clases to set the right context - - virtual int init (void); - // will be overridden by derived classes that set the appropriate context -}; - -class be_visitor_root_ch : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for root - // - // -public: - be_visitor_root_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_ch (void); - // destructor - - virtual int init (void); - // set the right context and make a visitor -}; - -class be_visitor_root_ci : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for root - // - // -public: - be_visitor_root_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_ci (void); - // destructor - - virtual int init (void); - // set the right context and make a visitor -}; - -class be_visitor_root_cs : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for root - // - // -public: - be_visitor_root_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_cs (void); - // destructor - - virtual int init (void); - // set the right context and make a visitor -}; - -class be_visitor_root_sh : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for root - // - // -public: - be_visitor_root_sh (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_sh (void); - // destructor - - virtual int init (void); - // set the right context and make a visitor -}; - -class be_visitor_root_si : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_si - // - // = DESCRIPTION - // This is a concrete visitor to generate the server inline for root - // - // -public: - be_visitor_root_si (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_si (void); - // destructor - - virtual int init (void); - // set the right context and make a visitor -}; - -class be_visitor_root_ss : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_ss - // - // = DESCRIPTION - // This is a concrete visitor to generate the server skeletons for root - // - // -public: - be_visitor_root_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_ss (void); - // destructor - - virtual int init (void); - // set the right context and make a visitor -}; - - -#endif // TAO_BE_VISITOR_ROOT_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_scope.h b/TAO/TAO_IDL/be_include/be_visitor_scope.h deleted file mode 100644 index 07796a9b0e2..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_scope.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_scope.h -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Scope" node -// -// = AUTHOR -// Aniruddha Gokhale and Carlos O'Ryan -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_SCOPE_H) -#define TAO_BE_VISITOR_SCOPE_H - -#include "be_visitor.h" -#include "be_visitor_decl.h" - -class be_visitor_scope : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_scope - // - // = DESCRIPTION - // This is a concrete visitor for the be_scope node. Its only purpose is to - // iterate over the elements of the scope - // -public: - be_visitor_scope (be_visitor_context *ctx); - // constructor - - ~be_visitor_scope (void); - // destructor - - int visit_scope (be_scope *node); - // visit scope - - virtual int post_process (void); - // do any processing after every element except the last one of the scope is - // processed -}; - - -#endif // TAO_BE_VISITOR_SCOPE_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence.h b/TAO/TAO_IDL/be_include/be_visitor_sequence.h deleted file mode 100644 index 5be601730ac..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_sequence.h +++ /dev/null @@ -1,214 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -#if !defined (TAO_BE_VISITOR_SEQUENCE_H) -#define TAO_BE_VISITOR_SEQUENCE_H - -#include "be_visitor_decl.h" - -class be_visitor_sequence_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for - // sequences - // -public: - be_visitor_sequence_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_sequence_ch (void); - // destructor - - virtual int visit_sequence (be_sequence *node); - // visit sequence node - - virtual int gen_base_sequence_class (be_sequence *node); - // generate the base sequence class - - virtual int gen_var_defn (be_sequence *node); - // generate the var defn - - virtual int gen_out_defn (be_sequence *node); - // generate the out defn -}; - -class be_visitor_sequence_ci : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for - // sequences. The only purpose is to generate the implementation for the - // _var and _out classes - // -public: - be_visitor_sequence_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_sequence_ci (void); - // destructor - - virtual int visit_sequence (be_sequence *node); - // visit sequence node - - virtual int gen_var_impl (be_sequence *node); - // generate the var impl - - virtual int gen_out_impl (be_sequence *node); - // generate the out impl -}; - -class be_visitor_sequence_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for - // sequences - // -public: - be_visitor_sequence_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_sequence_cs (void); - // destructor - - virtual int visit_sequence (be_sequence *node); - // visit sequence node - - virtual int gen_base_sequence_class (be_sequence *node); - // generate the base sequence class - -}; - -// =helper visitors to generate the base type and element type - -class be_visitor_sequence_base : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_base - // - // = DESCRIPTION - // This is a concrete visitor to generate the template parameters - // for a TAO_*_Sequence instantiation. - // - // = BUGS - // The class name is misleading, eventually this class could be - // used to generate code in other files, not only the client - // header. - // The visitor factory should provide a factory method that builds - // this class on the fly. - // -public: - be_visitor_sequence_base (be_visitor_context *ctx); - // Constructor - - ~be_visitor_sequence_base (void); - // destructor - - // = Visitor methods. - virtual int visit_predefined_type (be_predefined_type *node); - virtual int visit_interface (be_interface *node); - virtual int visit_interface_fwd (be_interface_fwd *node); - virtual int visit_structure (be_structure *node); - virtual int visit_enum (be_enum *node); - virtual int visit_exception (be_exception *node); - virtual int visit_union (be_union *node); - virtual int visit_array (be_array *node); - virtual int visit_string (be_string *node); - virtual int visit_sequence (be_sequence *node); - virtual int visit_typedef (be_typedef *node); - -protected: - int visit_node (be_type *); - // helper that does the common job - -}; - -class be_visitor_sequence_buffer_type : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_buffer_type - // - // = DESCRIPTION - // This is a concrete visitor to generate the buffer type - // for a TAO_*_Sequence instantiation. - // -public: - be_visitor_sequence_buffer_type (be_visitor_context *ctx); - // Constructor - - ~be_visitor_sequence_buffer_type (void); - // destructor - - // = Visitor methods. - virtual int visit_predefined_type (be_predefined_type *node); - virtual int visit_interface (be_interface *node); - virtual int visit_interface_fwd (be_interface_fwd *node); - virtual int visit_structure (be_structure *node); - virtual int visit_enum (be_enum *node); - virtual int visit_exception (be_exception *node); - virtual int visit_union (be_union *node); - virtual int visit_array (be_array *node); - virtual int visit_string (be_string *node); - virtual int visit_sequence (be_sequence *node); - virtual int visit_typedef (be_typedef *node); - -protected: - int visit_node (be_type *); - // helper that does the common job - -}; - -class be_visitor_sequence_elemtype : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_elemtype - // - // = DESCRIPTION - // This is a concrete visitor to generate the return type for the - // [] operators - // - // = NOTES - // This class may eventually go away when the _var and _out classes are - // generated using templates -public: - be_visitor_sequence_elemtype (be_visitor_context *ctx); - // Constructor - - ~be_visitor_sequence_elemtype (void); - // destructor - - // = Visitors - virtual int visit_predefined_type (be_predefined_type *node); - virtual int visit_interface (be_interface *node); - virtual int visit_interface_fwd (be_interface_fwd *node); - virtual int visit_structure (be_structure *node); - virtual int visit_enum (be_enum *node); - virtual int visit_exception (be_exception *node); - virtual int visit_union (be_union *node); - virtual int visit_array (be_array *node); - virtual int visit_sequence (be_sequence *node); - virtual int visit_typedef (be_typedef *node); - virtual int visit_string (be_string *node); - -protected: - int visit_node (be_type *); - // helper that does the common job - -}; - -#endif /* TAO_BE_VISITOR_SEQUENCE_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_structure.h b/TAO/TAO_IDL/be_include/be_visitor_structure.h deleted file mode 100644 index 5c643d48c23..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_structure.h +++ /dev/null @@ -1,121 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_structure.h -// -// = DESCRIPTION -// Concrete visitor for the Structure class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_STRUCTURE_H) -#define TAO_BE_VISITOR_STRUCTURE_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -class be_visitor_structure : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_structure - // - // = DESCRIPTION - // This is the base visitor for structure - // - // -public: - be_visitor_structure (be_visitor_context *ctx); - // constructureor - - ~be_visitor_structure (void); - // destructureor - - virtual int visit_structure (be_structure *node); - // visit structure. We provide code for this method in the derived class - - // =visit operations on syntactically valid elements in our scope - - virtual int visit_field (be_field *node); - // visit field -}; - -class be_visitor_structure_ch : public be_visitor_structure -{ - // - // = TITLE - // be_visitor_structure_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for structure - // - // -public: - be_visitor_structure_ch (be_visitor_context *ctx); - // constructureor - - ~be_visitor_structure_ch (void); - // destructureor - - virtual int visit_structure (be_structure *node); - // visit structure. We provide code for this method in the derived class - -}; - -class be_visitor_structure_ci : public be_visitor_structure -{ - // - // = TITLE - // be_visitor_structure_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for structure - // - // -public: - be_visitor_structure_ci (be_visitor_context *ctx); - // constructureor - - ~be_visitor_structure_ci (void); - // destructureor - - virtual int visit_structure (be_structure *node); - // visit structure. We provide code for this method in the derived class - -}; - -class be_visitor_structure_cs : public be_visitor_structure -{ - // - // = TITLE - // be_visitor_structure_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for structure - // - // -public: - be_visitor_structure_cs (be_visitor_context *ctx); - // constructureor - - ~be_visitor_structure_cs (void); - // destructureor - - virtual int visit_structure (be_structure *node); - // visit structure. We provide code for this method in the derived class - -}; - - -#endif // TAO_BE_VISITOR_STRUCTURE_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_typedef.h b/TAO/TAO_IDL/be_include/be_visitor_typedef.h deleted file mode 100644 index 270f2aae6a0..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_typedef.h +++ /dev/null @@ -1,182 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_typedef.h -// -// = DESCRIPTION -// Concrete visitor for the Typedef class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_TYPEDEF_H) -#define TAO_BE_VISITOR_TYPEDEF_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -class be_visitor_typedef : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_typedef - // - // = DESCRIPTION - // This is a concrete visitor for typedef that abstracts all common tasks - // - -public: - be_visitor_typedef (be_visitor_context *ctx); - // constructor - - ~be_visitor_typedef (void); - // destructor - - virtual int visit_typedef (be_typedef *node); - // must be overridden - - // =visit methods on all elements syntactically valid as types that can be - // typedefed. - - virtual int visit_array (be_array *node); - // visit a array - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type node - - virtual int visit_string (be_string *node); - // visit a typedef - - virtual int visit_sequence (be_sequence *node); - // visit a sequence - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - -}; - -// we need derived typedef visitors for the client files. - -class be_visitor_typedef_ch : public be_visitor_typedef -{ - // - // = TITLE - // be_visitor_typedef_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for typedef - // - // -public: - be_visitor_typedef_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_typedef_ch (void); - // destructor - - virtual int visit_typedef (be_typedef *node); - // visit typedef. We provide code for this method in the derived class - - // =visit methods on all elements syntactically valid as types that can be - // typedefed. - - virtual int visit_array (be_array *node); - // visit a array - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type node - - virtual int visit_string (be_string *node); - // visit a typedef - - virtual int visit_sequence (be_sequence *node); - // visit a sequence - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - -}; - -class be_visitor_typedef_ci : public be_visitor_typedef -{ - // - // = TITLE - // be_visitor_typedef_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for typedef - // - // -public: - be_visitor_typedef_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_typedef_ci (void); - // destructor - - virtual int visit_typedef (be_typedef *node); - // visit typedef. We provide code for this method in the derived class - - // =visit methods on all elements syntactically valid as types that can be - // typedefed. - - virtual int visit_array (be_array *node); - // visit a array - - virtual int visit_sequence (be_sequence *node); - // visit a sequence - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - -}; - -class be_visitor_typedef_cs : public be_visitor_typedef -{ - // - // = TITLE - // be_visitor_typedef_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for typedef - // - // -public: - be_visitor_typedef_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_typedef_cs (void); - // destructor - - virtual int visit_typedef (be_typedef *node); - // visit typedef. We provide code for this method in the derived class - -}; - - -#endif // TAO_BE_VISITOR_TYPEDEF_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_union.h b/TAO/TAO_IDL/be_include/be_visitor_union.h deleted file mode 100644 index 5ed4437fa2c..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union.h +++ /dev/null @@ -1,200 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_union.h -// -// = DESCRIPTION -// Concrete visitor for the Union class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_UNION_H) -#define TAO_BE_VISITOR_UNION_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -class be_visitor_union : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_union - // - // = DESCRIPTION - // This is the base visitor for union - // - // -public: - be_visitor_union (be_visitor_context *ctx); - // constructor - - ~be_visitor_union (void); - // destructor - - virtual int visit_union (be_union *node); - // visit union. We provide code for this method in the derived class - - // =visit operations on syntactically valid elements in our scope - - virtual int visit_union_branch (be_union_branch *node); - // visit union_branch -}; - -class be_visitor_union_ch : public be_visitor_union -{ - // - // = TITLE - // be_visitor_union_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for union - // - // -public: - be_visitor_union_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_ch (void); - // destructor - - virtual int visit_union (be_union *node); - // visit union. We provide code for this method in the derived class - -}; - -class be_visitor_union_ci : public be_visitor_union -{ - // - // = TITLE - // be_visitor_union_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for union - // - // -public: - be_visitor_union_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_ci (void); - // destructor - - virtual int visit_union (be_union *node); - // visit union. We provide code for this method in the derived class - -}; - -class be_visitor_union_cs : public be_visitor_union -{ - // - // = TITLE - // be_visitor_union_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for union - // - // -public: - be_visitor_union_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_cs (void); - // destructor - - virtual int visit_union (be_union *node); - // visit union. We provide code for this method in the derived class - -}; - -class be_visitor_union_discriminant_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_discriminant_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for union - // discriminant - // - // -public: - be_visitor_union_discriminant_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_discriminant_ch (void); - // destructor - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_predefined_type (be_predefined_type *node); - // visit a predefined type - - virtual int visit_typedef (be_typedef *node); - // visit a typedef node -}; - -class be_visitor_union_discriminant_ci : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_discriminant_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for union - // discriminant - // - // -public: - be_visitor_union_discriminant_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_discriminant_ci (void); - // destructor - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_predefined_type (be_predefined_type *node); - // visit a predefined type - - virtual int visit_typedef (be_typedef *node); - // visit a typedef node -}; - -class be_visitor_union_discriminant_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_discriminant_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for union - // discriminant - // - // -public: - be_visitor_union_discriminant_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_discriminant_cs (void); - // destructor - - virtual int visit_enum (be_enum *node); - // visit an enum. Required to generate the typecode for an enum definition - // appearing side the union - -}; - -#endif // TAO_BE_VISITOR_UNION_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_union_branch.h b/TAO/TAO_IDL/be_include/be_visitor_union_branch.h deleted file mode 100644 index 780099165eb..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union_branch.h +++ /dev/null @@ -1,254 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_union_branch.h -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Union_Branch" node -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_UNION_BRANCH_H) -#define TAO_BE_VISITOR_UNION_BRANCH_H - -#include "be_visitor_decl.h" - -class be_visitor_union_branch_public_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_branch_public_ch - // - // = DESCRIPTION - // This is a concrete visitor for the be_union_branch node for the client - // header. This generates the code for the public section of the "union" - // class - // -public: - be_visitor_union_branch_public_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_branch_public_ch (void); - // destructor - - virtual int visit_union_branch (be_union_branch *node); - // visit the union_branch node - - // =visit operations on all possible data types that a union_branch can be - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit enum type - - virtual int visit_interface (be_interface *node); - // visit interface type - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward type - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_typedef (be_typedef *node); - // visit typedefed type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -class be_visitor_union_branch_private_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_branch_private_ch - // - // = DESCRIPTION - // This is a concrete visitor for the be_union_branch node for the client - // header. This generates the code for the private section of the "union" - // class - // -public: - be_visitor_union_branch_private_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_branch_private_ch (void); - // destructor - - virtual int visit_union_branch (be_union_branch *node); - // visit the union_branch node - - // =visit operations on all possible data types that a union_branch can be - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit enum type - - virtual int visit_interface (be_interface *node); - // visit interface type - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward type - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_typedef (be_typedef *node); - // visit typedefed type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -class be_visitor_union_branch_public_ci : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_branch_public_ci - // - // = DESCRIPTION - // This visitor is used to generate the accessors for the members of the - // union - // -public: - be_visitor_union_branch_public_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_branch_public_ci (void); - // destructor - - virtual int visit_union_branch (be_union_branch *node); - // visit the union_branch node - - // =visit operations on all possible data types that a union_branch can be - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit enum type - - virtual int visit_interface (be_interface *node); - // visit interface type - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward type - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_typedef (be_typedef *node); - // visit typedefed type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -class be_visitor_union_branch_public_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_branch_public_cs - // - // = DESCRIPTION - // This visitor is used to generate implementation such as typecodes for - // constructed types - // -public: - be_visitor_union_branch_public_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_branch_public_cs (void); - // destructor - - virtual int visit_union_branch (be_union_branch *node); - // visit the union_branch node - - // =visit operations on all possible data types that a union_branch can be - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit enum type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -class be_visitor_union_branch_public_assign_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_branch_public_assign_cs - // - // = DESCRIPTION - // This is used to generate the body of the assignment operator and the - // copy constructor of the union class - // -public: - be_visitor_union_branch_public_assign_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_branch_public_assign_cs (void); - // destructor - - virtual int visit_union_branch (be_union_branch *node); - // visit the union_branch node - -}; - -#endif // TAO_BE_VISITOR_UNION_BRANCH_H |