KDevelop API Documentation

languages/cpp/tag_creator.h

Go to the documentation of this file.
00001 /*************************************************************************** 00002 * Copyright (C) 2003 by Roberto Raggi * 00003 * roberto@kdevelop.org * 00004 * * 00005 * This program is free software; you can redistribute it and/or modify * 00006 * it under the terms of the GNU General Public License as published by * 00007 * the Free Software Foundation; either version 2 of the License, or * 00008 * (at your option) any later version. * 00009 * * 00010 ***************************************************************************/ 00011 00012 #ifndef __tag_creator_h 00013 #define __tag_creator_h 00014 00015 #include "tree_parser.h" 00016 00017 #include <qstringlist.h> 00018 00019 class Catalog; 00020 class Tag; 00021 00022 namespace TagUtils 00023 { 00024 int stringToAccess( const QString& access ); 00025 QString accessToString( int id ); 00026 } 00027 00028 class TagCreator: public TreeParser 00029 { 00030 public: 00031 TagCreator( const QString& fileName, Catalog* c ); 00032 virtual ~TagCreator(); 00033 00034 // translation-unit 00035 virtual void parseTranslationUnit( TranslationUnitAST* ); 00036 00037 // declarations 00038 virtual void parseDeclaration( DeclarationAST* ); 00039 virtual void parseNamespace( NamespaceAST* ); 00040 virtual void parseUsingDirective( UsingDirectiveAST* ); 00041 virtual void parseTypedef( TypedefAST* ); 00042 virtual void parseTemplateDeclaration( TemplateDeclarationAST* ); 00043 virtual void parseSimpleDeclaration( SimpleDeclarationAST* ); 00044 virtual void parseFunctionDefinition( FunctionDefinitionAST* ); 00045 virtual void parseLinkageBody( LinkageBodyAST* ); 00046 virtual void parseAccessDeclaration( AccessDeclarationAST* ); 00047 00048 // type-specifier 00049 virtual void parseClassSpecifier( ClassSpecifierAST* ); 00050 virtual void parseEnumSpecifier( EnumSpecifierAST* ); 00051 virtual void parseElaboratedTypeSpecifier( ElaboratedTypeSpecifierAST* ); 00052 00053 virtual void parseMyDeclaration( GroupAST* funSpec, GroupAST* storageSpec, TypeSpecifierAST* typeSpec, InitDeclaratorAST* decl ); 00054 virtual void parseFunctionDeclaration( GroupAST* funSpec, GroupAST* storageSpec, TypeSpecifierAST* typeSpec, InitDeclaratorAST* decl ); 00055 virtual void parseFunctionArguments( Tag& tag, DeclaratorAST* declarator ); 00056 virtual void parseBaseClause( const QString& className, BaseClauseAST* baseClause ); 00057 00061 static void destroyDocumentation(); 00062 00067 static void setDocumentationDirectories(const QStringList& dirs); 00068 00069 00070 private: 00071 QString scopeOfDeclarator( DeclaratorAST* d ); 00072 QString typeOfDeclaration( TypeSpecifierAST* typeSpec, DeclaratorAST* declarator ); 00073 00074 private: 00075 Catalog* m_catalog; 00076 QString m_fileName; 00077 QStringList m_currentScope; 00078 QValueList<QStringList> m_imports; 00079 QString m_currentAccess; 00080 bool m_inClass; 00081 bool m_inSlots; 00082 bool m_inSignals; 00083 int m_anon; 00084 00085 static class DoxyDoc* m_documentation; 00086 00087 private: 00088 TagCreator( const TagCreator& source ); 00089 void operator = ( const TagCreator& source ); 00090 }; 00091 00092 #endif // __tag_creator_h
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:43 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003