aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/main.c b/main.c
index 6c3a617..1a797aa 100644
--- a/main.c
+++ b/main.c
@@ -1,6 +1,33 @@
#include <stdio.h>
+#include <string.h>
#include "read.h"
+#include "nodelink.h"
+
+static void printlink(char* name, link* conn) {
+ if (conn->desc[0])
+ printf("%s: %s", name, conn->desc);
+ else
+ printf("%s\n", name);
+}
+
+static void printeach(strbstnode* loc, char reprint) {
+ if (loc == NULL) return;
+ // loc->ind is the name of the connection and loc->data the link
+ if (!reprint) printf(" "); // indent on subnode
+ printlink(loc->ind, loc->data); // prints it
+ // and subnodes if iterating over root tree (except root link)
+ if (reprint && strcmp(loc->ind,"")) {
+ // prints the link's target's link tree
+ printeach( ( (link*)loc->data)->to->links->head, 0);
+ }
+ printeach(loc->left, reprint);
+ printeach(loc->right, reprint); // recursion
+}
+
+void printnode(node* root) {
+ printeach(root->links->head, 1);
+}
int main() {
node* root = readfile("template");