From b5cbab322a2c1e7321a1c7c665614b498431cf90 Mon Sep 17 00:00:00 2001
From: Kevin Lyda <kevin@lyda.ie>
Date: Sun, 7 Nov 2021 17:15:38 +0000
Subject: [PATCH] Graph's a bit too big for mermaid though.

---
 src/generate-call-graph.sh | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100755 src/generate-call-graph.sh

diff --git a/src/generate-call-graph.sh b/src/generate-call-graph.sh
new file mode 100755
index 0000000..8f13483
--- /dev/null
+++ b/src/generate-call-graph.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+grep -E '^[^C].*(CALL|SUBROUTINE)' bulletin*.for \
+  | sed 's/ *! .*//;s/:.*\(CALL\|SUBROUTINE\) / \1 /;s/(.*//' \
+  | awk '
+        BEGIN {
+          e="flowchart LR"
+        }
+        {
+          if ($1 != f) {
+            print e;
+            sg=$1; gsub(".for", "", sg);
+            print "  subgraph " sg;
+            print "    direction LR";
+            e="  end";
+          }
+        }
+        $2 == "SUBROUTINE" {
+          f=$1; s=$3;
+          print "    " s "(" s ")";
+        }
+        $2 == "CALL" {
+          if ($1 != f) {
+            f=$1; s="main";
+            print "    " s "(" s ")";
+          }
+          print "    " s " --> " $3;
+          
+        }
+        END {
+          print e;
+        }
+        ' \
+  | sed 's/\$/__/g'
+
-- 
GitLab