pacc logo

News

Finally... left recursion

With the help of Dale Schumacher, I have cracked left recursion. At least, I have a paper design that I believe I can implement. I think I will attempt to do this before the next release, as really without it pacc is very hard to use for a number of important cases. It should also make it possible to implement arbitrary counted repetitions, such as {2,4}. As a bonus, this should make certain error messages less opaque. Finally, I believe it to be an original piece of work. Read More...

Darn

Just had one of those “oh darn” experiences. I expect it'll all work out ok in the end, but it does seem to be a major flaw that has gone previously unnoticed. Read More...

More on documentation

Fantastic! I was nervous about trying to upload the new texinfo-based documentation to the website, fearing first that I'd have to rebuild the yesod app, and secondly that there would be painful stylesheet clashes. Read More...

Documentation

Sigh. Unix documentation, balkanization. Clearly we have to ship with a man page. It's a very long time since I've written anything in troff. For some recent projects, I've used pod to produce man pages. For one I wrote the documentation in XHTML and wrote a Haskell monadic combinator parser to output -man troff from that (OK, so that was insane). Read More...

Cleanups

Knocking off the last few items on the todo list. One was: Read More...

Tracing

One of the few blockers left on the todo list is “command line option to enable tracing”. That's clear enough, but to make that work, we really want to define a macro that will switch tracing on or off in pacc.h. And that's fine, except... pacc.c doesn't actually include pacc.h! My argument was that, since both files are automatically created, we don't need the customary consistency check between .c and .h. Read More...

More on Errors

In the last article, I was looking at how to handle “semantic errors”, such as [z-a]. As a simplified test case, I'd been playing with this grammar: Read More...

See older news

feed

Donate

Support the development of pacc with a donation! We accept donations in BitCoin or via PayPal who handle almost any other form of payment.