#include "Parser.h" #include "antlr4-runtime.h" Parser::Parser(const std::string &input_string) : Parser(std::make_unique(input_string)) {} Parser::Parser(std::unique_ptr stream) : InputStream(std::move(stream)) , Lexer(InputStream.get()) , TokenStream(&Lexer) , AParser(&TokenStream) { AParser.removeErrorListeners(); AParser.addErrorListener(&Errors); } std::unique_ptr Parser::Parse() { auto context = AParser.main(); return std::move(context->program); }