#include #include #include #include #include "gen_parser.hpp" #include "gen_lexer.hpp" namespace pslang::parser { ast::statement_list_ptr parse(std::string_view path) { yyin = fopen(path.data(), "r"); if (!yyin) throw std::system_error(std::make_error_code(static_cast(errno))); ast::location location{.begin = {.filename = path}, .end = {.filename = path}}; ast::statement_list_ptr statements; context ctx{location, statements}; bison::parser parser(ctx); parser.parse(); fclose(yyin); finalize(statements); return statements; } }