The mention of rockit from above was good too, it looks pretty
compelling.  Here's the project:
  http://rockit.sourceforge.net/
It looks pretty interesting.  However rockit, racc, and rbison seem to
be somewhat involved for writing parsers.  I'm thinking of something
much simpler perhaps.  These work great for very common syntaxes where
you have a very large number of documents.  I'm thinking more along the
lines of a flexible library for quickly defining many syntaxes with a
limited set of documents.

Then again, I might just need to play with these parsers a bit and see.
  .adam sanderson