I think this is close, to how it should be done. The only problem is, the final map object jo_m_Value, doesn't contain all of the elements. It's a Delegating List, which seems right. But it converts :five keyword to the string 'five'.
Does this look right, overall?
Private s_EDN As String
s_EDN = "( + :five (* 7 9 ) )"
Private jo_EDN As JavaObject
Private jr_EDN As Reflector
Private jo_DefaultConfiguration As JavaObject
Private jo_Parseable As JavaObject
Private jo_Parsers As JavaObject
Private jo_Parser As JavaObject
jo_Parsers.InitializeStatic( "us.bpsm.edn.parser.Parsers" )
jo_Parseable = jo_Parsers.RunMethod( "newParseable", Array( s_EDN ) )
jo_DefaultConfiguration = jo_Parsers.RunMethod( "defaultConfiguration", Null )
jo_Parser = jo_Parsers.RunMethod( "newParser", Array( jo_DefaultConfiguration ) )
Private jo_Value As JavaObject
jo_Value = jo_Parser.RunMethod( "nextValue", Array( jo_Parseable ) )
Log( jo_Value.RunMethod( "getClass", Null ) )