diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-06 22:10:20 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-06 22:10:20 +0300 |
commit | cece4c61572038cb4116acb05170346a5c89aef8 (patch) | |
tree | 720a7b2555f0744a54dfc8b50bc300a4710d14b2 /src/parsers/generic.cpp | |
parent | 2ac6cdbf81b4f65483b43b590639445542a7b119 (diff) | |
download | paranucker-cece4c61572038cb4116acb05170346a5c89aef8.tar.gz paranucker-cece4c61572038cb4116acb05170346a5c89aef8.tar.bz2 paranucker-cece4c61572038cb4116acb05170346a5c89aef8.tar.xz paranucker-cece4c61572038cb4116acb05170346a5c89aef8.zip |
Move node handling function calls into separate file.
Diffstat (limited to 'src/parsers/generic.cpp')
-rw-r--r-- | src/parsers/generic.cpp | 47 |
1 files changed, 10 insertions, 37 deletions
diff --git a/src/parsers/generic.cpp b/src/parsers/generic.cpp index 2225349..d9ed165 100644 --- a/src/parsers/generic.cpp +++ b/src/parsers/generic.cpp @@ -25,17 +25,6 @@ #include "localconsts.h" -#define createNodeType(code, type) \ - case code: \ - node = new type##Node; \ - break - -#define parseNodeType(code, type) \ - case code: \ - parse##type##Node(static_cast<type##Node*>(node)); \ - break - - namespace Generic { @@ -62,19 +51,11 @@ Node *createParseNode(Node *parent, Node *node = nullptr; switch (TREE_CODE(gccNode)) { - createNodeType(FUNCTION_DECL, FunctionDecl); - createNodeType(PARM_DECL, ParmDecl); - createNodeType(RESULT_DECL, ResultDecl); - createNodeType(TYPE_DECL, TypeDecl); - createNodeType(FUNCTION_TYPE, FunctionType); - createNodeType(INTEGER_TYPE, IntegerType); - createNodeType(VOID_TYPE, VoidType); - createNodeType(POINTER_TYPE, PointerType); - createNodeType(RETURN_EXPR, ReturnExpr); - createNodeType(TREE_LIST, TreeList); - createNodeType(IDENTIFIER_NODE, Identifier); - createNodeType(INTEGER_CST, IntegerCst); - createNodeType(STATEMENT_LIST, StatementList); +#define handleNodeType(code, type) \ + case code: \ + node = new type##Node; \ + break; +#include "includes/nodeshandling.inc" default: Log::log(parent, 1, @@ -102,19 +83,11 @@ Node *createParseNode(Node *parent, switch (TREE_CODE(node->gccNode)) { - parseNodeType(FUNCTION_DECL, FunctionDecl); - parseNodeType(PARM_DECL, ParmDecl); - parseNodeType(RESULT_DECL, ResultDecl); - parseNodeType(TYPE_DECL, TypeDecl); - parseNodeType(FUNCTION_TYPE, FunctionType); - parseNodeType(INTEGER_TYPE, IntegerType); - parseNodeType(VOID_TYPE, VoidType); - parseNodeType(POINTER_TYPE, PointerType); - parseNodeType(RETURN_EXPR, ReturnExpr); - parseNodeType(TREE_LIST, TreeList); - parseNodeType(IDENTIFIER_NODE, Identifier); - parseNodeType(INTEGER_CST, IntegerCst); - parseNodeType(STATEMENT_LIST, StatementList); +#define handleNodeType(code, type) \ + case code: \ + parse##type##Node(static_cast<type##Node*>(node)); \ + break; +#include "includes/nodeshandling.inc" default: break; } |