public override StringBuilder AppendTo(StringBuilder sb) { sb.Append("(ERROR "); sb = StringExpr.Format(Message, sb); sb.Append(')'); return(sb); }
static void Output(object result) { object[] results; if (result == null) { Console.Write("null"); } else if (result is string) { var quotedStr = StringExpr.Format((string)result).ToString(); Console.Write(quotedStr); } else if ((results = result as object[]) != null) { Console.Write('['); for (int i = 0; i < results.Length; ++i) { Output(results[i]); if (i < results.Length - 1) { Console.Write(' '); } } Console.Write(']'); } else if (result is bool) { if ((bool)result) { Console.Write("true"); } else { Console.Write("false"); } } else if (result is SExpr) { var sexpr = (SExpr)result; var sb = new StringBuilder(); sb = sexpr.AppendTo(sb); Console.Write(sb.ToString()); } else { Console.Write(result.ToString()); } }