On Mon, Nov 21, 2005 at 11:25:20AM -0600, Patrick R. Michaud wrote:
: On Mon, Nov 21, 2005 at 09:02:57AM -0800, Larry Wall wrote:
: > : There's also <sp>, unless someone redefines the <sp> subrule.
: > 
: > But you can't use <sp> in a character class.  Well, that is, unless
: > you write it:
: > 
: >     <+[ a..z ]+<sp>>
: > 
: > or some such.  Maybe that's good enough.
: 
: Er, that's now <+[ a..z ]+sp>, unless you're now changing it back.

No, just me going senile.

: > : And in the general case that's a slightly more expensive mechanism 
: > : to get a space (it involves at least a subrule lookup).  Perhaps 
: > : we could also create a visible meta sequence for it, in the same 
: > : way that we have visible metas for \e, \f, \r, \t.  But I have 
: > : no idea what letter we might use there.
: > 
: > Something to be said for \_ in that regard.
: 
: Yes, I thought of \_ but mentally I still have trouble 
: classifying "_" along with the alphabetics -- '_' looks more
: like punctuation to me.  And in general we use backslashes
: in front of metacharacters to remove their meta meaning
: (or when we aren't sure if a character has a meta meaning),
: so that \_ somehow seems like it ought to be a literal
: underscore, guarding against the possibility that the unescaped
: underscore has a meta meaning.  (And yes, I can shoot
: holes in this line of thinking along with everyone else.)

I think we'll leave both _ and \_ meaning the same thing, just to avoid
that confusion path--I've seen people backwhacking anything remotely
resembling punctuation just in case it's a metacharacter, and if they
are confused about _, they might backwhack it.  More to the point,
I think <sp> and +sp are about the right Huffman length, given that
matching a single space is usually wrong.  You usually want \s or \s*.

: Whatever shortcuts we introduce, I'll be happy if we can just
: rule that backslash+space (i.e., "\ ") is a literal space
: character -- i.e., keeping the principle that placing a backslash
: in front of a metacharacter removes that character's "meta"
: behavior.

Yes, that will be a space.

: > I dunno.  If «...» in ordinary code does shell quoting, maybe «...» in
: > rules does filename globbing or some such.  I can see some issues with
: > anchoring semantics.  Makes more sense on a string as a whole, but maybe
: > can anchor on element boundaries if used on a list of filenames.
: > I suppose one could even go as far as
: > 
: >     rule jpeg :i « *.jp{e,}g »
: > 
: > or whatever the right glob syntax is.
: 
: Since we already have :perl5, I'd think that we'd want globbing 
: to be something like
: 
:     rule jpeg :i :glob /*.jp{e,}g/
: 
: or, for something intra-rule-ish:
: 
:     m :w / mv (:glob *.c)+ <dir> /

Yep, that's what I decided in my other message that was thinking about
using < ... > for word boundaries and << ... >> for capturing $<>.

: And perhaps we'd want a general form for specifying other 
: pattern syntaxes; i.e., :perl5 and :glob are shortcuts for
: :syntax('perl5') and :syntax('glob') or something like that.

Maybe.  Or maybe it's enough that there are syntactic categories for
adding rule modifiers.  Doesn't seem like you'd want to parameterize
the current language very often.

Larry

Reply via email to