/** ** \file testsuite/tests-collector.hh ** \brief Declaration of testsuite::TestsCollector. */ #pragma once #include #include #include namespace testsuite { class TestsCollector : public ast::DefaultConstVisitor , public ast::NonObjectConstVisitor , public ast::NonAssertConstVisitor { public: using super_type = ast::DefaultConstVisitor; using super_type::operator(); TestsCollector() = default; /** * Return all the functions recognized as test functions by the * visitor. * * @return a vector of references to FunctionDec nodes that represents * test functions */ inline std::vector& tests_get(); void operator()(const ast::FunctionDec& e) override; protected: // The tests identified by the visitor std::vector tests_; /** * Return whether the function declaration is identified as a test * function. * @param node an ast node * @return true if the node references a valid test function, false * otherwise */ inline bool is_a_test_function(const ast::FunctionDec& node) ; }; } // namespace testsuite #include