Commit | Line | Data |
---|---|---|
53beaa0a JM |
1 | using System; |
2 | using System.Collections.Generic; | |
afdf531e | 3 | using System.Text.RegularExpressions; |
53beaa0a JM |
4 | using Mal; |
5 | using MalVal = Mal.types.MalVal; | |
6 | using MalList = Mal.types.MalList; | |
7 | ||
8 | namespace Mal { | |
9 | public class printer { | |
10 | public static string join(List<MalVal> value, | |
11 | string delim, bool print_readably) { | |
12 | List<string> strs = new List<string>(); | |
13 | foreach (MalVal mv in value) { | |
14 | strs.Add(mv.ToString(print_readably)); | |
15 | } | |
16 | return String.Join(delim, strs.ToArray()); | |
17 | } | |
18 | ||
19 | public static string join(Dictionary<string,MalVal> value, | |
20 | string delim, bool print_readably) { | |
21 | List<string> strs = new List<string>(); | |
22 | foreach (KeyValuePair<string, MalVal> entry in value) { | |
b8ee29b2 JM |
23 | if (entry.Key.Length > 0 && entry.Key[0] == '\u029e') { |
24 | strs.Add(":" + entry.Key.Substring(1)); | |
25 | } else if (print_readably) { | |
53beaa0a JM |
26 | strs.Add("\"" + entry.Key.ToString() + "\""); |
27 | } else { | |
28 | strs.Add(entry.Key.ToString()); | |
29 | } | |
30 | strs.Add(entry.Value.ToString(print_readably)); | |
31 | } | |
32 | return String.Join(delim, strs.ToArray()); | |
33 | } | |
34 | ||
35 | public static string _pr_str(MalVal mv, bool print_readably) { | |
36 | return mv.ToString(print_readably); | |
37 | } | |
38 | ||
53beaa0a JM |
39 | public static string _pr_str_args(MalList args, String sep, |
40 | bool print_readably) { | |
afdf531e JM |
41 | return join(args.getValue(), sep, print_readably); |
42 | } | |
43 | ||
44 | public static string escapeString(string str) { | |
45 | return Regex.Escape(str); | |
53beaa0a | 46 | } |
53beaa0a JM |
47 | |
48 | } | |
49 | } |