diff options
Diffstat (limited to 'TAO/TAO_IDL/be_include')
12 files changed, 721 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be_include/be.h b/TAO/TAO_IDL/be_include/be.h new file mode 100644 index 00000000000..732cfa46729 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be.h @@ -0,0 +1,148 @@ +// $Id$ + +/* + +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 (_MSC_VER) +#if (_MSC_VER >= 1200) +#pragma warning(push) +#endif /* _MSC_VER >= 1200 */ +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +// ACE includes + +#include "ace/ACE.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/OS.h" +#include "ace/Singleton.h" +#include "ace/Synch.h" +#include "ace/Log_Msg.h" +#include "ace/Containers.h" +#include "ace/Process.h" + +// BE includes + +#include "be_decl.h" // class BE_Decl +#include "be_scope.h" // class BE_Scope +#include "be_generator.h" // class BE_generator + +#include "be_global.h" // global data for back end +#include "be_extern.h" // pointer to global BE + // data object + +#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_valuetype.h" // class be_valuetype +#include "be_valuetype_fwd.h" // class be_valuetype_fwd +#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_factory.h" // class be_factory + +#include "be_helper.h" // helper functions +#include "be_codegen.h" // code generator +#include "be_stream_factory.h" // output stream factory + +#include "be_visitor.h" // abstract visitor +#include "be_visitor_factory.h" // visitor factory +#include "be_visitor_context.h" // visitor context +#include "be_visitor_ami_pre_proc.h" // generate AMI implied IDL +#include "be_visitor_amh_pre_proc.h" // generate AMH implied IDL + +#include "be_interface_strategy.h" // strategy for interface nodes + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +#pragma warning(pop) +#endif /* _MSC_VER */ + +#endif /* _BE_BE_HH */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/direct_collocated_sh.h b/TAO/TAO_IDL/be_include/be_visitor_interface/direct_collocated_sh.h new file mode 100644 index 00000000000..76e937d32e9 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_interface/direct_collocated_sh.h @@ -0,0 +1,42 @@ +// +// $Id$ +// +/* -*- c++ -*- */ +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// direct_collocated_sh.h +// +// = DESCRIPTION +// Concrete visitor for the Interface node. +// This provides code generation for direct collocated classes in server header +// +// = AUTHOR +// Aniruddha Gokhale +// +// ============================================================================ + +#ifndef _BE_INTERFACE_DIRECT_COLLOCATED_SH_H_ +#define _BE_INTERFACE_DIRECT_COLLOCATED_SH_H_ + +class be_visitor_interface_direct_collocated_sh : public be_visitor_interface +{ + // = TITLE + // Generate the "direct collocated" class declaration. + +public: + be_visitor_interface_direct_collocated_sh (be_visitor_context *ctx); + // constructor + + virtual ~be_visitor_interface_direct_collocated_sh (void); + // destructor + + virtual int visit_interface (be_interface *node); + // visit an interface + +}; + +#endif /* _BE_INTERFACE_DIRECT_COLLOCATED_SH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/direct_collocated_ss.h b/TAO/TAO_IDL/be_include/be_visitor_interface/direct_collocated_ss.h new file mode 100644 index 00000000000..faca2392b8e --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_interface/direct_collocated_ss.h @@ -0,0 +1,47 @@ +// +// $Id$ +// +/* -*- c++ -*- */ +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// driect_collocated_ss.h +// +// = DESCRIPTION +// Concrete visitor for the Interface node. +// This provides code generation for direct collocated classes in server skeleton +// +// = AUTHOR +// Aniruddha Gokhale +// +// ============================================================================ + +#ifndef _BE_INTERFACE_DIRECT_COLLOCATED_SS_H_ +#define _BE_INTERFACE_DIRECT_COLLOCATED_SS_H_ + +class be_visitor_interface_direct_collocated_ss : public be_visitor_interface +{ + // = TITLE + // Generate the "direct collocated" class declaration. + +public: + be_visitor_interface_direct_collocated_ss (be_visitor_context *ctx); + // constructor + + virtual ~be_visitor_interface_direct_collocated_ss (void); + // destructor + + virtual int visit_interface (be_interface *node); + // visit interface + + static int collocated_ctor_helper (be_interface *, + be_interface *, + TAO_OutStream *os); + // helper method passed to the template method to invoke ctors of all the + // base classes. +}; + +#endif /* _BE_DIRECT_INTERFACE_COLLOCATED_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/interceptors_ch.h b/TAO/TAO_IDL/be_include/be_visitor_interface/interceptors_ch.h new file mode 100644 index 00000000000..aefd8f0cbdf --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_interface/interceptors_ch.h @@ -0,0 +1,43 @@ +// +// $Id$ +// +/* -*- c++ -*- */ +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// interceptors_ch.h +// +// = DESCRIPTION +// Concrete visitor for the Interface node. +// This provides code generation for interceptor classes for an +// interface in the client header. +// +// = AUTHOR +// Kirthika Parameswaran +// +// ============================================================================ + +#ifndef _BE_INTERFACE_INTERCEPTORS_CH_H_ +#define _BE_INTERFACE_INTERCEPTORS_CH_H_ + +class be_visitor_interface_interceptors_ch : public be_visitor_interface +{ + // = TITLE + // Generate the "thru_poa collocated" class declaration. + +public: + be_visitor_interface_interceptors_ch (be_visitor_context *ctx); + // constructor + + virtual ~be_visitor_interface_interceptors_ch (void); + // destructor + + virtual int visit_interface (be_interface *node); + // visit an interface + +}; + +#endif /* _BE_INTERFACE_INTERCEPTORS_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/thru_poa_collocated_sh.h b/TAO/TAO_IDL/be_include/be_visitor_interface/thru_poa_collocated_sh.h new file mode 100644 index 00000000000..89a73401341 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_interface/thru_poa_collocated_sh.h @@ -0,0 +1,42 @@ +// +// $Id$ +// +/* -*- c++ -*- */ +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// thru_poa_collocated_sh.h +// +// = DESCRIPTION +// Concrete visitor for the Interface node. +// This provides code generation for thru_poa collocated classes in server header +// +// = AUTHOR +// Aniruddha Gokhale +// +// ============================================================================ + +#ifndef _BE_INTERFACE_THRU_POA_COLLOCATED_SH_H_ +#define _BE_INTERFACE_THRU_POA_COLLOCATED_SH_H_ + +class be_visitor_interface_thru_poa_collocated_sh : public be_visitor_interface +{ + // = TITLE + // Generate the "thru_poa collocated" class declaration. + +public: + be_visitor_interface_thru_poa_collocated_sh (be_visitor_context *ctx); + // constructor + + virtual ~be_visitor_interface_thru_poa_collocated_sh (void); + // destructor + + virtual int visit_interface (be_interface *node); + // visit an interface + +}; + +#endif /* _BE_INTERFACE_THRU_POA_COLLOCATED_SH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/thru_poa_collocated_ss.h b/TAO/TAO_IDL/be_include/be_visitor_interface/thru_poa_collocated_ss.h new file mode 100644 index 00000000000..9348412e9c3 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_interface/thru_poa_collocated_ss.h @@ -0,0 +1,47 @@ +// +// $Id$ +// +/* -*- c++ -*- */ +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// thru_poa_collocated_ss.h +// +// = DESCRIPTION +// Concrete visitor for the Interface node. +// This provides code generation for thru_poa collocated classes in server skeleton +// +// = AUTHOR +// Aniruddha Gokhale +// +// ============================================================================ + +#ifndef _BE_INTERFACE_THRU_POA_COLLOCATED_SS_H_ +#define _BE_INTERFACE_THRU_POA_COLLOCATED_SS_H_ + +class be_visitor_interface_thru_poa_collocated_ss : public be_visitor_interface +{ + // = TITLE + // Generate the "thru_poa collocated" class declaration. + +public: + be_visitor_interface_thru_poa_collocated_ss (be_visitor_context *ctx); + // constructor + + virtual ~be_visitor_interface_thru_poa_collocated_ss (void); + // destructor + + virtual int visit_interface (be_interface *node); + // visit interface + + static int collocated_ctor_helper (be_interface *, + be_interface *, + TAO_OutStream *os); + // helper method passed to the template method to invoke ctors of all the + // base classes. +}; + +#endif /* _BE_INTERFACE_THRU_POA_COLLOCATED_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/direct_collocated_sh.h b/TAO/TAO_IDL/be_include/be_visitor_operation/direct_collocated_sh.h new file mode 100644 index 00000000000..413d7ce3059 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_operation/direct_collocated_sh.h @@ -0,0 +1,51 @@ +// +// $Id$ +// + +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// direct_collocated_ch.h +// +// = DESCRIPTION Visitor for generating code for IDL operations for +// the direct collocated case inside of the servant header +// +// = AUTHOR +// Aniruddha Gokhale +// +// ============================================================================ + +#ifndef _BE_VISITOR_OPERATION_DIRECT_COLLOCATED_SH_H_ +#define _BE_VISITOR_OPERATION_DIRECT_COLLOCATED_SH_H_ + +// ************************************************************ +// Operation visitor for server header in the direct collocated class +// ************************************************************ + +class be_visitor_operation_direct_collocated_sh : public be_visitor_scope +{ + // + // = TITLE + // be_visitor_operation_direct_collocated_sh + // + // = DESCRIPTION + // This is a concrete visitor to generate the server header for operation + // in the direct collocated class + // + // +public: + be_visitor_operation_direct_collocated_sh (be_visitor_context *ctx); + // constructor + + ~be_visitor_operation_direct_collocated_sh (void); + // destructor + + virtual int visit_operation (be_operation *node); + // visit operation node. + +}; + +#endif /* _BE_VISITOR_OPERATION_DIRECT_COLLOCATED_SH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/direct_collocated_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/direct_collocated_ss.h new file mode 100644 index 00000000000..c6ebe06940f --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_operation/direct_collocated_ss.h @@ -0,0 +1,57 @@ +// +// $Id$ +// + +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// direct_collocated_ss.h +// +// = DESCRIPTION +// Visitor for generating code for IDL operations for the direct_collocated case +// inside of the servant skeleton +// +// = AUTHOR +// Aniruddha Gokhale +// +// ============================================================================ + +#ifndef _BE_VISITOR_OPERATION_DIRECT_COLLOCATED_SS_H_ +#define _BE_VISITOR_OPERATION_DIRECT_COLLOCATED_SS_H_ + +// ***************************************************************** +// Operation visitor for server skeletons for the direct collocated class +// ***************************************************************** + +class be_visitor_operation_direct_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 direct collocated class + // + // +public: + be_visitor_operation_direct_collocated_ss (be_visitor_context *ctx); + // constructor + + ~be_visitor_operation_direct_collocated_ss (void); + // destructor + + virtual int visit_operation (be_operation *node); + // visit operation node. + + virtual int gen_invoke (be_visitor_context &ctx, be_operation *node); + // A helper method to generate operation invocation code. + + virtual int void_return_type (be_type *bt); + // is my return type void? +}; + +#endif /* _BE_VISITOR_OPERATION_DIRECT_COLLOCATED_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/inv_arglist.h b/TAO/TAO_IDL/be_include/be_visitor_operation/inv_arglist.h new file mode 100644 index 00000000000..3b1cb7d4db3 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_operation/inv_arglist.h @@ -0,0 +1,55 @@ +// $Id$ +// +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// inv_arglist.h +// +// = DESCRIPTION +// Visitor for generating signature needed to invoke a given +// operation. +// +// = AUTHOR +// Angelo Corsaro +// +// ============================================================================ + +#ifndef _BE_VISITOR_OPERATION_INV_ARGLIST_H_ +#define _BE_VISITOR_OPERATION_INV_ARGLIST_H_ + +// ****************************************************************************** +// Operation visitor for argument list - generates parameters in the signature +// ****************************************************************************** + +class be_visitor_operation_inv_arglist : public be_visitor_operation +{ + // + // = TITLE + // be_visitor_operaion_inv_arglist + // + // = DESCRIPTION + // This visitor generates the argument list needed to + // invoke a given operation. No parentesys are generated + // to give the caller code the abity to stick in other + // parameter that might be needed. + // + // +public: + be_visitor_operation_inv_arglist (be_visitor_context *ctx); + // constructor + + ~be_visitor_operation_inv_arglist (void); + // destructor + + virtual int visit_operation (be_operation *node); + // visit the operation + + virtual int visit_argument (be_argument *node); + // visit each argument + +}; + +#endif /* _BE_VISITOR_OPERATION_INV_ARGLIST_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/thru_poa_collocated_sh.h b/TAO/TAO_IDL/be_include/be_visitor_operation/thru_poa_collocated_sh.h new file mode 100644 index 00000000000..26aa40394c6 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_operation/thru_poa_collocated_sh.h @@ -0,0 +1,52 @@ +// +// $Id$ +// + +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// thru_poa_collocated_ch.h +// +// = DESCRIPTION +// Visitor for generating code for IDL operations for the thru_poa collocated case +// inside of the servant header +// +// = AUTHOR +// Aniruddha Gokhale +// +// ============================================================================ + +#ifndef _BE_VISITOR_OPERATION_THRU_POA_COLLOCATED_SH_H_ +#define _BE_VISITOR_OPERATION_THRU_POA_COLLOCATED_SH_H_ + +// ************************************************************ +// Operation visitor for server header in the thru_poa collocated class +// ************************************************************ + +class be_visitor_operation_thru_poa_collocated_sh : public be_visitor_scope +{ + // + // = TITLE + // be_visitor_operation_thru_poa_collocated_sh + // + // = DESCRIPTION + // This is a concrete visitor to generate the server header for operation + // in the thru_poa collocated class + // + // +public: + be_visitor_operation_thru_poa_collocated_sh (be_visitor_context *ctx); + // constructor + + ~be_visitor_operation_thru_poa_collocated_sh (void); + // destructor + + virtual int visit_operation (be_operation *node); + // visit operation node. + +}; + +#endif /* _BE_VISITOR_OPERATION_THRU_POA_COLLOCATED_SH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/thru_poa_collocated_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/thru_poa_collocated_ss.h new file mode 100644 index 00000000000..2c63169caea --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_operation/thru_poa_collocated_ss.h @@ -0,0 +1,57 @@ +// +// $Id$ +// + +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// thru_poa_collocated_ss.h +// +// = DESCRIPTION +// Visitor for generating code for IDL operations for the thru_poa collocated case +// inside of the servant skeleton +// +// = AUTHOR +// Aniruddha Gokhale +// +// ============================================================================ + +#ifndef _BE_VISITOR_OPERATION_THRU_POA_COLLOCATED_SS_H_ +#define _BE_VISITOR_OPERATION_THRU_POA_COLLOCATED_SS_H_ + +// ***************************************************************** +// Operation visitor for server skeletons for the thru_poa collocated class +// ***************************************************************** + +class be_visitor_operation_thru_poa_collocated_ss : public be_visitor_operation +{ + // + // = TITLE + // be_visitor_operation_ss + // + // = DESCRIPTION + // This is a concrete visitor to generate the server skeletons for + // operation in the thru_poa collocated class + // + // +public: + be_visitor_operation_thru_poa_collocated_ss (be_visitor_context *ctx); + // constructor + + ~be_visitor_operation_thru_poa_collocated_ss (void); + // destructor + + virtual int visit_operation (be_operation *node); + // visit operation node. + + virtual int gen_invoke (be_visitor_context &ctx, be_operation *node); + // A helper method to generate operation invocation code. + + virtual int void_return_type (be_type *bt); + // is my return type void? +}; + +#endif /* _BE_VISITOR_OPERATION_THRU_POA_COLLOCATED_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_access_cs.h b/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_access_cs.h new file mode 100644 index 00000000000..b1d76206108 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_access_cs.h @@ -0,0 +1,80 @@ +/* -*- c++ -*- */ +// +// $Id$ +// + +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// public_access_cs.h +// +// = DESCRIPTION +// Visitor for the Union class. +// This one generates code for the access method of the union class +// for the union members. This is primarily used by the marshaling engine. +// +// = AUTHOR +// Aniruddha Gokhale +// +// ============================================================================ + +#ifndef _BE_VISITOR_UNION_BRANCH_PUBLIC_ACCESS_CS_H_ +#define _BE_VISITOR_UNION_BRANCH_PUBLIC_ACCESS_CS_H_ + +class be_visitor_union_branch_public_access_cs : public be_visitor_decl +{ + // + // = TITLE + // be_visitor_union_branch_public_access_cs + // + // = DESCRIPTION + // This is used to generate the body of the access method + // +public: + be_visitor_union_branch_public_access_cs (be_visitor_context *ctx); + // constructor + + ~be_visitor_union_branch_public_access_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_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 + +}; + +#endif /* _BE_VISITOR_UNION_BRANCH_PUBLIC_ACCESS_CS_H_ */ |