forked from kanaka/mal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprinter.vb
52 lines (47 loc) · 1.95 KB
/
printer.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Imports System
Imports System.Collections.Generic
Imports System.Text.RegularExpressions
Imports Mal
Imports MalVal = Mal.types.MalVal
Imports MalList = Mal.types.MalList
Namespace Mal
Public Class printer
Shared Function join(value As List(Of MalVal),
delim As String,
print_readably As Boolean) As String
Dim strs As New List(Of String)
For Each mv As MalVal In value
strs.Add(mv.ToString(print_readably))
Next
return String.Join(delim, strs.ToArray())
End Function
Shared Function join(value As Dictionary(Of String, MalVal),
delim As String,
print_readably As Boolean) As String
Dim strs As New List(Of String)
For Each entry As KeyValuePair(Of String, MalVal) In value
If entry.Key.Length > 0 and entry.Key(0) = ChrW(&H029e) Then
strs.Add(":" & entry.Key.Substring(1))
Else If print_readably Then
strs.Add("""" & entry.Key.ToString() & """")
Else
strs.Add(entry.Key.ToString())
End If
strs.Add(entry.Value.ToString(print_readably))
Next
return String.Join(delim, strs.ToArray())
End Function
Shared Function _pr_str(mv As MalVal,
print_readably As Boolean) As String
return mv.ToString(print_readably)
End Function
Shared Function _pr_str_args(args As MalList,
sep As String,
print_readably As Boolean) As String
return join(args.getValue(), sep, print_readably)
End Function
Shared Function escapeString(str As String) As String
return Regex.Escape(str)
End Function
End Class
End Namespace