KDevelop API Documentation

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.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 00:03:47 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003