On Fri, Jan 15, 2010 at 4:47 AM, Kevin Reid <span dir="ltr">&lt;<a href="mailto:kpreid@mac.com">kpreid@mac.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Jan 15, 2010, at 6:12, Thomas Leonard wrote:<br>
&gt; OK, I can create JSON documents easily enough using<br>
&gt;<br>
&gt; def Term := &lt;type:org.quasiliteral.term.Term&gt;<br>
&gt; def serialised := (testData :Term).asText()<br>
&gt;<br>
&gt; This is nice and fast, and I assume it could produce XML in a<br>
&gt; similar way.<br>
<br>
</div>Huh, I didn&#39;t know that worked except for leaf types. (I find that the<br>
relevant code is in<br>
org.erights.e.meta.org.quasiliteral.astro.AstroGuardSugar.)<br>
<div class="im"><br></div></blockquote><div><br>Yes. The first test case at src/jsrc/org/quasiliteral/term/Term.updoc is<br><br>    ? [3=&gt;4, &quot;a&quot;=&gt;&#39;x&#39;, [2,3]=&gt;[4,5]]:Term<br>    # value: term`{3: 4,<br>
    #              &quot;a&quot;: &#39;x&#39;,<br>    #              [2, 3]:<br>    #                  [4, 5]}`<br><br>which exercises some of the interesting cases.<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">
&gt; I can turn the serialised string back into a term like this:<br>
&gt;<br>
&gt; def TermParserMaker := &lt;import:org.quasiliteral.term.makeTermParser&gt;<br>
&gt; TermParserMaker(serialised)<br>
&gt;<br>
&gt; But how do I turn that term back into the E data-structure (i.e.<br>
&gt; reverse the effect of :Term)?<br>
<br>
</div>I don&#39;t know of a facility to do this. (deJSONKit does so the long way<br>
around.) MarkM?<br>
<div class="im"><br></div></blockquote><div>For leaf data terms, their __conformTo already knows how to auto-coerce to their primitive data value.<br><br>Kevin, regarding non-leaf terms, I recall you once wrote such a guard as an experiment, but I don&#39;t think we ever added it to the E library. As I recall, at the time you may have called it Termish. But that conflicts with a different use of that name in the org.quasiliteral.term package. I may be misremembering.<br>
<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">
--<br>
Kevin Reid                                  &lt;<a href="http://switchb.org/kpreid/" target="_blank">http://switchb.org/kpreid/</a>&gt;<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
</div><div><div></div><div class="h5">e-lang mailing list<br>
<a href="mailto:e-lang@mail.eros-os.org">e-lang@mail.eros-os.org</a><br>
<a href="http://www.eros-os.org/mailman/listinfo/e-lang" target="_blank">http://www.eros-os.org/mailman/listinfo/e-lang</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Text by me above is hereby placed in the public domain<br><br>    Cheers,<br>    --MarkM<br><br>