diff options
Diffstat (limited to 'plugins/autotest/testvisitor.h')
-rw-r--r-- | plugins/autotest/testvisitor.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/plugins/autotest/testvisitor.h b/plugins/autotest/testvisitor.h index 279aca6cbe..4441eb26f8 100644 --- a/plugins/autotest/testvisitor.h +++ b/plugins/autotest/testvisitor.h @@ -24,9 +24,12 @@ #include <cplusplus/ASTVisitor.h> #include <cplusplus/CppDocument.h> +#include <cplusplus/Overview.h> #include <cplusplus/Scope.h> #include <cplusplus/SymbolVisitor.h> +#include <cpptools/symbolfinder.h> + #include <qmljs/parser/qmljsastvisitor_p.h> #include <qmljs/qmljsdocument.h> @@ -47,6 +50,7 @@ public: bool visit(CPlusPlus::Class *symbol); private: + CppTools::SymbolFinder m_symbolFinder; QString m_className; QMap<QString, TestCodeLocationAndType> m_privSlots; }; @@ -69,6 +73,32 @@ private: }; +class TestDataFunctionVisitor : public CPlusPlus::ASTVisitor +{ +public: + TestDataFunctionVisitor(CPlusPlus::Document::Ptr doc); + virtual ~TestDataFunctionVisitor(); + + bool visit(CPlusPlus::UsingDirectiveAST *ast); + bool visit(CPlusPlus::FunctionDefinitionAST *ast); + bool visit(CPlusPlus::CallAST *ast); + bool preVisit(CPlusPlus::AST *ast); + void postVisit(CPlusPlus::AST *ast); + QMap<QString, TestCodeLocationList> dataTags() const { return m_dataTags; } + +private: + bool newRowCallFound(CPlusPlus::CallAST *ast, unsigned *firstToken) const; + + CPlusPlus::Document::Ptr m_currentDoc; + CPlusPlus::Overview m_overview; + QString m_currentFunction; + QMap<QString, TestCodeLocationList> m_dataTags; + TestCodeLocationList m_currentTags; + unsigned m_currentAstDepth; + unsigned m_insideUsingQTestDepth; + bool m_insideUsingQTest; +}; + class TestQmlVisitor : public QmlJS::AST::Visitor { public: |