|
Subject: Re: Issues with literate programming DSSSL Script From: Brandon Ibach <bibach@xxxxxxxxxxxxxx> Date: Wed, 22 Dec 1999 11:25:01 -0600 |
Quoting Wroth, Mark <MARK.WROTH@xxxxxxxxxxx>:
> BI> Keep in mind that the whole document is, essentially, parsed before
> BI> DSSSL processing begins. So, just because you "skip" a section of the
> BI> document in your DSSSL script doesn't mean that it won't get parsed.
>
> And I think I understand that the "bothersome" translations are happening in
> the parser, not in the DSSSL engine itself. Generally usually, a very
> helpful thing, as it removes all sorts of special cases from the DSSSL code.
>
Actually, the translations that you refer to are happening on the
*other* end of the line. They are being done by the SGML backend as
it writes the FOT out. This is why we can defeat them with the
formatting-instruction. If you look at jade/TransformFOTBuilder.cxx,
line 550 (or so), in the [Open]Jade source, you'll see the loop that
writes out characters, and the special treatment of &, < and >.
> [... code section trimmed ...]
>
> Since one of my goals for this project was to increase my understanding of
> DSSSL, I'll puzzle over your suggestion for a while ... it wasn't obvious to
> me at first reading, a fact I attribute to my ignorance rather than any
> fault of the code.
>
Well, to sum it up, the "breakup" function takes a single node-list
argument, which defaults to the children of the current node. It goes
through all the nodes in this list, building up a list composed of
strings from the data-char nodes (so that each group of consecutive
characters becomes one string) and singleton node-lists for any
non-data-char nodes. Thus, for the following:
<scrap id="abc">return(<scrapref id="def">);</scrap>
breakup would generate: ("return(" <node-list> ");")
where <node-list> is a node-list containing the single element node
corresponding to the <scrapref>, above. We can now process this list
in order, using formatting-instructions to output the strings, and
process-node-list to handle everything else. This is what the element
rule in the example does.
> >From a user perspective, it certainly would be nice to not have to "escape"
> relatively common symbols. Failing to properly escape the significant
> punctuation (usually an "@") is one of the more common LP processor mistakes
> I make, and that's with a punctuation mark that's not real common in the
> languages I write.
>
As far as writing by hand, I guess it's just something to get used
to. Any language has things like this that you need to learn. I
wrote C for years, faithfully surrounding my strings with
double-quotes, only to have to learn to use single-quotes, instead,
when I started doing a lot of SQL. And every now and then, I throw
myself a real curve ball when Postscript makes me use parens for
strings. :)
Of course, if your user is using a decent text editor (like vi :),
you could set up key mappings to make this easier. For instance, map
&, < and > to insert the appropriate entity references, and map some
other keys to allow the user to generate tags and entity references
(where they'd need the actual characters). Just a possibility... :)
-Brandon :)
DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Issues with literate programmin, Wroth, Mark | Thread | Re: Issues with literate programmin, Wroth, Mark |
| Re: Issues with literate programmin, Wroth, Mark | Date | Re: images, notations, backends, Adam Di Carlo |
| Month |