aboutsummaryrefslogtreecommitdiff
path: root/vb/printer.vb
diff options
context:
space:
mode:
Diffstat (limited to 'vb/printer.vb')
-rw-r--r--vb/printer.vb50
1 files changed, 50 insertions, 0 deletions
diff --git a/vb/printer.vb b/vb/printer.vb
new file mode 100644
index 0000000..212b89c
--- /dev/null
+++ b/vb/printer.vb
@@ -0,0 +1,50 @@
+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 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