public override IEnumerable <string> Visit(Compiler.C.Data.Node node)
        {
            yield return(node.Name);

            int childIndex = 0;

            foreach (var child in node)
            {
                if (childIndex < node.Count - 1)
                {
                    yield return($"|-{child.Accept(this).First()}");
                }
                else
                {
                    yield return($"'-{child.Accept(this).First()}");
                }

                foreach (var line in child.Accept(this).Skip(1))
                {
                    if (childIndex < node.Count - 1)
                    {
                        yield return($"| {line}");
                    }
                    else
                    {
                        yield return($"  {line}");
                    }
                }
                childIndex++;
            }
        }
示例#2
0
 public abstract T Visit(Compiler.C.Data.Node node);