#include namespace code::query { query_t:: query_t(optional e, vector warnings, vector errors) : expr_{move(e)}, warnings_{move(warnings)}, errors_{move(errors)} {} optional const& query_t:: expr() const { return expr_; } vector const& query_t:: warnings() const { return warnings_; } vector const& query_t:: errors() const { return errors_; } void accept(query_t const& q, visitor_t& v) { if (q.expr()) { accept(*q.expr(), v); } } string to_string(query_t const& q) { if (q.expr()) { return to_string(*q.expr()); } return string{}; } } // namespace code::query