public override void AmbiguousNode <T>(IAmbiguousParseTree ambiguousTree, string ruleType, IPrettyPrintSource source, SpanClass spanClass, Action <PrettyPrintWriter, IPrettyPrintSource, T, SpanClass> printer)
        {
            WriteSpan(_missingNodeClass, "<# ambiguous " + ruleType + ", " + ambiguousTree.Ambiguities.Count + " options");
            NewLineAndIndent();
            var previousTokenPos = _previousTokenPos;

            foreach (object a in ambiguousTree.Ambiguities)
            {
                _previousTokenPos = previousTokenPos;
                printer(this, source, (T)a, spanClass);
                NewLine();
            }
            Unindent();
            WriteSpan(_missingNodeClass, "#>");
            NewLine();
        }
        public override void AmbiguousNode(IAmbiguousParseTree ambiguousTree, SpanClass spanClass)
        {
            WriteSpan(_missingNodeClass, "<# ambiguous " + ambiguousTree.RuleDescriptor.Name + ", " + ambiguousTree.Ambiguities.Count + " options");
            NewLineAndIndent();
            var previousTokenPos = _previousTokenPos;

            foreach (var a in ambiguousTree.Ambiguities)
            {
                _previousTokenPos = previousTokenPos;
                a.PrettyPrint(this, 0, spanClass);
                NewLine();
            }
            Unindent();
            WriteSpan(_missingNodeClass, "#>");
            NewLine();
        }