Mercurial > cpython-lru_cache-weakref
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); + } +}
