private void PrintRoutine(Node that)
        {
            Routine routine = (Routine) that;

            PrintDefinition(routine);
            _writer.WriteLine("Encoded = {0}", routine.Encoded == null ? "null" : "'" + routine.Encoded + "'");
            PrintNodeId("Profile", routine.Profile);
            PrintNodeId("Block", routine.Block);
        }
        private void PrintSequence(string name, Node[] nodes)
        {
            _writer.Write("{0} = ", name);
            if (nodes == null)
            {
                _writer.WriteLine("null");
                return;
            }

            _writer.Write('[');
            foreach (Node node in nodes)
            {
                if (node != nodes[0])
                    _writer.Write(", ");
                PrintNodeId(node);
            }
            _writer.WriteLine(']');
        }
 private void PrintReference(Node that)
 {
     Reference reference = (Reference) that;
     PrintNodeId("Definition", reference.Definition);
     _writer.WriteLine("Symbol = {0}", reference.Symbol);
 }
 private void PrintPrologue(Node that)
 {
     int above = (that.Above == null) ? 0 : that.Above.Id;
     _writer.WriteLine("#{0} #{1} {2} @{3}:", that.Id, above, that.Kind.ToString(), that.Cursor.ToString());
     _writer.Indent();
 }
 private void PrintNodeId(string name, Node that)
 {
     _writer.Write("{0} = ", name);
     PrintNodeId(that);
     _writer.WriteLine();
 }
 private void PrintNodeId(Node that)
 {
     if (that == null)
         _writer.Write("null");
     else
         _writer.Write("#" + that.Id.ToString());
 }
 private void PrintEpilogue(Node that)
 {
     _writer.Dedent();
     _writer.WriteLine();
 }