- if (argc >= 3)
- r = cql_parser_string(cp, argv[2]);
- else
- r = cql_parser_stdio(cp, stdin);
-
- if (r)
- fprintf (stderr, "Syntax error\n");
+ if (!query)
+ usage();
+ else
+ {
+ ODR odr = odr_createmem(ODR_ENCODE);
+ YAZ_PQF_Parser pp = yaz_pqf_create();
+ Z_RPNQuery *rpn = yaz_pqf_parse(pp, odr, query);
+ if (!rpn)
+ {
+ fprintf(stderr, "PQF syntax error\n");
+ }
+ else
+ {
+ int ret = cql_transform_rpn2cql_stream(ct, cql_fputs,
+ stdout, rpn);
+
+ if (ret)
+ {
+ const char *addinfo;
+ int r = cql_transform_error(ct, &addinfo);
+ printf("Transform error %d %s\n", r, addinfo ? addinfo : "");
+ }
+ else
+ printf("\n");
+ }
+ yaz_pqf_destroy(pp);
+ odr_destroy(odr);
+ }
+ }