/* CCL print rpn tree - infix notation
* Europagate, 1995
*
- * $Id: cclptree.c,v 1.3 2004-10-15 00:18:59 adam Exp $
+ * $Id: cclptree.c,v 1.8 2007-03-19 22:17:41 adam Exp $
*
* Old Europagate Log:
*
void fprintSpaces(int indent,FILE * fd_out)
{
- char buf[100];
- sprintf(buf,"%%%d.s",indent);
- fprintf(fd_out,buf," ");
+ char buf[100];
+ sprintf(buf,"%%%d.s",indent);
+ fprintf(fd_out,buf," ");
}
void ccl_pr_tree_as_qrpn(struct ccl_rpn_node *rpn, FILE *fd_out, int indent)
{
- if(indent>0) fprintSpaces(indent,fd_out);
+ if(indent>0)
+ fprintSpaces(indent,fd_out);
switch (rpn->kind)
{
case CCL_RPN_TERM:
{
struct ccl_rpn_attr *attr;
for (attr = rpn->u.t.attr_list; attr; attr = attr->next)
- {
- if (attr->set)
- fprintf(fd_out, "@attr %s ", attr->set);
- else
- fprintf(fd_out, "@attr ");
- switch(attr->kind)
- {
- case CCL_RPN_ATTR_NUMERIC:
+ {
+ if (attr->set)
+ fprintf(fd_out, "@attr %s ", attr->set);
+ else
+ fprintf(fd_out, "@attr ");
+ switch(attr->kind)
+ {
+ case CCL_RPN_ATTR_NUMERIC:
fprintf (fd_out, "%d=%d ", attr->type,
attr->value.numeric);
- break;
- case CCL_RPN_ATTR_STRING:
+ break;
+ case CCL_RPN_ATTR_STRING:
fprintf (fd_out, "%d=%s ", attr->type,
- attr->value.str);
- }
- }
+ attr->value.str);
+ }
+ }
}
- fprintf (fd_out, "\"%s\"\n", rpn->u.t.term);
+ fprintf (fd_out, "\"%s\"\n", rpn->u.t.term);
break;
case CCL_RPN_AND:
fprintf (fd_out, "@and \n");
if (*cp == '!')
{
/* word order specified */
- if (isdigit(cp[1]))
+ if (isdigit(((const unsigned char *) cp)[1]))
fprintf(fd_out, "@prox 0 %s 1 2 known 2", cp+1);
else
fprintf(fd_out, "@prox 0 1 1 2 known 2");
else if (*cp == '%')
{
/* word order not specified */
- if (isdigit(cp[1]))
+ if (isdigit(((const unsigned char *) cp)[1]))
fprintf(fd_out, "@prox 0 %s 0 2 known 2", cp+1);
else
fprintf(fd_out, "@prox 0 1 0 2 known 2");
ccl_pr_tree_as_qrpn (rpn->u.p[1], fd_out,indent+2);
break;
default:
- fprintf(stderr,"Internal Error Unknown ccl_rpn node type %d\n",rpn->kind);
+ fprintf(stderr,"Internal Error Unknown ccl_rpn node type %d\n",rpn->kind);
}
}
void ccl_pr_tree (struct ccl_rpn_node *rpn, FILE *fd_out)
{
- ccl_pr_tree_as_qrpn(rpn,fd_out,0);
+ ccl_pr_tree_as_qrpn(rpn,fd_out,0);
}
switch (p->kind)
{
case CCL_RPN_AND:
- wrbuf_puts(w, "@and ");
- break;
+ wrbuf_puts(w, "@and ");
+ break;
case CCL_RPN_OR:
- wrbuf_puts(w, "@or ");
- break;
+ wrbuf_puts(w, "@or ");
+ break;
case CCL_RPN_NOT:
- wrbuf_puts(w, "@not ");
- break;
+ wrbuf_puts(w, "@not ");
+ break;
case CCL_RPN_PROX:
if (p->u.p[2] && p->u.p[2]->kind == CCL_RPN_TERM)
{
if (*cp == '!')
{
/* word order specified */
- if (isdigit(cp[1]))
+ if (isdigit(((const unsigned char *) cp)[1]))
wrbuf_printf(w, "@prox 0 %s 1 2 k 2 ", cp+1);
else
wrbuf_printf(w, "@prox 0 1 1 2 k 2 ");
else if (*cp == '%')
{
/* word order not specified */
- if (isdigit(cp[1]))
+ if (isdigit(((const unsigned char *) cp)[1]))
wrbuf_printf(w, "@prox 0 %s 0 2 k 2 ", cp+1);
else
wrbuf_printf(w, "@prox 0 1 0 2 k 2 ");
}
else
wrbuf_puts(w, "@prox 0 2 0 1 k 2 ");
- break;
+ break;
default:
- wrbuf_puts(w, "@ bad op (unknown) ");
+ wrbuf_puts(w, "@ bad op (unknown) ");
}
ccl_pquery(w, p->u.p[0]);
ccl_pquery(w, p->u.p[1]);
{
struct ccl_rpn_attr *att;
const char *cp;
-
+
switch (p->kind)
{
case CCL_RPN_AND:
case CCL_RPN_OR:
case CCL_RPN_NOT:
case CCL_RPN_PROX:
- ccl_pquery_complex (w, p);
- break;
+ ccl_pquery_complex (w, p);
+ break;
case CCL_RPN_SET:
- wrbuf_puts (w, "@set ");
- wrbuf_puts (w, p->u.setname);
- wrbuf_puts (w, " ");
- break;
+ wrbuf_puts (w, "@set ");
+ wrbuf_puts (w, p->u.setname);
+ wrbuf_puts (w, " ");
+ break;
case CCL_RPN_TERM:
- for (att = p->u.t.attr_list; att; att = att->next)
- {
- char tmpattr[128];
- wrbuf_puts (w, "@attr ");
- if (att->set)
- {
- wrbuf_puts (w, att->set);
- wrbuf_puts (w, " ");
- }
- switch(att->kind)
- {
- case CCL_RPN_ATTR_NUMERIC:
- sprintf(tmpattr, "%d=%d ", att->type, att->value.numeric);
- wrbuf_puts (w, tmpattr);
- break;
- case CCL_RPN_ATTR_STRING:
- sprintf(tmpattr, "%d=", att->type);
- wrbuf_puts (w, tmpattr);
- wrbuf_puts(w, att->value.str);
- wrbuf_puts (w, " ");
- break;
- }
- }
- for (cp = p->u.t.term; *cp; cp++)
- {
- if (*cp == ' ' || *cp == '\\')
- wrbuf_putc (w, '\\');
- wrbuf_putc (w, *cp);
- }
- wrbuf_puts (w, " ");
- break;
+ for (att = p->u.t.attr_list; att; att = att->next)
+ {
+ char tmpattr[128];
+ wrbuf_puts (w, "@attr ");
+ if (att->set)
+ {
+ wrbuf_puts (w, att->set);
+ wrbuf_puts (w, " ");
+ }
+ switch(att->kind)
+ {
+ case CCL_RPN_ATTR_NUMERIC:
+ sprintf(tmpattr, "%d=%d ", att->type, att->value.numeric);
+ wrbuf_puts (w, tmpattr);
+ break;
+ case CCL_RPN_ATTR_STRING:
+ sprintf(tmpattr, "%d=", att->type);
+ wrbuf_puts (w, tmpattr);
+ wrbuf_puts(w, att->value.str);
+ wrbuf_puts (w, " ");
+ break;
+ }
+ }
+ for (cp = p->u.t.term; *cp; cp++)
+ {
+ if (*cp == ' ' || *cp == '\\')
+ wrbuf_putc (w, '\\');
+ wrbuf_putc (w, *cp);
+ }
+ wrbuf_puts (w, " ");
+ break;
}
}
-
/*
* Local variables:
- * tab-width: 8
* c-basic-offset: 4
+ * indent-tabs-mode: nil
* End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
*/
+