summaryrefslogtreecommitdiff
path: root/src/parsers/generic.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-07 19:03:30 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-07 19:03:30 +0300
commitdb6bbfe7d662460e5357f9d8fdbdd142cae3d8e1 (patch)
tree034477d68499514300b2b5787ed63a815c616b98 /src/parsers/generic.cpp
parenta2b5d4b53004059405c8e1c8bc957a084a3fc112 (diff)
downloadparanucker-db6bbfe7d662460e5357f9d8fdbdd142cae3d8e1.tar.gz
paranucker-db6bbfe7d662460e5357f9d8fdbdd142cae3d8e1.tar.bz2
paranucker-db6bbfe7d662460e5357f9d8fdbdd142cae3d8e1.tar.xz
paranucker-db6bbfe7d662460e5357f9d8fdbdd142cae3d8e1.zip
Remove all created nodes before exit from root node parsing.
Diffstat (limited to 'src/parsers/generic.cpp')
-rw-r--r--src/parsers/generic.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/parsers/generic.cpp b/src/parsers/generic.cpp
index c2b02ca..ed00197 100644
--- a/src/parsers/generic.cpp
+++ b/src/parsers/generic.cpp
@@ -118,9 +118,18 @@ Node *createParseNode(Node *parent,
return node;
}
-void parseNodes(tree gccNode)
+Node *parseNodes(tree gccNode)
{
- createParseNode(nullptr, gccNode, FUNCTION_DECL);
+ return createParseNode(nullptr, gccNode, FUNCTION_DECL);
+}
+
+void cleanNodes(Node *node)
+{
+ FOR_EACH (std::vector<Node*>::iterator, it, node->childs)
+ {
+ cleanNodes(*it);
+ }
+ delete node;
}
void fillType(Node *node)