/*
* call-seq:
* query_parser.parse(query_string) -> Query
*
* Parse a query string returning a Query object if parsing was successful.
* Will raise a QueryParseException if unsuccessful.
*/
static VALUE
frt_qp_parse(VALUE self, VALUE rstr)
{
const char *msg = NULL;
volatile VALUE rq;
GET_QP;
rstr = rb_obj_as_string(rstr);
TRY
rq = frt_get_q(qp_parse(qp, rs2s(rstr)));
break;
default:
msg = xcontext.msg;
HANDLED();
XENDTRY
if (msg) {
rb_raise(cQueryParseException, msg);
}
return rq;
}