Larry Wall writes:
> If we're going to stick with the notion that <foo> captures and
> something else doesn't, I'm beginning to think that the other thing
> isn't Âfoo for a couple of reasons.
I just sat down to say the exact same thing. I'm glad you beat me to
it.
> And people would have to get used to seeing ? as non-capturing assertions:
>
> <?before ...>
> <?after ...>
> <?ws>
> <?sp>
> <?null>
>
> This has a rather Ruby-esque "I am a boolean" feeling to it. I think
> I like it. It's pretty easy to type, at least on my keyboard.
Yeah, I like it pretty well too. Better than the french quites for
sure.
> Now suppose that we extend that "I am a boolean" feeling to
>
> <?{ code }>
>
> which might take the place of the confusing <(...)>, and make consistent
> the notion that we always use {...} to invoke "real" code.
Hmm... I'm just so attached to <(...)>. I find it quite beautiful. It
also somehow communicates the feeling "you shouldn't be putting
side-effects here".
> I think I'm leaning toward the idea that anything in angles that
> begins alpha is a capture to just the alpha part, so the ? prefix is
> merely a no-op that happens to make the assertion not start with an
> alpha. Interestingly, that gives these implicit bindings:
>
> <after ...> $<after> $`
> <before ...> $<before> $'
I don't quite follow. Wouldn't that mean that these guys would get
clobbered if you used lookaheads or lookbehinds in your rules?
> Or we could use some standard delim for that:
>
> <ws-1> <ws-2> <ws-3>
>
> which is vaguely reminiscent of our "version" syntax. Indeed, if we
> had quantifications, you might well want to have wildcards <ws-*> and
> let the name be filled in rather than autogenerating a list. But
> maybe we just stick with lists in that case.
I can imagine this being a lot cleaner if the thing after the dash can
be any sort of identifier:
<ws-indent> if <?ws> <condition> <ws-comment>
On the other hand, it could be misleading, since the standard naming of
BNF uses dashes instead of underscored. I don't think it should be a
big problem though.
> I'm still thinking about what Â... might mean, if anything. Bonus
> points for interpolative and/or word-splitty.
Yeah... umm... nope. I got nothin.
Luke