From 09842c339f6ce04b1e4c64258498a05576527961 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 21 Jul 2015 20:55:00 +0300 Subject: Allow in each node set limit for child nodes to parse. --- src/nodes/base/node.h | 4 ++-- src/parsers/blocknode.cpp | 4 ++-- src/parsers/decl/field_decl.cpp | 2 +- src/parsers/decl/function_decl.cpp | 2 +- src/parsers/decl/parm_decl.cpp | 2 +- src/parsers/decl/result_decl.cpp | 2 +- src/parsers/decl/type_decl.cpp | 2 +- src/parsers/decl/var_decl.cpp | 12 ++++++------ src/parsers/expr/addr_expr.cpp | 4 ++-- src/parsers/expr/bind_expr.cpp | 2 +- src/parsers/expr/call_expr.cpp | 2 +- src/parsers/expr/cleanuppoint_expr.cpp | 2 +- src/parsers/expr/cond_expr.cpp | 2 +- src/parsers/expr/convert_expr.cpp | 2 +- src/parsers/expr/decl_expr.cpp | 2 +- src/parsers/expr/eq_expr.cpp | 2 +- src/parsers/expr/ge_expr.cpp | 2 +- src/parsers/expr/gt_expr.cpp | 2 +- src/parsers/expr/init_expr.cpp | 2 +- src/parsers/expr/le_expr.cpp | 2 +- src/parsers/expr/loop_expr.cpp | 2 +- src/parsers/expr/lt_expr.cpp | 2 +- src/parsers/expr/minus_expr.cpp | 2 +- src/parsers/expr/modify_expr.cpp | 2 +- src/parsers/expr/mult_expr.cpp | 2 +- src/parsers/expr/ne_expr.cpp | 2 +- src/parsers/expr/nop_expr.cpp | 2 +- src/parsers/expr/plus_expr.cpp | 2 +- src/parsers/expr/pointerplus_expr.cpp | 2 +- src/parsers/expr/return_expr.cpp | 2 +- src/parsers/generic.cpp | 11 ++++++++--- src/parsers/generic.h | 4 ++-- src/parsers/list/statement_list.cpp | 2 +- src/parsers/list/tree_list.cpp | 2 +- src/parsers/ref/indirect_ref.cpp | 2 +- src/parsers/stmt/expr_stmt.cpp | 2 +- src/parsers/stmt/if_stmt.cpp | 2 +- src/parsers/stmt/while_stmt.cpp | 2 +- src/parsers/type/array_type.cpp | 2 +- src/parsers/type/boolean_type.cpp | 2 +- src/parsers/type/enumeral_type.cpp | 2 +- src/parsers/type/function_type.cpp | 2 +- src/parsers/type/integer_type.cpp | 2 +- src/parsers/type/method_type.cpp | 2 +- src/parsers/type/pointer_type.cpp | 4 ++-- src/parsers/type/real_type.cpp | 2 +- src/parsers/type/record_type.cpp | 2 +- src/parsers/type/reference_type.cpp | 2 +- src/parsers/type/typename_type.cpp | 2 +- src/parsers/type/union_type.cpp | 4 ++-- src/parsers/type/vector_type.cpp | 2 +- src/parsers/type/void_type.cpp | 2 +- 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(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(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(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(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(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); -- cgit v1.2.3-70-g09d2