#endif
#include <stdio.h>
-#include <stdlib.h>
+#ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
#include "ident.h"
#include "irop_t.h"
typedef void (*DUMP_FINISH_PATTERN_FUNC)(pattern_dumper_t *self);
typedef void (*DUMP_NODE_FUNC)(pattern_dumper_t *self, unsigned id, unsigned op_code, unsigned mode_code, void *attr);
typedef void (*DUMP_REF_FUNC)(pattern_dumper_t *self, unsigned id);
-typedef void (*DUMP_EDGE_FUNC)(pattern_dumper_t *self, unsigned id, unsigned parent, unsigned position);
+typedef void (*DUMP_EDGE_FUNC)(pattern_dumper_t *self, unsigned tgt, unsigned src, unsigned pos, unsigned mode_code);
typedef void (*DUMP_START_CHILDREN_FUNC)(pattern_dumper_t *self, unsigned id);
typedef void (*DUMP_FINISH_CHILDREN_FUNC)(pattern_dumper_t *self, unsigned id);
typedef void (*DUMP_START_FUNC)(pattern_dumper_t *self);
fprintf(priv->f, " }\n");
if (priv->pattern_id > 0)
- fprintf(priv->f, " edge: { sourcename: \"g%u\" targetname: \"g%u\"}\n",
+ fprintf(priv->f, " edge: { sourcename: \"g%u\" targetname: \"g%u\" linestyle:invisible}\n",
priv->pattern_id,
priv->pattern_id - 1);
/**
* Dumps an edge.
*/
-static void vcg_dump_edge(pattern_dumper_t *self, unsigned id, unsigned parent, unsigned position)
+static void vcg_dump_edge(pattern_dumper_t *self, unsigned tgt, unsigned src, unsigned pos, unsigned mode_code)
{
vcg_private_t *priv = self->data;
if (priv->pattern_id > priv->max_pattern)
return;
- fprintf(priv->f, " edge: { sourcename: \"n%u_%u\" targetname: \"n%u_%u\"}\n",
- priv->pattern_id, parent,
- priv->pattern_id, id);
+ fprintf(priv->f, " edge: { sourcename: \"n%u_%u\" targetname: \"n%u_%u\" label: \"%u\" }\n",
+ priv->pattern_id, src,
+ priv->pattern_id, tgt,
+ pos
+ );
}
/**
/**
* Dump an edge
*/
-static void stdout_dump_edge(pattern_dumper_t *self, unsigned id, unsigned parent, unsigned position)
+static void stdout_dump_edge(pattern_dumper_t *self, unsigned tgt, unsigned src, unsigned pos, unsigned mode_code)
{
FILE *f = self->data;
- if (position > 0)
+ if (pos > 0)
fprintf(f, ", ");
}
/*
* Dump an edge
*/
-void pattern_dump_edge(pattern_dumper_t *self, unsigned id, unsigned parent, unsigned position)
+void pattern_dump_edge(pattern_dumper_t *self, unsigned tgt, unsigned src, unsigned pos, unsigned mode_code)
{
if (self->dump_edge)
- self->dump_edge(self, id, parent, position);
+ self->dump_edge(self, tgt, src, pos, mode_code);
}
/*