Daniel C. wrote:
I started off on a project to write a simple little program (ha!) that
would turn files written in a LaTeX-like (but much, much simpler)
language (called Raskal) into a fully-formed web site.  All of the
"hard" stuff - i.e. the actual HTML, CSS, document structures, etc.
will be defined in files elsewhere, and then glued together (and
filled in with content) according to what's in a bunch of files
written in Raskal.  All I really have to do is read the Raskal files
and then parse them and turn them into data trees and hand them off to
another program (already written) which will take care of turning the
data tree into actual HTML and putting it where it goes on the server.

You've had some good advice. I think learning all that "painful" stuff is immensely valuable, but of course time is our enemy. I think what you need to understand to accomplish the task is much less: you need parsing, abstract syntax trees (which are already defined for you), and the already-written HTML generation. So really, you need parsing. You mentioned lisp, so I don't know where to point you for actual tools, but if you were using another language I'd recommend you look at http://pdos.csail.mit.edu/~baford/packrat/ It gets rid of the silly distinction between lexing and parsing, it allows you to keep your grammar closer to the ideal (what Levi was discussing), and mixing in the code (to generate your AST) is syntactically quite workable (based on the one or two ports to languages I've looked at).

In short, find yourself a parser generator and learn how to use it. This will involve understanding grammars and ASTs and maybe how to tweak a grammar to fit the needs of the parser generator. Anything else you choose to learn is icing on the cake.

As for the dragon book, it looks like an excellent book for digging really deep (I haven't read it but I've perused it). But it doesn't look like a practical book for the modern practitioner just looking to get things done (it's dated now, and it spends a lot of time on things you won't need to worry about). I want to read it sometime.

--
Hans Fugal ; http://hans.fugal.net

There's nothing remarkable about it. All one has to do is hit the
right keys at the right time and the instrument plays itself.
    -- Johann Sebastian Bach

/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/

Reply via email to