tag_creator.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
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
00035 virtual void parseTranslationUnit( TranslationUnitAST* );
00036
00037
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
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
This file is part of the documentation for KDevelop Version 3.1.2.