Merge pull request #2303 from jwillemsen/jwi-803
[ACE_TAO.git] / TAO / TAO_IDL / include / ast_visitor_context.h
blob7890633316a37860971cd195d7eac35856a98ce7
2 /* -*- C++ -*- */
3 //=============================================================================
4 /**
5 * @file ast_visitor_context.h
7 * This class serves to provide the necessary context information to the
8 * visitor as it generates code. This may include the scope inside which the
9 * code is generated, the output file that is being used, and others. This
10 * context information will be passed to the abstract/concrete visitor
11 * factory which in turn will use it to construct the right visitor.
13 * @author Jeff Parsons & Aniruddha Gokhale
15 //=============================================================================
18 #ifndef AST_VISITOR_CONTEXT_H
19 #define AST_VISITOR_CONTEXT_H
21 #include "fe_utils.h"
23 class TAO_IDL_FE_Export ast_visitor_context
25 public:
26 ast_visitor_context ();
28 ast_visitor_context (const ast_visitor_context &ctx);
30 ~ast_visitor_context ();
32 // Accessors/mutators for template-related storage.
34 FE_Utils::T_PARAMLIST_INFO *template_params () const;
35 void template_params (FE_Utils::T_PARAMLIST_INFO *args);
37 FE_Utils::T_ARGLIST const *template_args () const;
38 void template_args (FE_Utils::T_ARGLIST const *args);
40 protected:
41 // Storage for the current template module params and args.
42 FE_Utils::T_PARAMLIST_INFO *template_params_;
43 FE_Utils::T_ARGLIST const *template_args_;
46 #endif /* AST_VISITOR_CONTEXT_H */