Exemple #1
0
        public override BaseNode VisitChildren([NotNull] IRuleNode node)
        {
            if (node.ChildCount > 1)
            {
                ITreeNode[] newChildren = new ITreeNode[node.ChildCount];
                for (int i = 0; i < node.ChildCount; i++)
                {
                    newChildren[i] = new BaseNodeVisitor().Visit(node.GetChild(i));
                }

                BaseNode newNode = new BaseNode()
                {
                    Name     = node.GetType().Name,
                    Children = newChildren
                };

                return(newNode);
            }
            else
            {
                return(base.VisitChildren(node));
            }
        }