diff options
Diffstat (limited to 'TAO/TAO_IDL/be_include/be_visitor_argument/argument.h')
-rw-r--r-- | TAO/TAO_IDL/be_include/be_visitor_argument/argument.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/argument.h b/TAO/TAO_IDL/be_include/be_visitor_argument/argument.h new file mode 100644 index 00000000000..537811f8b94 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_argument/argument.h @@ -0,0 +1,59 @@ +// +// $Id$ +// + +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// argument.h +// +// = DESCRIPTION +// Visitors for generation of code for Arguments +// +// = AUTHOR +// Aniruddha Gokhale +// +// ============================================================================ + +#if !defined (_BE_VISITOR_ARGUMENT_ARGUMENT_H_) +#define _BE_VISITOR_ARGUMENT_ARGUMENT_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 +}; + +#endif /* _BE_VISITOR_ARGUMENT_ARGUMENT_H_ */ |