lu_lu.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 #ifndef lestes__lang__cplus__sem__lu_lu_g_hh__included
00004 #define lestes__lang__cplus__sem__lu_lu_g_hh__included
00005 
00006 #include <lestes/common.hh>
00007 #include <lestes/lang/cplus/sem/lu_typedef.hh>
00008 #include <lestes/lang/cplus/sem/ss_declaration_visitor.v.g.hh>
00009 #include <lestes/lang/cplus/sem/ss_type_visitor.v.g.hh>
00010 #include <lestes/std/set.hh>
00011 
00012 #include <lestes/std/objectize_macros.hh>
00013 package(lestes);
00014 package(std);
00015 class object;
00016 end_package(std);
00017 end_package(lestes);
00018 
00019 package(lestes);
00020 package(lang);
00021 package(cplus);
00022 package(sem);
00023 
00024 
00025 class ss_decl_seq;
00026 class ss_declaration_time;
00027 class ss_type;
00028 class lu_filter;
00029 class lu_params;
00030 class lu_lookup;
00031 class lu_lookup_in_type;
00032 
00033 
00034 class lu_params : public ::lestes::std::object {
00035 public:
00036         enum using_directives_handling_type {
00037                 UDIR_IGNORE,
00038                 UDIR_ALWAYS,
00039                 UDIR_FALLBACK
00040         };
00041 enum using_declarations_handling_type {
00042                 UDECL_IGNORE,
00043                 UDECL_THROUGH,
00044                 UDECL_RESOLVE_BEFORE_FILTER,
00045                 UDECL_RESOLVE_AFTER_FILTER
00046         };
00047 enum parent_search_type {
00048                 SEARCH_PARENTS,
00049                 SKIP_PARENTS
00050         };
00051 
00052         //! The method using_directives_handling_get returns the value of the field lu_params::using_directives_handling.
00053         using_directives_handling_type using_directives_handling_get() const;
00054 
00055         //! The method using_directives_handling_set sets the field lu_params::using_directives_handling to the given value.
00056         void using_directives_handling_set(using_directives_handling_type);
00057 
00058         //! The method using_declarations_handling_get returns the value of the field lu_params::using_declarations_handling.
00059         using_declarations_handling_type using_declarations_handling_get() const;
00060 
00061         //! The method using_declarations_handling_set sets the field lu_params::using_declarations_handling to the given value.
00062         void using_declarations_handling_set(using_declarations_handling_type);
00063 
00064         //! The method parent_search_get returns the value of the field lu_params::parent_search.
00065         parent_search_type parent_search_get() const;
00066 
00067         //! The method parent_search_set sets the field lu_params::parent_search to the given value.
00068         void parent_search_set(parent_search_type);
00069 
00070         //! The method time_get returns the value of the field lu_params::time.
00071         ptr< ss_declaration_time > time_get() const;
00072 
00073         //! The method time_set sets the field lu_params::time to the given value.
00074         void time_set(const ptr< ss_declaration_time > &);
00075 
00076         //! The method filter_get returns the value of the field lu_params::filter.
00077         ptr< lu_filter > filter_get() const;
00078 
00079         //! The method filter_set sets the field lu_params::filter to the given value.
00080         void filter_set(const ptr< lu_filter > &);
00081 
00082         
00083         //! First generated factory method for class lu_params.
00084         static ptr< lu_params > create (
00085                 using_directives_handling_type a__lu_params__using_directives_handling,
00086                 using_declarations_handling_type a__lu_params__using_declarations_handling,
00087                 parent_search_type a__lu_params__parent_search,
00088                 ptr< ss_declaration_time > a__lu_params__time,
00089                 ptr< lu_filter > a__lu_params__filter);
00090 
00091         
00092 
00093         //! for purposes of dumping
00094         virtual ptr<reflection_list> reflection_get() const;
00095         //! for purposes of dumping
00096         virtual ptr<field_list_list> field_values_get() const;
00097         
00098 protected:
00099         //! Generated constructor for class lu_params.
00100         lu_params (
00101                 using_directives_handling_type a__lu_params__using_directives_handling,
00102                 using_declarations_handling_type a__lu_params__using_declarations_handling,
00103                 parent_search_type a__lu_params__parent_search,
00104                 ptr< ss_declaration_time > a__lu_params__time,
00105                 ptr< lu_filter > a__lu_params__filter);
00106 
00107         //! Marking routine for class lu_params. 
00108         virtual void gc_mark();
00109 
00110 private:
00111         using_directives_handling_type using_directives_handling;
00112         using_declarations_handling_type using_declarations_handling;
00113         parent_search_type parent_search;
00114         srp< ss_declaration_time > time;
00115         srp< lu_filter > filter;
00116         static ptr<reflection_list> reflection;
00117         
00118 }; // lu_params
00119 
00120 
00121 class lu_lookup : public ss_declaration_default_visitor {
00122 public:
00123         //! The method params_get returns the value of the field lu_lookup::params.
00124         ptr< lu_params > params_get() const;
00125 
00126         //! The method params_set sets the field lu_lookup::params to the given value.
00127         void params_set(const ptr< lu_params > &);
00128 
00129         //! The method visited_seqs_get returns the value of the field lu_lookup::visited_seqs.
00130         ptr< decl_seq_set_type > visited_seqs_get() const;
00131 
00132         //! The method visited_seqs_set sets the field lu_lookup::visited_seqs to the given value.
00133         void visited_seqs_set(const ptr< decl_seq_set_type > &);
00134 
00135         //! The method lookup_result_get returns the value of the field lu_lookup::lookup_result.
00136         ptr< declaration_set_type > lookup_result_get() const;
00137 
00138         //! The method lookup_result_set sets the field lu_lookup::lookup_result to the given value.
00139         void lookup_result_set(const ptr< declaration_set_type > &);
00140 
00141         ptr< declaration_set_type > main(ptr< ss_decl_seq > seq, ptr< lu_params > params);
00142 
00143         //! Used internally, but can be used from outside as well.
00144         static ptr< declaration_set_type > simple_scan(ptr< ss_decl_seq > seq, ptr< lu_params > params);
00145 
00146         //! Used internally, just a wrapper around simple_scan() that adds params to the argument list.
00147         ptr< declaration_set_type > internal_simple_scan(ptr< ss_decl_seq > seq);
00148 
00149         //! Used internally; scans given decl_seq and its using-directives using params.
00150         ptr< declaration_set_type > deep_scan(ptr< ss_decl_seq > starting_seq);
00151 
00152         virtual void default_action(ptr< ::lestes::lang::cplus::sem::ss_declaration > );
00153 
00154         virtual void visit_ss_namespace_definition(ptr< ::lestes::lang::cplus::sem::ss_namespace_definition > );
00155 
00156         virtual void visit_ss_function_declaration(ptr< ::lestes::lang::cplus::sem::ss_function_declaration > );
00157 
00158         virtual void visit_ss_compound_stmt_declaration(ptr< ::lestes::lang::cplus::sem::ss_compound_stmt_declaration > );
00159 
00160         virtual void visit_ss_structure_declaration(ptr< ::lestes::lang::cplus::sem::ss_structure_declaration > );
00161 
00162         
00163         //! Generated instance() method for singleton class lu_lookup.
00164         static ptr< lu_lookup > instance ();
00165 
00166         
00167         //! "visit-return" method
00168         ptr< declaration_set_type > lookup_by_decl( const ptr< ::lestes::lang::cplus::sem::ss_declaration > & );
00169 
00170         //! for purposes of dumping
00171         virtual ptr<reflection_list> reflection_get() const;
00172         //! for purposes of dumping
00173         virtual ptr<field_list_list> field_values_get() const;
00174         
00175 protected:
00176         //! Generated constructor for class lu_lookup.
00177         lu_lookup (
00178                 ptr< lu_params > a__lu_lookup__params,
00179                 ptr< decl_seq_set_type > a__lu_lookup__visited_seqs,
00180                 ptr< declaration_set_type > a__lu_lookup__lookup_result);
00181 
00182         //! Marking routine for class lu_lookup. 
00183         virtual void gc_mark();
00184 
00185 private:
00186         //! Used internally by the visitor; holds the parameters of the lookup.
00187         srp< lu_params > params;
00188         //! Used internally by the visitor; holds decl_seqs already visited during current invocation of the 'main' method.
00189         srp< decl_seq_set_type > visited_seqs;
00190         srp< declaration_set_type > lookup_result;
00191         static ptr<reflection_list> reflection;
00192         static ptr<lu_lookup> the_instance;
00193         
00194 }; // lu_lookup
00195 
00196 
00197 class lu_lookup_in_type : public ss_type_default_visitor {
00198 public:
00199         //! The method params_get returns the value of the field lu_lookup_in_type::params.
00200         ptr< lu_params > params_get() const;
00201 
00202         //! The method params_set sets the field lu_lookup_in_type::params to the given value.
00203         void params_set(const ptr< lu_params > &);
00204 
00205         //! The method lookup_result_get returns the value of the field lu_lookup_in_type::lookup_result.
00206         ptr< declaration_set_type > lookup_result_get() const;
00207 
00208         //! The method lookup_result_set sets the field lu_lookup_in_type::lookup_result to the given value.
00209         void lookup_result_set(const ptr< declaration_set_type > &);
00210 
00211         ptr< declaration_set_type > main(ptr< ss_type > type, ptr< lu_params > params);
00212 
00213         //! Used internally, just a wrapper around lu_lookup::simple_scan() that adds params to the argument list.
00214         ptr< declaration_set_type > internal_simple_scan(ptr< ss_decl_seq > seq);
00215 
00216         virtual void default_action(ptr< ::lestes::lang::cplus::sem::ss_type > );
00217 
00218         virtual void visit_ss_class(ptr< ::lestes::lang::cplus::sem::ss_class > );
00219 
00220         virtual void visit_ss_union(ptr< ::lestes::lang::cplus::sem::ss_union > );
00221 
00222         
00223         //! Generated instance() method for singleton class lu_lookup_in_type.
00224         static ptr< lu_lookup_in_type > instance ();
00225 
00226         
00227         //! "visit-return" method
00228         ptr< declaration_set_type > lookup_by_type( const ptr< ::lestes::lang::cplus::sem::ss_type > & );
00229 
00230         //! for purposes of dumping
00231         virtual ptr<reflection_list> reflection_get() const;
00232         //! for purposes of dumping
00233         virtual ptr<field_list_list> field_values_get() const;
00234         
00235 protected:
00236         //! Generated constructor for class lu_lookup_in_type.
00237         lu_lookup_in_type (
00238                 ptr< lu_params > a__lu_lookup_in_type__params,
00239                 ptr< declaration_set_type > a__lu_lookup_in_type__lookup_result);
00240 
00241         //! Marking routine for class lu_lookup_in_type. 
00242         virtual void gc_mark();
00243 
00244 private:
00245         //! Used internally by the visitor; holds the parameters of the lookup.
00246         srp< lu_params > params;
00247         srp< declaration_set_type > lookup_result;
00248         static ptr<reflection_list> reflection;
00249         static ptr<lu_lookup_in_type> the_instance;
00250         
00251 }; // lu_lookup_in_type
00252 
00253 
00254 end_package(sem);
00255 end_package(cplus);
00256 end_package(lang);
00257 end_package(lestes);
00258 
00259 package(lestes);
00260 package(std);
00261 specialize_objectize_for_enum( ::lestes::lang::cplus::sem::lu_params::using_directives_handling_type );
00262 specialize_objectize_for_enum( ::lestes::lang::cplus::sem::lu_params::using_declarations_handling_type );
00263 specialize_objectize_for_enum( ::lestes::lang::cplus::sem::lu_params::parent_search_type );
00264 end_package(std);
00265 end_package(lestes);
00266 
00267 #endif // lestes__lang__cplus__sem__lu_lu_g_hh__included

Generated on Mon Feb 12 18:22:39 2007 for lestes by doxygen 1.5.1-20070107