]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Add function to free an entire parse tree.
authorGuido van Rossum <guido@python.org>
Sun, 18 Nov 1990 17:37:06 +0000 (17:37 +0000)
committerGuido van Rossum <guido@python.org>
Sun, 18 Nov 1990 17:37:06 +0000 (17:37 +0000)
Parser/node.c

index 86d607ab19b88b70bc5e3e68ebaa272900cd5d1f..264fd9e8a1f2f4ee53c212d265e11b81688eef8c 100644 (file)
@@ -45,3 +45,26 @@ addchild(n1, type, str)
        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);
+       }
+}