languages/cpp/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.0.4.