KDevelop API Documentation

languages/ada/AdaStoreWalker.hpp

Go to the documentation of this file.
00001 #ifndef INC_AdaStoreWalker_hpp_ 00002 #define INC_AdaStoreWalker_hpp_ 00003 00004 #line 1 "expandedada.store.g" 00005 00006 #include <qstring.h> 00007 #include <qstringlist.h> 00008 #include <qfileinfo.h> 00009 00010 #include <codemodel.h> 00011 #include "AdaAST.hpp" 00012 #include "ada_utils.hpp" 00013 00014 #line 15 "AdaStoreWalker.hpp" 00015 #include <antlr/config.hpp> 00016 #include "AdaStoreWalkerTokenTypes.hpp" 00017 /* $ANTLR 2.7.2: "expandedada.store.g" -> "AdaStoreWalker.hpp"$ */ 00018 #include <antlr/TreeParser.hpp> 00019 00020 #line 10 "expandedada.store.g" 00021 00022 #include <codemodel.h> 00023 #include <kdebug.h> 00024 00025 #line 26 "AdaStoreWalker.hpp" 00026 class AdaStoreWalker : public ANTLR_USE_NAMESPACE(antlr)TreeParser, public AdaStoreWalkerTokenTypes 00027 { 00028 #line 25 "expandedada.store.g" 00029 00030 private: 00031 QString m_fileName; 00032 QValueList<NamespaceDom> m_scopeStack; 00033 CodeModel* m_model; 00034 QValueList<QStringList> m_imports; 00035 NamespaceDom m_currentContainer; 00036 int m_currentAccess; 00037 bool m_addToStore; /* auxiliary variable: for the moment, this is `true' 00038 only when we are in specs, not bodies. */ 00039 bool m_isSubprogram; // auxiliary to def_id() 00040 FileDom m_file; 00041 00042 public: 00043 void setCodeModel (CodeModel* model) { m_model = model; } 00044 CodeModel* codeModel () { return m_model; } 00045 const CodeModel* codeModel () const { return m_model; } 00046 00047 QString fileName () const { return m_fileName; } 00048 void setFileName (const QString& fileName) { m_fileName = fileName; } 00049 00050 void init () { 00051 m_scopeStack.clear (); 00052 m_imports.clear (); 00053 m_currentContainer = m_model->globalNamespace (); 00054 m_scopeStack.append (m_currentContainer); 00055 m_currentAccess = CodeModelItem::Public; 00056 m_addToStore = false; 00057 m_isSubprogram = false; 00058 if (m_model->hasFile(m_fileName)) 00059 m_model->removeFile (m_model->fileByName(m_fileName)); 00060 m_file = m_model->create<FileModel>(); 00061 m_file->setName(m_fileName); 00062 m_model->addFile(m_file); 00063 } 00064 00065 void wipeout () { m_model->wipeout (); } 00066 // void out () { m_store->out (); } 00067 void removeWithReferences (const QString& fileName) { 00068 m_model->removeFile (m_model->fileByName(fileName)); 00069 } 00070 NamespaceDom insertScopeContainer 00071 (NamespaceDom scope, const QStringList & scopes ) { 00072 QStringList::ConstIterator it = scopes.begin(); 00073 QString prefix( *it ); 00074 NamespaceDom ns = scope->namespaceByName( prefix ); 00075 // kdDebug() << "insertScopeContainer begin with prefix " << prefix << endl; 00076 if (!ns.data()) { 00077 // kdDebug() << "insertScopeContainer: ns is empty" << endl; 00078 ns = m_model->create<NamespaceModel>(); 00079 // kdDebug() << "insertScopeContainer: ns created" << endl; 00080 ns->setName( prefix ); 00081 // kdDebug() << "insertScopeContainer: ns name set" << endl; 00082 scope->addNamespace( ns ); 00083 // kdDebug() << "insertScopeContainer: ns added to a scope" << endl; 00084 00085 if (scope == m_model->globalNamespace()) 00086 m_file->addNamespace( ns ); 00087 } 00088 // kdDebug() << "insertScopeContainer: while" << endl; 00089 while ( ++it != scopes.end() ) { 00090 QString nameSegment( *it ); 00091 prefix += "." + nameSegment; 00092 // kdDebug() << "insertScopeContainer: while prefix = " << prefix << endl; 00093 NamespaceDom inner = scope->namespaceByName( prefix ); 00094 if (!inner.data() ) { 00095 // kdDebug() << "insertScopeContainer: inner is empty " << endl; 00096 inner = m_model->create<NamespaceModel>(); 00097 // kdDebug() << "insertScopeContainer: inner created " << endl; 00098 inner->setName( nameSegment ); 00099 ns->addNamespace( inner ); 00100 // kdDebug() << "insertScopeContainer: inner added " << endl; 00101 } 00102 ns = inner; 00103 } 00104 return ns; 00105 } 00106 NamespaceDom defineScope( RefAdaAST namenode ) { 00107 QStringList scopes( qnamelist( namenode ) ); 00108 // kdDebug() << "defineScope: " << scopes.join(" ") << endl; 00109 NamespaceDom psc = insertScopeContainer( m_currentContainer, scopes ); 00110 // kdDebug() << "defineScope psc created" << endl; 00111 psc->setStartPosition(namenode->getLine(), namenode->getColumn()); 00112 // kdDebug() << "defineScope start position set" << endl; 00113 psc->setFileName(m_fileName); 00114 // kdDebug() << "defineScope file name set" << endl; 00115 // psc->setEndPosition (endLine, 0); 00116 // kdDebug() << "defineScope return" << endl; 00117 return psc; 00118 } 00119 #line 30 "AdaStoreWalker.hpp" 00120 public: 00121 AdaStoreWalker(); 00122 void initializeASTFactory( ANTLR_USE_NAMESPACE(antlr)ASTFactory& factory ); 00123 int getNumTokens() const 00124 { 00125 return AdaStoreWalker::NUM_TOKENS; 00126 } 00127 const char* getTokenName( int type ) const 00128 { 00129 if( type > getNumTokens() ) return 0; 00130 return AdaStoreWalker::tokenNames[type]; 00131 } 00132 public: void compilation_unit(RefAdaAST _t); 00133 public: void context_items_opt(RefAdaAST _t); 00134 public: void library_item(RefAdaAST _t); 00135 public: void subunit(RefAdaAST _t); 00136 public: void pragma(RefAdaAST _t); 00137 public: void with_clause(RefAdaAST _t); 00138 public: void compound_name(RefAdaAST _t); 00139 public: void use_clause(RefAdaAST _t); 00140 public: void subtype_mark(RefAdaAST _t); 00141 public: void lib_subprog_decl_or_rename_or_inst_or_body(RefAdaAST _t); 00142 public: void def_id(RefAdaAST _t); 00143 public: void pkg_body_part(RefAdaAST _t); 00144 public: void generic_inst(RefAdaAST _t); 00145 public: void pkg_spec_part(RefAdaAST _t); 00146 public: void renames(RefAdaAST _t); 00147 public: void generic_decl(RefAdaAST _t); 00148 public: void subprog_def_id(RefAdaAST _t); 00149 public: void subprog_decl(RefAdaAST _t); 00150 public: void formal_part_opt(RefAdaAST _t); 00151 public: void def_designator(RefAdaAST _t); 00152 public: void function_tail(RefAdaAST _t); 00153 public: void definable_operator_symbol(RefAdaAST _t); 00154 public: void spec_decl_part(RefAdaAST _t); 00155 public: void basic_declarative_items_opt(RefAdaAST _t); 00156 public: void generic_formal_part_opt(RefAdaAST _t); 00157 public: void procedure_body(RefAdaAST _t); 00158 public: void function_body(RefAdaAST _t); 00159 public: void subprog_decl_or_rename_or_inst_or_body(RefAdaAST _t); 00160 public: void subprog_decl_or_body(RefAdaAST _t); 00161 public: void package_body(RefAdaAST _t); 00162 public: void pragma_arg(RefAdaAST _t); 00163 public: void expression(RefAdaAST _t); 00164 public: void attribute_id(RefAdaAST _t); 00165 public: void modifiers(RefAdaAST _t); 00166 public: void value_s(RefAdaAST _t); 00167 public: void value(RefAdaAST _t); 00168 public: void ranged_expr_s(RefAdaAST _t); 00169 public: void ranged_expr(RefAdaAST _t); 00170 public: void simple_expression(RefAdaAST _t); 00171 public: void range(RefAdaAST _t); 00172 public: void range_constraint(RefAdaAST _t); 00173 public: void range_dots(RefAdaAST _t); 00174 public: void range_attrib_ref(RefAdaAST _t); 00175 public: void prefix(RefAdaAST _t); 00176 public: void parameter_specification(RefAdaAST _t); 00177 public: void defining_identifier_list(RefAdaAST _t); 00178 public: void init_opt(RefAdaAST _t); 00179 public: void name(RefAdaAST _t); 00180 public: void parenthesized_primary(RefAdaAST _t); 00181 public: void extension_opt(RefAdaAST _t); 00182 public: void basic_decl_item(RefAdaAST _t); 00183 public: void task_type_or_single_decl(RefAdaAST _t); 00184 public: void prot_type_or_single_decl(RefAdaAST _t); 00185 public: void decl_common(RefAdaAST _t); 00186 public: void discrim_part_opt(RefAdaAST _t); 00187 public: void task_definition_opt(RefAdaAST _t); 00188 public: void task_items_opt(RefAdaAST _t); 00189 public: void private_task_items_opt(RefAdaAST _t); 00190 public: void discriminant_specifications(RefAdaAST _t); 00191 public: void discriminant_specification(RefAdaAST _t); 00192 public: void entrydecls_repspecs_opt(RefAdaAST _t); 00193 public: void entry_declaration(RefAdaAST _t); 00194 public: void rep_spec(RefAdaAST _t); 00195 public: void discrete_subtype_def_opt(RefAdaAST _t); 00196 public: void discrete_subtype_definition(RefAdaAST _t); 00197 public: void subtype_ind(RefAdaAST _t); 00198 public: void align_opt(RefAdaAST _t); 00199 public: void comp_loc_s(RefAdaAST _t); 00200 public: void local_enum_name(RefAdaAST _t); 00201 public: void enumeration_aggregate(RefAdaAST _t); 00202 public: void protected_definition(RefAdaAST _t); 00203 public: void prot_op_decl_s(RefAdaAST _t); 00204 public: void prot_member_decl_s(RefAdaAST _t); 00205 public: void prot_op_decl(RefAdaAST _t); 00206 public: void comp_decl(RefAdaAST _t); 00207 public: void component_subtype_def(RefAdaAST _t); 00208 public: void enum_id_s(RefAdaAST _t); 00209 public: void range_constraint_opt(RefAdaAST _t); 00210 public: void array_type_declaration(RefAdaAST _t); 00211 public: void access_type_declaration(RefAdaAST _t); 00212 public: void id_and_discrim(RefAdaAST _t); 00213 public: void record_definition(RefAdaAST _t); 00214 public: void array_type_definition(RefAdaAST _t); 00215 public: void enumeration_literal_specification(RefAdaAST _t); 00216 public: void index_or_discrete_range_s(RefAdaAST _t); 00217 public: void index_or_discrete_range(RefAdaAST _t); 00218 public: void constraint_opt(RefAdaAST _t); 00219 public: void digits_constraint(RefAdaAST _t); 00220 public: void delta_constraint(RefAdaAST _t); 00221 public: void index_constraint(RefAdaAST _t); 00222 public: void discriminant_constraint(RefAdaAST _t); 00223 public: void discrete_range(RefAdaAST _t); 00224 public: void discriminant_association(RefAdaAST _t); 00225 public: void selector_names_opt(RefAdaAST _t); 00226 public: void selector_name(RefAdaAST _t); 00227 public: void component_list(RefAdaAST _t); 00228 public: void component_items(RefAdaAST _t); 00229 public: void variant_part(RefAdaAST _t); 00230 public: void discriminant_direct_name(RefAdaAST _t); 00231 public: void variant_s(RefAdaAST _t); 00232 public: void variant(RefAdaAST _t); 00233 public: void choice_s(RefAdaAST _t); 00234 public: void choice(RefAdaAST _t); 00235 public: void discrete_with_range(RefAdaAST _t); 00236 public: void mark_with_constraint(RefAdaAST _t); 00237 public: void generic_formal_parameter(RefAdaAST _t); 00238 public: void formal_array_type_declaration(RefAdaAST _t); 00239 public: void formal_access_type_declaration(RefAdaAST _t); 00240 public: void id_part(RefAdaAST _t); 00241 public: void subprogram_default_opt(RefAdaAST _t); 00242 public: void formal_package_actual_part_opt(RefAdaAST _t); 00243 public: void body_part(RefAdaAST _t); 00244 public: void declarative_part(RefAdaAST _t); 00245 public: void block_body(RefAdaAST _t); 00246 public: void declarative_item(RefAdaAST _t); 00247 public: void prot_op_bodies_opt(RefAdaAST _t); 00248 public: void block_body_opt(RefAdaAST _t); 00249 public: void handled_stmt_s(RefAdaAST _t); 00250 public: void entry_body(RefAdaAST _t); 00251 public: void statements(RefAdaAST _t); 00252 public: void except_handler_part_opt(RefAdaAST _t); 00253 public: void statement(RefAdaAST _t); 00254 public: void def_label_opt(RefAdaAST _t); 00255 public: void null_stmt(RefAdaAST _t); 00256 public: void exit_stmt(RefAdaAST _t); 00257 public: void return_stmt(RefAdaAST _t); 00258 public: void goto_stmt(RefAdaAST _t); 00259 public: void delay_stmt(RefAdaAST _t); 00260 public: void abort_stmt(RefAdaAST _t); 00261 public: void raise_stmt(RefAdaAST _t); 00262 public: void requeue_stmt(RefAdaAST _t); 00263 public: void accept_stmt(RefAdaAST _t); 00264 public: void select_stmt(RefAdaAST _t); 00265 public: void if_stmt(RefAdaAST _t); 00266 public: void case_stmt(RefAdaAST _t); 00267 public: void loop_stmt(RefAdaAST _t); 00268 public: void block(RefAdaAST _t); 00269 public: void call_or_assignment(RefAdaAST _t); 00270 public: void cond_clause(RefAdaAST _t); 00271 public: void elsifs_opt(RefAdaAST _t); 00272 public: void else_opt(RefAdaAST _t); 00273 public: void condition(RefAdaAST _t); 00274 public: void alternative_s(RefAdaAST _t); 00275 public: void case_statement_alternative(RefAdaAST _t); 00276 public: void iteration_scheme_opt(RefAdaAST _t); 00277 public: void declare_opt(RefAdaAST _t); 00278 public: void label_name(RefAdaAST _t); 00279 public: void entry_body_formal_part(RefAdaAST _t); 00280 public: void entry_barrier(RefAdaAST _t); 00281 public: void entry_index_spec_opt(RefAdaAST _t); 00282 public: void entry_call_stmt(RefAdaAST _t); 00283 public: void entry_index_opt(RefAdaAST _t); 00284 public: void triggering_alternative(RefAdaAST _t); 00285 public: void abortable_part(RefAdaAST _t); 00286 public: void selective_accept(RefAdaAST _t); 00287 public: void entry_call_alternative(RefAdaAST _t); 00288 public: void delay_alternative(RefAdaAST _t); 00289 public: void stmts_opt(RefAdaAST _t); 00290 public: void guard_opt(RefAdaAST _t); 00291 public: void select_alternative(RefAdaAST _t); 00292 public: void or_select_opt(RefAdaAST _t); 00293 public: void accept_alternative(RefAdaAST _t); 00294 public: void exception_handler(RefAdaAST _t); 00295 public: void identifier_colon_opt(RefAdaAST _t); 00296 public: void except_choice_s(RefAdaAST _t); 00297 public: void exception_choice(RefAdaAST _t); 00298 public: void operator_call(RefAdaAST _t); 00299 public: void relation(RefAdaAST _t); 00300 public: void range_or_mark(RefAdaAST _t); 00301 public: void signed_term(RefAdaAST _t); 00302 public: void term(RefAdaAST _t); 00303 public: void factor(RefAdaAST _t); 00304 public: void primary(RefAdaAST _t); 00305 public: void name_or_qualified(RefAdaAST _t); 00306 public: void allocator(RefAdaAST _t); 00307 public: void subprogram_body(RefAdaAST _t); 00308 public: void task_body(RefAdaAST _t); 00309 public: void protected_body(RefAdaAST _t); 00310 public: 00311 RefAdaAST getAST(); 00312 00313 protected: 00314 RefAdaAST returnAST; 00315 RefAdaAST _retTree; 00316 private: 00317 static const char* tokenNames[]; 00318 #ifndef NO_STATIC_CONSTS 00319 static const int NUM_TOKENS = 305; 00320 #else 00321 enum { 00322 NUM_TOKENS = 305 00323 }; 00324 #endif 00325 00326 static const unsigned long _tokenSet_0_data_[]; 00327 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_0; 00328 static const unsigned long _tokenSet_1_data_[]; 00329 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_1; 00330 static const unsigned long _tokenSet_2_data_[]; 00331 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_2; 00332 static const unsigned long _tokenSet_3_data_[]; 00333 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_3; 00334 static const unsigned long _tokenSet_4_data_[]; 00335 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_4; 00336 }; 00337 00338 #endif /*INC_AdaStoreWalker_hpp_*/
KDE Logo
This file is part of the documentation for KDevelop Version 3.0.4.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Oct 19 08:01:40 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003