diff Parser/node.c @ 76:ede86799705b legacy-trunk

Add function to free an entire parse tree.
author Guido van Rossum <guido@python.org>
date Sun, 18 Nov 1990 17:37:06 +0000
parents fc6fcd7df4f7
children a6934380c6e7
line wrap: on
line diff
--- a/Parser/node.c	Sun Nov 18 17:36:45 1990 +0000
+++ b/Parser/node.c	Sun Nov 18 17:37:06 1990 +0000
@@ -45,3 +45,26 @@
 	n->n_child = NULL;
 	return n;
 }
+
+static void
+freechildren(n)
+	node *n;
+{
+	int i;
+	for (i = NCH(n); --i >= 0; )
+		freechildren(CHILD(n, i));
+	if (n->n_child != NULL)
+		DEL(n->n_child);
+	if (STR(n) != NULL)
+		DEL(STR(n));
+}
+
+void
+freenode(n)
+	node *n;
+{
+	if (n != NULL) {
+		freechildren(n);
+		DEL(n);
+	}
+}