コード例 #1
0
ファイル: ASTExprHelper.cs プロジェクト: ikvm/nesper
        public static void ExprCollectAddSingle(ExprNode parentNode, ITree node, IDictionary <ITree, ExprNode> astExprNodeMap)
        {
            if (parentNode == null)
            {
                throw ASTWalkException.From("Invalid null expression node for '" + ASTUtil.PrintNode(node) + "'");
            }
            if (node == null)
            {
                return;
            }
            ExprAction action = (exprNodeX, astExprNodeMapX, nodeX) => {
                astExprNodeMapX.Remove(nodeX);
                parentNode.AddChildNode(exprNodeX);
            };

            RecursiveFindRemoveChildExprNode(node, astExprNodeMap, action);
        }
コード例 #2
0
ファイル: ASTExprHelper.cs プロジェクト: ikvm/nesper
        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);
            }
        }
コード例 #3
0
ファイル: ASTExprHelper.cs プロジェクト: ikvm/nesper
 public static void PatternCollectAddSubnodesAddParentNode(EvalFactoryNode evalNode, ITree node, IDictionary <ITree, EvalFactoryNode> astPatternNodeMap)
 {
     if (evalNode == null)
     {
         throw ASTWalkException.From("Invalid null expression node for '" + ASTUtil.PrintNode(node) + "'");
     }
     for (var i = 0; i < node.ChildCount; i++)
     {
         var childNode     = node.GetChild(i);
         var childEvalNode = PatternGetRemoveTopNode(childNode, astPatternNodeMap);
         if (childEvalNode != null)
         {
             evalNode.AddChildNode(childEvalNode);
         }
     }
     astPatternNodeMap.Put(node, evalNode);
 }
コード例 #4
0
ファイル: ASTExprHelper.cs プロジェクト: ikvm/nesper
        public static void ExprCollectAddSubNodes(ExprNode parentNode, ITree node, IDictionary <ITree, ExprNode> astExprNodeMap)
        {
            if (parentNode == null)
            {
                throw ASTWalkException.From("Invalid null expression node for '" + ASTUtil.PrintNode(node) + "'");
            }
            if (node == null)
            {
                return;
            }
            ExprAction action = (exprNode, astExprNodeMapX, nodeX) => {
                astExprNodeMapX.Remove(nodeX);
                parentNode.AddChildNode(exprNode);
            };

            for (var i = 0; i < node.ChildCount; i++)
            {
                var childNode = node.GetChild(i);
                RecursiveFindRemoveChildExprNode(childNode, astExprNodeMap, action);
            }
        }