[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: scope of #!sweet and friends inside parens

It's well defined how #!foo is delimeted and consumed.
I'm talking about the effect they have on parsing "subsequent datums" - what does that meanÂprecisely when it occurs it the middle of some datum?

On Thu, May 2, 2013 at 5:01 AM, Alan Manuel Gloria <almkglor@xxxxxxxxx> wrote:
Eh, I thought this was part of the definition of "#-based comment", which is basically anything that starts with #\# but doesn't cause the reader to yield a datum. This includes #| |# and #;. So #!sweet and friends would be treated the same as #| |# in indentation processing.

On Thu, May 2, 2013 at 6:00 PM, Beni Cherniavsky-Paskin <cben@xxxxxxxxxxxx> wrote:
The spec is not particularly clear on what crazy things like this mean:

(( ... #!sweet ...) ... #!no-sweet ... ( ...Â#!curly-infix ...)) ...

or this:

define foo()
! a b
! #!no-sweet
! c d

As written, it sounds that the directives must have a flat, global effect on the port, crossing all ( ) boundaries.
But correctly implementing this sounds painful to me. ÂE.g. you can't call a lower-level (read) / (neoteric-read) unless they understand these directives. ÂAnd every procedure must be ready for sweet processing to be turned off underneath it.

I propose for simplicity to say that these directives SHOULD (MUST?) be used only at top level.
Probably also require them to be alone on a line, at column 0 (trailing hspace and comments are ok)?
And say that implementations MAY signal an error if used otherwise.

Beni Cherniavsky-Paskin

Beni Cherniavsky-Paskin