+ CCL_parser cclp = ccl_parser_create ();
+ struct ccl_token *list;
+
+ cclp->bibset = bibset;
+
+ list = ccl_parser_tokenize (cclp, buf);
+ rpn = ccl_parser_find (cclp, list);
+
+ error = cclp->error_code;
+ if (error)
+ pos = cclp->error_pos - buf;
+
+ if (error)
+ {
+ printf ("%*s^ - ", 6+pos, " ");
+ printf ("%s\n", ccl_err_msg (error));
+ }
+ else
+ {
+ if (rpn && i == 0)
+ {
+ ccl_pr_tree (rpn, stdout);
+ printf ("\n");
+ }
+ }
+ if (debug)
+ {
+ struct ccl_token *lp;
+ for (lp = list; lp; lp = lp->next)
+ printf ("%d %.*s\n", lp->kind, (int) (lp->len), lp->name);
+ }
+ ccl_token_del (list);
+ ccl_parser_destroy (cclp);
+ if (rpn)
+ ccl_rpn_delete(rpn);