From 967be9e750221ab2ab783f95df79bb26d290a45e Mon Sep 17 00:00:00 2001 From: Martial Simon Date: Mon, 15 Sep 2025 01:07:58 +0200 Subject: add: added projects --- tiger-compiler/src/testsuite/tests-collector.hh | 53 +++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 tiger-compiler/src/testsuite/tests-collector.hh (limited to 'tiger-compiler/src/testsuite/tests-collector.hh') diff --git a/tiger-compiler/src/testsuite/tests-collector.hh b/tiger-compiler/src/testsuite/tests-collector.hh new file mode 100644 index 0000000..d7e3ef1 --- /dev/null +++ b/tiger-compiler/src/testsuite/tests-collector.hh @@ -0,0 +1,53 @@ +/** + ** \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 -- cgit v1.2.3