#include #include "../src/Parser.hpp" #include "../src/Lexer.hpp" class ParserTest { public: explicit ParserTest() {} virtual ~ParserTest() {} void test_parse(std::string const& oracle, std::string const& source) { zn::Logger logger; zn::Loc loc {"tests/parser"}; zn::Lexer lexer { logger, loc }; lexer.scan(source); std::vector> tokens = lexer.all(); zn::Parser parser {logger}; auto node = parser.parse(tokens); REQUIRE(oracle == node->string()); } protected: }; TEST_CASE_METHOD(ParserTest, "Parser_int") { test_parse("MODULE(INT[37])", " 37"); }