Ejemplo n.º 1
0
/* PUBLIC */
void sprint_term(String_buf sb, Term t)
{
  if (t == NULL)
    printf("sprint_term: NULL term\n");
  else {
    if (VARIABLE(t)) {
      char s[MAX_NAME];
      sprintf(s, "v%d", VARNUM(t));
      sb_append(sb, s);
    }
    else {
      sprint_sym(sb, SYMNUM(t));
      if (COMPLEX(t)) {
	int i;
	sb_append(sb, "(");
	for (i = 0; i < ARITY(t); i++) {
	  sprint_term(sb, ARG(t,i));
	  if (i < ARITY(t)-1)
	    sb_append(sb, ",");
	}
	sb_append(sb, ")");
      }
    }
  }
}  /* sprint_term */
Ejemplo n.º 2
0
int
print_tree(struct idl *idl, struct sym *sym, int indent)
{
	char buf[1024];
	iter_t iter;
	struct sym *mem;

	sprint_sym(buf, sym, indent, 14);
	fputs(buf, stderr);
if (*buf)
	fputc('\n', stderr);

	linkedlist_iterate(&sym->mems, &iter);
	while ((mem = linkedlist_next(&sym->mems, &iter))) {
		print_tree(idl, mem, indent + 2);
	}

	return 0;
}
Ejemplo n.º 3
0
int
print_comment(struct idl *idl, const char *comment, struct sym *sym, int indent, int depth)
{
	char buf[1024];

	if (idl->verbose < 2) {
		return 0;
	}

	sp(idl->out, indent);
	fprintf(idl->out, "/* %-30s depth: %d\n", comment, depth);
	sp(idl->out, indent);
	sprint_sym(buf, sym, 0, 10);
	buf[50] = '\0';
	fprintf(idl->out, " * %s\n", buf);
	sp(idl->out, indent);
	fputs(" */\n", idl->out);

	return 0;
}