public static void RegExCollectAddSubNodes(RowRegexExprNode regexNode, ITree node, IDictionary <ITree, RowRegexExprNode> astRegExNodeMap) { if (regexNode == null) { throw ASTWalkException.From("Invalid null expression node for '" + ASTUtil.PrintNode(node) + "'"); } RegExAction action = (exprNode, astRegExNodeMapX, nodeX) => { astRegExNodeMapX.Remove(nodeX); regexNode.AddChildNode(exprNode); }; for (var i = 0; i < node.ChildCount; i++) { var childNode = node.GetChild(i); RegExApplyActionRecursive(childNode, astRegExNodeMap, action); } }
public static void RegExCollectAddSubNodesAddParentNode(RowRegexExprNode exprNode, ITree node, IDictionary <ITree, RowRegexExprNode> astRegExNodeMap) { RegExCollectAddSubNodes(exprNode, node, astRegExNodeMap); astRegExNodeMap.Put(node, exprNode); }