/** ** \file assert/type-checker.hh ** \brief Declaration of assert::TypeChecker. */ #pragma once #include #include namespace assert { class TypeChecker : public type::TypeChecker , public ast::AssertVisitor { public: using super_type = type::TypeChecker; using super_type::operator(); // Build a TypeChecker TypeChecker(); // Type an AssertExp node. All AssertExp must follow the typing table : // cond_ : int | assert cond_ : void // \param e Node to visit void operator()(ast::AssertExp& e) override; }; } // assert