summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/depthfirst.gvpr18
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/depthfirst.gvpr b/tools/depthfirst.gvpr
new file mode 100644
index 000000000..5539be22e
--- /dev/null
+++ b/tools/depthfirst.gvpr
@@ -0,0 +1,18 @@
+BEGIN {
+ int i, indent;
+ int seen[string];
+ void prInd (int cnt) {
+ for (i = 0; i < cnt; i++) printf (" "); }
+}
+BEG_G {
+ $tvtype = TV_prepostfwd; $tvroot = node($,ARGV[0]);
+} N{
+ if (seen[$.name]) {
+ indent--;
+ if (indent == 0) exit(0);
+ } else {
+ prInd(indent); print ($.name);
+ seen[$.name] = 1;
+ indent++;
+ }
+}