private void treVB6AST_AfterSelect(object sender, TreeViewEventArgs e)
        {
            var node = (ParseTree)treVB6AST.SelectedNode.Tag;

            txtDebug.Text = translator.Dump(node) + "\r\n";

            txtDebug.Text += GetTokens(node) + "\r\n";

            var apg     = new ASTPatternGenerator((ParseTree)treVB6AST.Nodes[0].Tag);
            var asiList = ASTSequenceItem.Create(apg, node);

            txtDebug.Text += ASTSequenceItem.ToString(asiList) + "\r\n";
        }
        public static List <ASTSequenceItem> Create(ASTPatternGenerator apg, ParseTree rootNode)
        {
            if (apg == null)
            {
                throw new ArgumentNullException(nameof(apg));
            }

            VB6NodeTree            nodeTree     = new VB6NodeTree(rootNode);
            List <ASTSequenceItem> returnedList = new List <ASTSequenceItem> {
            };

            foreach (var node in nodeTree.GetAllNodes())
            {
                var subtree = new VB6SubTree(nodeTree, node);

                int    depth        = 0;
                string childIndices = "";
                string typePath     = "";

                var paths = nodeTree.GetPath(node).ToList();
                if (paths.Count == 0)
                {
                    continue;
                }

                foreach (IndexedPath path in paths)
                {
                    childIndices += path.ChildIndex + "/";
                    typePath     += path.NodeTypeName + "/";
                    depth++;
                }

                var asi = new ASTSequenceItem {
                    setpos    = returnedList.Count,
                    depth     = depth,
                    childPath = childIndices,
                    token     = paths.Last().Token,
                    typeName  = paths.First().NodeTypeName,
                    pattern   = apg.Lookup(subtree),
                    node      = node
                };
                returnedList.Add(asi);
            }
            return(returnedList);
        }