From 6cecc9730f99096c29c045c050a948254bc59dbb Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 3 Jun 2015 18:33:18 +0300 Subject: Improve a bit shared logic for create and parse nodes. --- src/parsers/generic.cpp | 48 +++++++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 29 deletions(-) (limited to 'src/parsers/generic.cpp') diff --git a/src/parsers/generic.cpp b/src/parsers/generic.cpp index 2db51aa..4bb9a2a 100644 --- a/src/parsers/generic.cpp +++ b/src/parsers/generic.cpp @@ -33,7 +33,7 @@ namespace Generic { -Node *createEmptyNode(Node *parent, tree gccNode) +Node *createParseNode(Node *parent, tree gccNode) { if (gccNode == NULL_TREE) { @@ -63,40 +63,30 @@ Node *createEmptyNode(Node *parent, tree gccNode) node->gccNode = gccNode; if (parent) node->indent = parent->indent + 1; - } - return node; -} - -void parseNode(Node *node) -{ - if (!node || node->gccNode == NULL_TREE) - { - return; - } - switch (TREE_CODE(node->gccNode)) - { - case FUNCTION_DECL: - parseFunctionDeclNode(node); - break; - case FUNCTION_TYPE: - parseFunctionTypeNode(node); - break; - case RESULT_DECL: - parseResultDeclNode(node); - break; - default: - Log::log(node, "Not supported node type: %s", - get_tree_code_name(TREE_CODE(node->gccNode))); - break; + switch (TREE_CODE(node->gccNode)) + { + case FUNCTION_DECL: + parseFunctionDeclNode(node); + break; + case FUNCTION_TYPE: + parseFunctionTypeNode(node); + break; + case RESULT_DECL: + parseResultDeclNode(node); + break; + default: + Log::log(node, "Not supported node type: %s", + get_tree_code_name(TREE_CODE(node->gccNode))); + break; + } } + return node; } void parseNodes(tree gccNode) { - //Node *rootNode = new Node; - Node *node = createEmptyNode(nullptr, gccNode); - parseNode(node); + createParseNode(nullptr, gccNode); } void fillType(Node *node) -- cgit v1.2.3-60-g2f50