src: added optional indexer AST logging

* removed old AstVisitor
* added new implementation called CxxAstVisitor
* added CxxVerboseAstVisitor that may wrap the CxxAstVisitor to log the AST while visiting
* added the same structure for the Java visitors
* removed all the logs that were fired when recording stuff
* Added UI setting for verbose indexer logging.
* implemented AST name obfuscation for Java and Cxx
* unified test visitors for Java and Cxx
* implemented recording using directive decl
* removed most of the old onXxxParsed methods
This commit is contained in:
malte_langkabel
2016-11-01 10:37:30 +01:00
parent a4240def56
commit 9e4a02a33a
36 changed files with 2145 additions and 3208 deletions
-59
View File
@@ -22,7 +22,6 @@ public:
virtual void startParsingFile();
virtual void finishParsingFile();
virtual Id recordSymbol(
const NameHierarchy& symbolName, SymbolKind symbolType,
AccessKind access = ACCESS_NONE, bool isImplicit = false);
@@ -42,66 +41,10 @@ public:
const ParseLocation& location);
virtual void onError(const ParseLocation& location, const std::string& message, bool fatal, bool indexed);
virtual void onTypedefParsed(
const ParseLocation& location, const NameHierarchy& typedefName, AccessKind access, bool isImplicit);
virtual void onClassParsed(
const ParseLocation& location, const NameHierarchy& nameHierarchy, AccessKind access,
const ParseLocation& scopeLocation, bool isImplicit);
virtual void onStructParsed(
const ParseLocation& location, const NameHierarchy& nameHierarchy, AccessKind access,
const ParseLocation& scopeLocation, bool isImplicit);
virtual void onGlobalVariableParsed(const ParseLocation& location, const NameHierarchy& variable, bool isImplicit);
virtual void onFieldParsed(const ParseLocation& location, const NameHierarchy& field, AccessKind access, bool isImplicit);
virtual void onFunctionParsed(
const ParseLocation& location, const NameHierarchy& function, const ParseLocation& scopeLocation, bool isImplicit);
virtual void onMethodParsed(
const ParseLocation& location, const NameHierarchy& method, AccessKind access, AbstractionType abstraction,
const ParseLocation& scopeLocation, bool isImplicit);
virtual void onNamespaceParsed(
const ParseLocation& location, const NameHierarchy& nameHierarchy,
const ParseLocation& scopeLocation, bool isImplicit);
virtual void onEnumParsed(
const ParseLocation& location, const NameHierarchy& nameHierarchy, AccessKind access,
const ParseLocation& scopeLocation, bool isImplicit);
virtual void onEnumConstantParsed(const ParseLocation& location, const NameHierarchy& nameHierarchy, bool isImplicit);
virtual void onTemplateParameterTypeParsed(
const ParseLocation& location, const NameHierarchy& templateParameterTypeNameHierarchy, bool isImplicit);
virtual void onLocalSymbolParsed(const std::string& name, const ParseLocation& location);
virtual void onFileParsed(const FileInfo& fileInfo);
virtual void onMacroDefineParsed(
const ParseLocation& location, const NameHierarchy& macroNameHierarchy, const ParseLocation& scopeLocation);
virtual void onCommentParsed(const ParseLocation& location);
virtual void onInheritanceParsed(
const ParseLocation& location, const NameHierarchy& nameHierarchy,
const NameHierarchy& baseNameHierarchy);
virtual void onMethodOverrideParsed(
const ParseLocation& location, const NameHierarchy& overridden, const NameHierarchy& overrider);
virtual void onCallParsed(
const ParseLocation& location, const NameHierarchy& caller, const NameHierarchy& callee);
virtual void onUsageParsed(
const ParseLocation& location, const NameHierarchy& userName, SymbolKind usedType, const NameHierarchy& usedName);
virtual void onTypeUsageParsed(const ParseLocation& location, const NameHierarchy& user, const NameHierarchy& used);
virtual void onTemplateArgumentTypeParsed(
const ParseLocation& location, const NameHierarchy& argumentTypeNameHierarchy,
const NameHierarchy& templateNameHierarchy);
virtual void onTemplateDefaultArgumentTypeParsed(
const ParseLocation& location, const NameHierarchy& defaultArgumentTypeNameHierarchy,
const NameHierarchy& templateParameterNameHierarchy);
virtual void onTemplateSpecializationParsed(
const ParseLocation& location, const NameHierarchy& specializedNameHierarchy,
const NameHierarchy& specializedFromNameHierarchy);
virtual void onTemplateMemberFunctionSpecializationParsed(
const ParseLocation& location, const NameHierarchy& instantiatedFunction, const NameHierarchy& specializedFunction);
virtual void onFileIncludeParsed(
const ParseLocation& location, const FileInfo& fileInfo, const FileInfo& includedFileInfo);
virtual void onMacroExpandParsed(
const ParseLocation& location, const NameHierarchy& macroNameHierarchy);
private:
Node::NodeType symbolKindToNodeType(SymbolKind symbolType) const;
Edge::EdgeType referenceKindToEdgeType(ReferenceKind referenceKind) const;
@@ -118,8 +61,6 @@ private:
void addCommentLocation(const ParseLocation& location);
void addError(const std::string& message, bool fatal, bool indexed, const ParseLocation& location);
void log(std::string type, std::string str, const ParseLocation& location) const;
std::shared_ptr<IntermediateStorage> m_storage;
};