+YAZ_EXPORT YAZ_PQF_Parser yaz_pqf_create (void);
+YAZ_EXPORT Z_RPNQuery *yaz_pqf_parse (YAZ_PQF_Parser p, ODR o,
+ const char *qbuf);
+YAZ_EXPORT Z_AttributesPlusTerm *yaz_pqf_scan (YAZ_PQF_Parser p, ODR o,
+ Odr_oid **attributeSetId,
+ const char *qbuf);
+YAZ_EXPORT void yaz_pqf_destroy (YAZ_PQF_Parser p);
+
+YAZ_EXPORT int yaz_pqf_error (YAZ_PQF_Parser p, const char **msg, size_t *off);
+
+
+/* no error */
+#define YAZ_PQF_ERROR_NONE 0
+
+/* extra token (end of query expected) */
+#define YAZ_PQF_ERROR_EXTRA 1
+
+/* missing token (at least one token expected) */
+#define YAZ_PQF_ERROR_MISSING 2
+
+/* bad attribute set (for @attr and @attrset) */
+#define YAZ_PQF_ERROR_ATTSET 3
+
+/* too many items (limit reached - too many attributes, etc) */
+#define YAZ_PQF_ERROR_TOOMANY 4
+
+/* bad format of attribute (missing =) */
+#define YAZ_PQF_ERROR_BADATTR 5
+
+/* internal failure */
+#define YAZ_PQF_ERROR_INTERNAL 6
+
+YAZ_END_CDECL