[DGD] Phantasmal's UNQ system.
Carter Cheng
carter_cheng at yahoo.com
Fri Aug 10 17:13:18 CEST 2007
Sorry about the late reply but thank you. I was hoping
to take a look at phantasmal again before replying to
this but haven't found the time yet- but I think with
what you have told me I should be able to figure the
rest out.
--- Noah Gibbs <noah_gibbs at yahoo.com> wrote:
> I'll assume in my reply that you're planning to
> use Phantasmal's "UNQable"
> library and parser. The interface might be
> different if you implemented it
> differently.
>
> The UNQable type allows you to export UNQ either
> in list/tree format, or as
> text. You have your object inherit from UNQable,
> and supply either a function
> to convert the object to UNQ list/tree format, a
> function to convert it to
> text, or both. The main functionality you get out
> of all this is the ability
> to have Phantasmal convert from list/tree to text
> automatically, and a fairly
> uniform, human-editable output format.
>
> There are similar functions to convert from UNQ
> tree format or text. When
> parsing, you can supply a DTD (Document Type
> Definition) to aid the parser in
> recognizing whether the UNQ you just read fits the
> type you're trying to read.
> It's pretty much exactly like what XML uses for the
> same purpose.
>
> I save my object rather manually -- I call the
> function to convert them to
> UNQ text, then write that text to a file. Have a
> look at Phantasmal's InitD,
> and the functions it calls on other daemons. The
> MapD and ZoneD, both in
> /usr/common/sys, do fairly interesting save/load
> routines so you can see what
> using UNQ for this purpose looks like. The MapD
> hands off to the simple_room
> object for most object save/load stuff, so
> simple_room is another good one to
> look at.
>
> You might ask, "why not use XML?" There are two
> answers. One is that XML
> has those annoying extra options, the ones with
> equals signs and quotation
> marks (see below). The other answer is, if I wanted
> to use XML without that
> and then give a parse error on perfectly valid XML
> code, I could but it would
> be misleading and annoying to my readers. I'd
> rather follow an uncommon
> standard correctly and accurately than write a
> faulty implementation of a
> common standard.
>
> Incidentally, Skotos uses variant XML for this, so
> my rationale doesn't
> convince everybody :-)
>
> For reference:
>
> <xmltag option="option-text">body</xmltag>
>
> ~unqtag{body}
>
> Note that UNQ uses a slightly different format --
> just a closing curly brace,
> not the full tag name being repeated, and no extra
> options after the tag name
> but before the body.
>
> --- Carter Cheng <carter_cheng at yahoo.com> wrote:
>
> > Is there a guide on the UNQ system somewhere? I
> have
> > been trying to understand this. I apologize if
> this is
> > a bit newbieish again but where is the entry point
> > into this subsystem? i.e. if I wanted to create my
> own
> > zone files how does the UNQ parser know where to
> find
> > the zone file and correctly initialize objects
> from
> > it?
> >
> >
> > ___________________________________________
> > https://mail.dworkin.nl/mailman/listinfo/dgd
> >
>
>
>
>
>
>
>
____________________________________________________________________________________
> Moody friends. Drama queens. Your life? Nope! -
> their life, your story. Play Sims Stories at Yahoo!
> Games.
> http://sims.yahoo.com/
> ___________________________________________
> https://mail.dworkin.nl/mailman/listinfo/dgd
>
More information about the DGD
mailing list