diff options
Diffstat (limited to 'vb/printer.vb')
| -rw-r--r-- | vb/printer.vb | 50 |
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 |
