From 4e687dd80783e8ff7bca9ba8ba6ba61d3a933fc2 Mon Sep 17 00:00:00 2001 From: Joey Yakimowich-Payne Date: Thu, 23 Apr 2020 21:52:34 -0600 Subject: Don't support multiple base nodes yet --- nimterop/exprparser.nim | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/nimterop/exprparser.nim b/nimterop/exprparser.nim index e9ee502..c74f0b6 100644 --- a/nimterop/exprparser.nim +++ b/nimterop/exprparser.nim @@ -486,17 +486,17 @@ proc processTSNode(gState: State, node: TSNode, typeofNode: var PNode): PNode = if node.len == 1: result = gState.processTSNode(node[0], typeofNode) elif node.len > 1: - let res = newNode(nkStmtListExpr) + var nodes: seq[PNode] for i in 0 ..< node.len: - let node = gState.processTSNode(node[i], typeofNode) - if node.kind != nkNone: - res.add node - if res.len == 1: - result = res[0] - elif res.len > 1: - result = res - else: - result = newNode(nkNone) + let subNode = gState.processTSNode(node[i], typeofNode) + if subNode.kind != nkNone: + nodes.add(subNode) + # Multiple nodes can get tricky. Don't support them yet, unless they + # have at most one valid node + if nodes.len > 1: + raise newException(ExprParseError, &"Node type \"{nodeName}\" with val ({node.val}) has more than one non empty node") + if nodes.len == 1: + result = nodes[0] else: raise newException(ExprParseError, &"Node type \"{nodeName}\" has no children") of "parenthesized_expression": -- cgit v1.2.3