Minor tweaks of the expression tree output.

This commit is contained in:
Bill Currie 2011-01-21 15:34:42 +09:00
parent 96fae582e3
commit 5c5fa67e43

View file

@ -894,8 +894,6 @@ _print_expr (expr_t *e, int level, int id)
if (e->e.bool.e->type == ex_block && e->e.bool.e->e.block.head) { if (e->e.bool.e->type == ex_block && e->e.bool.e->e.block.head) {
expr_t *se; expr_t *se;
//FIXME should the bool node point too the block node, or
//the first expression of the block (current)?
printf ("%*se_%p -> e_%p;\n", indent, "", printf ("%*se_%p -> e_%p;\n", indent, "",
e, e->e.bool.e->e.block.head); e, e->e.bool.e->e.block.head);
se = (expr_t *) e->e.bool.e->e.block.tail; se = (expr_t *) e->e.bool.e->e.block.tail;
@ -925,16 +923,15 @@ _print_expr (expr_t *e, int level, int id)
printf ("%*se_%p -> e_%p;\n", indent, "", printf ("%*se_%p -> e_%p;\n", indent, "",
e, e->e.block.result); e, e->e.block.result);
} }
printf ("%*se_%p -> e_%p " printf ("%*se_%p -> e_%p [style=dashed];\n", indent, "",
"[style=dotted,lhead=cluster_%p];\n", indent, "", e, e->e.block.head);
e, e->e.block.head, e);
printf ("%*ssubgraph cluster_%p {\n", indent, "", e); printf ("%*ssubgraph cluster_%p {\n", indent, "", e);
for (se = e->e.block.head; se; se = se->next) { for (se = e->e.block.head; se; se = se->next) {
_print_expr (se, level + 1, id); _print_expr (se, level + 1, id);
} }
for (se = e->e.block.head; se && se->next; se = se->next) { for (se = e->e.block.head; se && se->next; se = se->next) {
if ((se->type == ex_uexpr && se->e.expr.op == 'g') if ((se->type == ex_uexpr && se->e.expr.op == 'g')
|| se->type == ex_label) || se->type == ex_label || se->type == ex_bool)
continue; continue;
printf ("%*se_%p -> e_%p " printf ("%*se_%p -> e_%p "
"[constraint=false,style=dashed];\n", indent, "", "[constraint=false,style=dashed];\n", indent, "",