On Fri, Jan 15, 2010 at 4:47 AM, Kevin Reid <span dir="ltr"><<a href="mailto:kpreid@mac.com">kpreid@mac.com</a>></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>
> OK, I can create JSON documents easily enough using<br>
><br>
> def Term := <type:org.quasiliteral.term.Term><br>
> def serialised := (testData :Term).asText()<br>
><br>
> This is nice and fast, and I assume it could produce XML in a<br>
> similar way.<br>
<br>
</div>Huh, I didn'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=>4, "a"=>'x', [2,3]=>[4,5]]:Term<br> # value: term`{3: 4,<br>
# "a": 'x',<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">
> I can turn the serialised string back into a term like this:<br>
><br>
> def TermParserMaker := <import:org.quasiliteral.term.makeTermParser><br>
> TermParserMaker(serialised)<br>
><br>
> But how do I turn that term back into the E data-structure (i.e.<br>
> reverse the effect of :Term)?<br>
<br>
</div>I don'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'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 <<a href="http://switchb.org/kpreid/" target="_blank">http://switchb.org/kpreid/</a>><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>