40 std::unique_ptr<Statement>
parse(
const std::string& query)
override;
69 bool matchKeyword(
const std::string& keyword);
76 bool matchIdentifier(
const std::string& identifier);
84 void expect(
TokenType type,
const std::string& errorMsg);
92 void expectKeyword(
const std::string& keyword,
const std::string& errorMsg);
99 void throwError(
const std::string& message);
106 std::unique_ptr<Statement> parseStatement();
113 std::unique_ptr<SelectStatement> parseSelect();
120 std::unique_ptr<InsertStatement> parseInsert();
127 std::unique_ptr<UpdateStatement> parseUpdate();
134 std::unique_ptr<DeleteStatement> parseDelete();
141 std::unique_ptr<CreateStatement> parseCreate();
148 std::unique_ptr<DropStatement> parseDrop();
153 std::unique_ptr<ListStatement> parseList();
167 std::unique_ptr<Expression> parseExpression();
174 std::unique_ptr<Expression> parseComparison();
181 std::unique_ptr<Expression> parsePrimary();
188 std::unique_ptr<WhereClause> parseWhereClause();