SRFI-110 updated (version 2013/08/07)!! Are we done??
David A. Wheeler 07 Aug 2013 11:52 UTC
There's now a new version of SRFI-110 (version 2013/08/07), here:
http://srfi.schemers.org/srfi-110/srfi-110.html
Are we done?!?
I don't know if Mark H Weaver will be happy with it, but I've mightily
strived to make it easier to understand, while simultaneously keeping it
correct and rigorous, per his earlier comments.
It ended up being an overhaul of the spec section!
It still uses LL(1), because I don't see how changing this particular
grammar to LALR(1) would help much. HOWEVER:
* The productions are split into smaller named rules, so
each one should be easier to understand.
* The productions themselves have been simplified where possible.
In particular, now that an "empty_value" can be returned, a
number of productions could be simplified (and were).
* The ANTLR cruft "returns [Object v]" in each production is now gone.
* The definition of n_expr and n_expr_first are now explained in words;
that turns out to be easier to do.
Adding support for #; followed by whitespace did cause a number of
changes; I chose to add support for a special "empty_value", and I think
it was the right course. That meant that several support procedures
had to be defined (to handle it), but each one is trivial, and doing this
did simplify the BNF grammar itself.
(My thanks to the SRFI editors for their quick work.)
Comments welcome!!
--- David A. Wheeler