summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-07-21 20:55:00 +0300
committerAndrei Karas <akaras@inbox.ru>2015-07-21 20:55:00 +0300
commit09842c339f6ce04b1e4c64258498a05576527961 (patch)
treef3344bc00ba048fdfb206775f4630bed58b6cae2 /src
parentbb3d13f93d26d281b6c78dc47dc94e8507f26b6f (diff)
downloadparanucker-09842c339f6ce04b1e4c64258498a05576527961.tar.gz
paranucker-09842c339f6ce04b1e4c64258498a05576527961.tar.bz2
paranucker-09842c339f6ce04b1e4c64258498a05576527961.tar.xz
paranucker-09842c339f6ce04b1e4c64258498a05576527961.zip
Allow in each node set limit for child nodes to parse.
Diffstat (limited to 'src')
-rw-r--r--src/nodes/base/node.h4
-rw-r--r--src/parsers/blocknode.cpp4
-rw-r--r--src/parsers/decl/field_decl.cpp2
-rw-r--r--src/parsers/decl/function_decl.cpp2
-rw-r--r--src/parsers/decl/parm_decl.cpp2
-rw-r--r--src/parsers/decl/result_decl.cpp2
-rw-r--r--src/parsers/decl/type_decl.cpp2
-rw-r--r--src/parsers/decl/var_decl.cpp12
-rw-r--r--src/parsers/expr/addr_expr.cpp4
-rw-r--r--src/parsers/expr/bind_expr.cpp2
-rw-r--r--src/parsers/expr/call_expr.cpp2
-rw-r--r--src/parsers/expr/cleanuppoint_expr.cpp2
-rw-r--r--src/parsers/expr/cond_expr.cpp2
-rw-r--r--src/parsers/expr/convert_expr.cpp2
-rw-r--r--src/parsers/expr/decl_expr.cpp2
-rw-r--r--src/parsers/expr/eq_expr.cpp2
-rw-r--r--src/parsers/expr/ge_expr.cpp2
-rw-r--r--src/parsers/expr/gt_expr.cpp2
-rw-r--r--src/parsers/expr/init_expr.cpp2
-rw-r--r--src/parsers/expr/le_expr.cpp2
-rw-r--r--src/parsers/expr/loop_expr.cpp2
-rw-r--r--src/parsers/expr/lt_expr.cpp2
-rw-r--r--src/parsers/expr/minus_expr.cpp2
-rw-r--r--src/parsers/expr/modify_expr.cpp2
-rw-r--r--src/parsers/expr/mult_expr.cpp2
-rw-r--r--src/parsers/expr/ne_expr.cpp2
-rw-r--r--src/parsers/expr/nop_expr.cpp2
-rw-r--r--src/parsers/expr/plus_expr.cpp2
-rw-r--r--src/parsers/expr/pointerplus_expr.cpp2
-rw-r--r--src/parsers/expr/return_expr.cpp2
-rw-r--r--src/parsers/generic.cpp11
-rw-r--r--src/parsers/generic.h4
-rw-r--r--src/parsers/list/statement_list.cpp2
-rw-r--r--src/parsers/list/tree_list.cpp2
-rw-r--r--src/parsers/ref/indirect_ref.cpp2
-rw-r--r--src/parsers/stmt/expr_stmt.cpp2
-rw-r--r--src/parsers/stmt/if_stmt.cpp2
-rw-r--r--src/parsers/stmt/while_stmt.cpp2
-rw-r--r--src/parsers/type/array_type.cpp2
-rw-r--r--src/parsers/type/boolean_type.cpp2
-rw-r--r--src/parsers/type/enumeral_type.cpp2
-rw-r--r--src/parsers/type/function_type.cpp2
-rw-r--r--src/parsers/type/integer_type.cpp2
-rw-r--r--src/parsers/type/method_type.cpp2
-rw-r--r--src/parsers/type/pointer_type.cpp4
-rw-r--r--src/parsers/type/real_type.cpp2
-rw-r--r--src/parsers/type/record_type.cpp2
-rw-r--r--src/parsers/type/reference_type.cpp2
-rw-r--r--src/parsers/type/typename_type.cpp2
-rw-r--r--src/parsers/type/union_type.cpp4
-rw-r--r--src/parsers/type/vector_type.cpp2
-rw-r--r--src/parsers/type/void_type.cpp2
52 files changed, 70 insertions, 65 deletions
diff --git a/src/nodes/base/node.h b/src/nodes/base/node.h
index 28b87fa..cf59265 100644
--- a/src/nodes/base/node.h
+++ b/src/nodes/base/node.h
@@ -42,7 +42,7 @@ struct Node
column(-1),
treeNumber(0),
indent(0),
- parseChilds(true),
+ parseChilds(INT_MAX),
noLabel(false),
complete(false)
{
@@ -75,7 +75,7 @@ struct Node
int column;
int treeNumber;
int indent;
- bool parseChilds;
+ int parseChilds;
bool noLabel;
bool complete;
};
diff --git a/src/parsers/blocknode.cpp b/src/parsers/blocknode.cpp
index c4664ab..e039a35 100644
--- a/src/parsers/blocknode.cpp
+++ b/src/parsers/blocknode.cpp
@@ -39,7 +39,7 @@ void parseBlockNode(BlockNode *node)
}
Log::dump(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
FOR_CHAIN(node->gccNode, it, BLOCK_VARS, DECL_CHAIN)
@@ -76,7 +76,7 @@ void parseBlockNode(BlockNode *node)
node,
it,
"block chain",
- false));
+ 0));
}
*/
FOR_CHAIN(node->gccNode, it, BLOCK_FRAGMENT_CHAIN, BLOCK_FRAGMENT_CHAIN)
diff --git a/src/parsers/decl/field_decl.cpp b/src/parsers/decl/field_decl.cpp
index e7521fd..e511663 100644
--- a/src/parsers/decl/field_decl.cpp
+++ b/src/parsers/decl/field_decl.cpp
@@ -75,7 +75,7 @@ void parseFieldDeclNode(FieldDeclNode *node)
node,
TREE_TYPE(node->gccNode),
"field type",
- node->parseChilds));
+ 5));
}
}
diff --git a/src/parsers/decl/function_decl.cpp b/src/parsers/decl/function_decl.cpp
index 6aadec4..f8a5579 100644
--- a/src/parsers/decl/function_decl.cpp
+++ b/src/parsers/decl/function_decl.cpp
@@ -54,7 +54,7 @@ void parseFunctionDeclNode(FunctionDeclNode *node)
"function type",
node->parseChilds));
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
node->result = static_cast<ResultDeclNode*>(createParseNode(
diff --git a/src/parsers/decl/parm_decl.cpp b/src/parsers/decl/parm_decl.cpp
index 7de6ebf..0f2e966 100644
--- a/src/parsers/decl/parm_decl.cpp
+++ b/src/parsers/decl/parm_decl.cpp
@@ -40,7 +40,7 @@ void parseParmDeclNode(ParmDeclNode *node)
fillDeclAutoGenerated(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillDeclAttributes(node);
diff --git a/src/parsers/decl/result_decl.cpp b/src/parsers/decl/result_decl.cpp
index 6fde94a..d6ef1f8 100644
--- a/src/parsers/decl/result_decl.cpp
+++ b/src/parsers/decl/result_decl.cpp
@@ -39,7 +39,7 @@ void parseResultDeclNode(ResultDeclNode *node)
fillDeclAutoGenerated(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillDeclAttributes(node);
diff --git a/src/parsers/decl/type_decl.cpp b/src/parsers/decl/type_decl.cpp
index fae5b2e..f45e01c 100644
--- a/src/parsers/decl/type_decl.cpp
+++ b/src/parsers/decl/type_decl.cpp
@@ -37,7 +37,7 @@ void parseTypeDeclNode(TypeDeclNode *node)
fillDeclAutoGenerated(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillDeclAttributes(node);
diff --git a/src/parsers/decl/var_decl.cpp b/src/parsers/decl/var_decl.cpp
index d0c4af9..e90a4e7 100644
--- a/src/parsers/decl/var_decl.cpp
+++ b/src/parsers/decl/var_decl.cpp
@@ -51,7 +51,7 @@ void parseVarDeclNode(VarDeclNode *node)
foundNodesMap[node->gccNode]);
if (!oldNode->complete)
{
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
{
updateNodesMap[node] = oldNode;
return;
@@ -62,19 +62,19 @@ void parseVarDeclNode(VarDeclNode *node)
DECL_SIZE(node->gccNode),
INTEGER_CST,
"decl size 2",
- false));
+ 3));
node->initial = createParseNode(
node,
DECL_INITIAL(node->gccNode),
"initial 2",
- false);
+ 3);
node->varType = static_cast<TypeNode*>(createParseNode(
node,
TREE_TYPE(node->gccNode),
"var type 2",
- false));
+ 3));
}
else
{
@@ -89,7 +89,7 @@ void parseVarDeclNode(VarDeclNode *node)
foundNodesMap[node->gccNode] = node;
}
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillDeclAttributes(node);
@@ -105,7 +105,7 @@ void parseVarDeclNode(VarDeclNode *node)
node,
DECL_INITIAL(node->gccNode),
"initial",
- false);
+ 3);
node->varType = static_cast<TypeNode*>(createParseNode(
node,
diff --git a/src/parsers/expr/addr_expr.cpp b/src/parsers/expr/addr_expr.cpp
index 6c31321..36b760e 100644
--- a/src/parsers/expr/addr_expr.cpp
+++ b/src/parsers/expr/addr_expr.cpp
@@ -34,7 +34,7 @@ void parseAddrExprNode(AddrExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
// fillExprOperands(node);
@@ -48,7 +48,7 @@ void parseAddrExprNode(AddrExprNode *node)
node,
gccNode,
"operand",
- false));
+ 5));
}
else
{
diff --git a/src/parsers/expr/bind_expr.cpp b/src/parsers/expr/bind_expr.cpp
index 76f51ec..2804072 100644
--- a/src/parsers/expr/bind_expr.cpp
+++ b/src/parsers/expr/bind_expr.cpp
@@ -34,7 +34,7 @@ void parseBindExprNode(BindExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/call_expr.cpp b/src/parsers/expr/call_expr.cpp
index bf8338f..2440dd8 100644
--- a/src/parsers/expr/call_expr.cpp
+++ b/src/parsers/expr/call_expr.cpp
@@ -52,7 +52,7 @@ void parseCallExprNode(CallExprNode *node)
Log::dump(node, "- function: %s", node->functionName.c_str());
}
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
const int argsCount = call_expr_nargs(node->gccNode);
diff --git a/src/parsers/expr/cleanuppoint_expr.cpp b/src/parsers/expr/cleanuppoint_expr.cpp
index 5d47201..80a71a2 100644
--- a/src/parsers/expr/cleanuppoint_expr.cpp
+++ b/src/parsers/expr/cleanuppoint_expr.cpp
@@ -34,7 +34,7 @@ void parseCleanupPointExprNode(CleanupPointExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/cond_expr.cpp b/src/parsers/expr/cond_expr.cpp
index 1c583c5..2f89783 100644
--- a/src/parsers/expr/cond_expr.cpp
+++ b/src/parsers/expr/cond_expr.cpp
@@ -34,7 +34,7 @@ void parseCondExprNode(CondExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/convert_expr.cpp b/src/parsers/expr/convert_expr.cpp
index 8313ad3..ec246a4 100644
--- a/src/parsers/expr/convert_expr.cpp
+++ b/src/parsers/expr/convert_expr.cpp
@@ -34,7 +34,7 @@ void parseConvertExprNode(ConvertExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/decl_expr.cpp b/src/parsers/expr/decl_expr.cpp
index 6c54464..9146091 100644
--- a/src/parsers/expr/decl_expr.cpp
+++ b/src/parsers/expr/decl_expr.cpp
@@ -34,7 +34,7 @@ void parseDeclExprNode(DeclExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/eq_expr.cpp b/src/parsers/expr/eq_expr.cpp
index 3540afe..bbf6a33 100644
--- a/src/parsers/expr/eq_expr.cpp
+++ b/src/parsers/expr/eq_expr.cpp
@@ -34,7 +34,7 @@ void parseEqExprNode(EqExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/ge_expr.cpp b/src/parsers/expr/ge_expr.cpp
index daafc2f..8efcec7 100644
--- a/src/parsers/expr/ge_expr.cpp
+++ b/src/parsers/expr/ge_expr.cpp
@@ -34,7 +34,7 @@ void parseGeExprNode(GeExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/gt_expr.cpp b/src/parsers/expr/gt_expr.cpp
index e37de36..370340e 100644
--- a/src/parsers/expr/gt_expr.cpp
+++ b/src/parsers/expr/gt_expr.cpp
@@ -34,7 +34,7 @@ void parseGtExprNode(GtExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/init_expr.cpp b/src/parsers/expr/init_expr.cpp
index 85a5204..35dafc1 100644
--- a/src/parsers/expr/init_expr.cpp
+++ b/src/parsers/expr/init_expr.cpp
@@ -34,7 +34,7 @@ void parseInitExprNode(InitExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/le_expr.cpp b/src/parsers/expr/le_expr.cpp
index d8d359b..ad0c831 100644
--- a/src/parsers/expr/le_expr.cpp
+++ b/src/parsers/expr/le_expr.cpp
@@ -34,7 +34,7 @@ void parseLeExprNode(LeExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/loop_expr.cpp b/src/parsers/expr/loop_expr.cpp
index cb73e99..7def97f 100644
--- a/src/parsers/expr/loop_expr.cpp
+++ b/src/parsers/expr/loop_expr.cpp
@@ -34,7 +34,7 @@ void parseLoopExprNode(LoopExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
// fillExprOperands(node);
diff --git a/src/parsers/expr/lt_expr.cpp b/src/parsers/expr/lt_expr.cpp
index ae7484a..10e65de 100644
--- a/src/parsers/expr/lt_expr.cpp
+++ b/src/parsers/expr/lt_expr.cpp
@@ -34,7 +34,7 @@ void parseLtExprNode(LtExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/minus_expr.cpp b/src/parsers/expr/minus_expr.cpp
index e59baea..ad8c06e 100644
--- a/src/parsers/expr/minus_expr.cpp
+++ b/src/parsers/expr/minus_expr.cpp
@@ -34,7 +34,7 @@ void parseMinusExprNode(MinusExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/modify_expr.cpp b/src/parsers/expr/modify_expr.cpp
index c988dc9..399d138 100644
--- a/src/parsers/expr/modify_expr.cpp
+++ b/src/parsers/expr/modify_expr.cpp
@@ -34,7 +34,7 @@ void parseModifyExprNode(ModifyExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/mult_expr.cpp b/src/parsers/expr/mult_expr.cpp
index 755b03c..76b5501 100644
--- a/src/parsers/expr/mult_expr.cpp
+++ b/src/parsers/expr/mult_expr.cpp
@@ -34,7 +34,7 @@ void parseMultExprNode(MultExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/ne_expr.cpp b/src/parsers/expr/ne_expr.cpp
index dd29244..6dfb4c4 100644
--- a/src/parsers/expr/ne_expr.cpp
+++ b/src/parsers/expr/ne_expr.cpp
@@ -34,7 +34,7 @@ void parseNeExprNode(NeExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/nop_expr.cpp b/src/parsers/expr/nop_expr.cpp
index f8be9d4..931bd85 100644
--- a/src/parsers/expr/nop_expr.cpp
+++ b/src/parsers/expr/nop_expr.cpp
@@ -34,7 +34,7 @@ void parseNopExprNode(NopExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/plus_expr.cpp b/src/parsers/expr/plus_expr.cpp
index ec03773..e3da41e 100644
--- a/src/parsers/expr/plus_expr.cpp
+++ b/src/parsers/expr/plus_expr.cpp
@@ -34,7 +34,7 @@ void parsePlusExprNode(PlusExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/pointerplus_expr.cpp b/src/parsers/expr/pointerplus_expr.cpp
index 22540ad..d3b4aaa 100644
--- a/src/parsers/expr/pointerplus_expr.cpp
+++ b/src/parsers/expr/pointerplus_expr.cpp
@@ -34,7 +34,7 @@ void parsePointerPlusExprNode(PointerPlusExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/expr/return_expr.cpp b/src/parsers/expr/return_expr.cpp
index 3481793..53736f4 100644
--- a/src/parsers/expr/return_expr.cpp
+++ b/src/parsers/expr/return_expr.cpp
@@ -34,7 +34,7 @@ void parseReturnExprNode(ReturnExprNode *node)
fillExprLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
fillExprOperands(node);
diff --git a/src/parsers/generic.cpp b/src/parsers/generic.cpp
index 294f4a8..73b4feb 100644
--- a/src/parsers/generic.cpp
+++ b/src/parsers/generic.cpp
@@ -36,7 +36,7 @@ namespace Generic
Node *createParseNode(Node *parent,
tree gccNode,
std::string tag,
- bool parseChilds)
+ int parseChilds)
{
return createParseNode(parent,
gccNode,
@@ -49,7 +49,7 @@ Node *createParseNode(Node *parent,
tree gccNode,
tree_code wantType,
std::string tag,
- bool parseChilds)
+ int parseChilds)
{
if (gccNode == NULL_TREE)
{
@@ -96,7 +96,12 @@ Node *createParseNode(Node *parent,
{
node->parent = parent;
node->gccNode = gccNode;
- node->parseChilds = parseChilds;
+ if (!parent || parseChilds < parent->parseChilds - 1)
+ node->parseChilds = parseChilds;
+ else
+ node->parseChilds = parent->parseChilds - 1;
+ if (node->parseChilds < 0)
+ node->parseChilds = 0;
if (wantType != ERROR_MARK &&
TREE_CODE(node->gccNode) != wantType)
diff --git a/src/parsers/generic.h b/src/parsers/generic.h
index 3a926f5..305c249 100644
--- a/src/parsers/generic.h
+++ b/src/parsers/generic.h
@@ -45,13 +45,13 @@ namespace Generic
Node *createParseNode(Node *parent,
tree gccNode,
std::string tag = "",
- bool parseChilds = true);
+ int parseChilds = INT_MAX);
Node *createParseNode(Node *parent,
tree gccNode,
tree_code wantType,
std::string tag = "",
- bool parseChilds = true);
+ int parseChilds = INT_MAX);
}
#endif // PARSERS_GENERIC_H
diff --git a/src/parsers/list/statement_list.cpp b/src/parsers/list/statement_list.cpp
index 755f541..b89ea17 100644
--- a/src/parsers/list/statement_list.cpp
+++ b/src/parsers/list/statement_list.cpp
@@ -33,7 +33,7 @@ void parseStatementListNode(StatementListNode *node)
fillType(node);
Log::dump(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
for (tree_stmt_iterator it = tsi_start (node->gccNode);
diff --git a/src/parsers/list/tree_list.cpp b/src/parsers/list/tree_list.cpp
index 1601f9e..d483e61 100644
--- a/src/parsers/list/tree_list.cpp
+++ b/src/parsers/list/tree_list.cpp
@@ -31,7 +31,7 @@ void parseTreeListNode(TreeListNode *node)
fillType(node);
Log::dump(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
node->purpose = createParseNode(
diff --git a/src/parsers/ref/indirect_ref.cpp b/src/parsers/ref/indirect_ref.cpp
index 70cc873..dddffbe 100644
--- a/src/parsers/ref/indirect_ref.cpp
+++ b/src/parsers/ref/indirect_ref.cpp
@@ -34,7 +34,7 @@ void parseIndirectRefNode(IndirectRefNode *node)
fillRefLocation(node);
Log::dump(node);
-// if (!node->parseChilds)
+// if (node->parseChilds <= 0)
// return;
node->ref = static_cast<DeclNode*>(getRefOperand(node, 0, "ref"));
diff --git a/src/parsers/stmt/expr_stmt.cpp b/src/parsers/stmt/expr_stmt.cpp
index bcb9d87..16aca39 100644
--- a/src/parsers/stmt/expr_stmt.cpp
+++ b/src/parsers/stmt/expr_stmt.cpp
@@ -37,7 +37,7 @@ void parseExprStmtNode(ExprStmtNode *node)
fillExprLocation(node);
Log::dump(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
node->expression = static_cast<ExprNode*>(createParseNode(
diff --git a/src/parsers/stmt/if_stmt.cpp b/src/parsers/stmt/if_stmt.cpp
index 4c55d8b..b895a04 100644
--- a/src/parsers/stmt/if_stmt.cpp
+++ b/src/parsers/stmt/if_stmt.cpp
@@ -35,7 +35,7 @@ void parseIfStmtNode(IfStmtNode *node)
fillExprLocation(node);
Log::dump(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
node->condition = createParseNode(
diff --git a/src/parsers/stmt/while_stmt.cpp b/src/parsers/stmt/while_stmt.cpp
index 2ca8a61..785f9fc 100644
--- a/src/parsers/stmt/while_stmt.cpp
+++ b/src/parsers/stmt/while_stmt.cpp
@@ -35,7 +35,7 @@ void parseWhileStmtNode(WhileStmtNode *node)
fillExprLocation(node);
Log::dump(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
node->condition = createParseNode(
diff --git a/src/parsers/type/array_type.cpp b/src/parsers/type/array_type.cpp
index 5c8c237..5fc66f4 100644
--- a/src/parsers/type/array_type.cpp
+++ b/src/parsers/type/array_type.cpp
@@ -35,7 +35,7 @@ void parseArrayTypeNode(ArrayTypeNode *node)
setPrintField(node, TYPE_STRING_FLAG, isString);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
diff --git a/src/parsers/type/boolean_type.cpp b/src/parsers/type/boolean_type.cpp
index c6624fd..b493fce 100644
--- a/src/parsers/type/boolean_type.cpp
+++ b/src/parsers/type/boolean_type.cpp
@@ -33,7 +33,7 @@ void parseBooleanTypeNode(BooleanTypeNode *node)
fillType(node);
Log::dump(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
diff --git a/src/parsers/type/enumeral_type.cpp b/src/parsers/type/enumeral_type.cpp
index 3ab0140..f56639f 100644
--- a/src/parsers/type/enumeral_type.cpp
+++ b/src/parsers/type/enumeral_type.cpp
@@ -40,7 +40,7 @@ void parseEnumeralTypeNode(EnumeralTypeNode *node)
else
Log::dumpRaw(node, "- signed");
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
diff --git a/src/parsers/type/function_type.cpp b/src/parsers/type/function_type.cpp
index a379da6..0437e9d 100644
--- a/src/parsers/type/function_type.cpp
+++ b/src/parsers/type/function_type.cpp
@@ -41,7 +41,7 @@ void parseFunctionTypeNode(FunctionTypeNode *node)
fillTypeAttributes(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
diff --git a/src/parsers/type/integer_type.cpp b/src/parsers/type/integer_type.cpp
index 3c3f1ee..8fce413 100644
--- a/src/parsers/type/integer_type.cpp
+++ b/src/parsers/type/integer_type.cpp
@@ -41,7 +41,7 @@ void parseIntegerTypeNode(IntegerTypeNode *node)
else
Log::dumpRaw(node, "- signed");
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
diff --git a/src/parsers/type/method_type.cpp b/src/parsers/type/method_type.cpp
index 1ed7f47..d46395f 100644
--- a/src/parsers/type/method_type.cpp
+++ b/src/parsers/type/method_type.cpp
@@ -41,7 +41,7 @@ void parseMethodTypeNode(MethodTypeNode *node)
"method return type",
node->parseChilds));
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
diff --git a/src/parsers/type/pointer_type.cpp b/src/parsers/type/pointer_type.cpp
index d15bc52..62bc1c0 100644
--- a/src/parsers/type/pointer_type.cpp
+++ b/src/parsers/type/pointer_type.cpp
@@ -33,7 +33,7 @@ void parsePointerTypeNode(PointerTypeNode *node)
fillType(node);
Log::dump(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
@@ -42,7 +42,7 @@ void parsePointerTypeNode(PointerTypeNode *node)
node,
TREE_TYPE(node->gccNode),
"nested type",
- false));
+ 5));
}
}
diff --git a/src/parsers/type/real_type.cpp b/src/parsers/type/real_type.cpp
index 09daebd..6dcd4f2 100644
--- a/src/parsers/type/real_type.cpp
+++ b/src/parsers/type/real_type.cpp
@@ -35,7 +35,7 @@ void parseRealTypeNode(RealTypeNode *node)
setPrintField(node, TYPE_PRECISION, precisionBits);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
diff --git a/src/parsers/type/record_type.cpp b/src/parsers/type/record_type.cpp
index f7ba01a..e6315e8 100644
--- a/src/parsers/type/record_type.cpp
+++ b/src/parsers/type/record_type.cpp
@@ -35,7 +35,7 @@ void parseRecordTypeNode(RecordTypeNode *node)
fillTypeAttributes(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
diff --git a/src/parsers/type/reference_type.cpp b/src/parsers/type/reference_type.cpp
index 6642431..7225e6d 100644
--- a/src/parsers/type/reference_type.cpp
+++ b/src/parsers/type/reference_type.cpp
@@ -35,7 +35,7 @@ void parseReferenceTypeNode(ReferenceTypeNode *node)
fillTypeAttributes(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
diff --git a/src/parsers/type/typename_type.cpp b/src/parsers/type/typename_type.cpp
index 053d87f..146b690 100644
--- a/src/parsers/type/typename_type.cpp
+++ b/src/parsers/type/typename_type.cpp
@@ -41,7 +41,7 @@ void parseTypeNameTypeNode(TypeNameTypeNode *node)
fillTypeAttributes(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
diff --git a/src/parsers/type/union_type.cpp b/src/parsers/type/union_type.cpp
index 5788397..299dc25 100644
--- a/src/parsers/type/union_type.cpp
+++ b/src/parsers/type/union_type.cpp
@@ -35,7 +35,7 @@ void parseUnionTypeNode(UnionTypeNode *node)
fillTypeAttributes(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
@@ -48,7 +48,7 @@ void parseUnionTypeNode(UnionTypeNode *node)
node,
TYPE_METHODS(node->gccNode),
"type methods",
- false);
+ 5);
}
}
diff --git a/src/parsers/type/vector_type.cpp b/src/parsers/type/vector_type.cpp
index adcb003..e74ac62 100644
--- a/src/parsers/type/vector_type.cpp
+++ b/src/parsers/type/vector_type.cpp
@@ -37,7 +37,7 @@ void parseVectorTypeNode(VectorTypeNode *node)
fillTypeAttributes(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);
diff --git a/src/parsers/type/void_type.cpp b/src/parsers/type/void_type.cpp
index a76deb2..41818fe 100644
--- a/src/parsers/type/void_type.cpp
+++ b/src/parsers/type/void_type.cpp
@@ -35,7 +35,7 @@ void parseVoidTypeNode(VoidTypeNode *node)
fillTypeAttributes(node);
- if (!node->parseChilds)
+ if (node->parseChilds <= 0)
return;
fillTypeName(node);