From: Guido van Rossum Date: Sun, 18 Nov 1990 17:37:06 +0000 (+0000) Subject: Add function to free an entire parse tree. X-Git-Tag: v0.9.8~1107 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=03a24cd47b0d067110db1026e99e13e974409768;p=thirdparty%2FPython%2Fcpython.git Add function to free an entire parse tree. --- diff --git a/Parser/node.c b/Parser/node.c index 86d607ab19b8..264fd9e8a1f2 100644 --- a/Parser/node.c +++ b/Parser/node.c @@ -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); + } +}