#pragma once #include ".generated/PgsqlLexer.h" #include ".generated/PgsqlParser.h" #include "CaseChangingCharStream.h" #include "ErrorListener.h" class Parser { public: Parser(const std::string &input_string); Parser(std::unique_ptr stream); std::unique_ptr Parse(); int errorCount() const { return Errors.errorCount(); } private: std::unique_ptr InputStream; CaseChangingCharStream CaseFilter; PgsqlLexer Lexer; antlr4::CommonTokenStream TokenStream; PgsqlParser AParser; ErrorListener Errors; };