+\r
+#define pdepth() do { for (i = 0; i < depth * 2; i++) putchar(' '); } while (0)\r
+void ir_test(void)\r
+{ struct ir_class_t* class, * classbuf;\r
+ struct ir_set_t* set, * set_child;\r
+ int depth, i, olddepth;\r
+ depth = olddepth = 0;\r
+ classbuf = NULL;\r
+ for(class = ir_class_root(); class != NULL; class = class->nextchild)\r
+ {handle_class:\r
+ pdepth();\r
+ uprintf("%U\n",class->name);\r
+ old_depth = depth;\r
+ set = class->root_set;\r
+ handle_set:\r
+ while(set != NULL)\r
+ { pdepth();uprintf("|");\r
+ pdepth();\r
+ uprintf("-[%U]",set->name);\r
+ set_child = set->nextchild;\r
+ while (set_child != NULL)\r
+ { depth++;\r
+ uprintf("--[%U]",set_child->name);\r
+ set_child = set_child->nextchild;\r
+ }\r
+ uprintf("\n");\r
+ set = set->nextsib;\r
+ }\r
+ if (class->nextsib != NULL)\r
+ { if (classbuf == NULL)\r
+ classbuf = class;\r
+ class = class->nextsib;\r
+ goto handle_class;\r
+ }\r
+ if (classbuf != NULL)\r
+ class = classbuf;\r
+ classbuf = NULL;\r
+ uprintf("\n");\r
+ depth = olddepth + 1;\r
+ }\r
+}\r