> > * The match operator, C<m>, is always required (bare C<//>
   > >   becomes a fatal error).
   >
   > I could live with that.  Damian's done some work trying to tokenize
   > Perl and knows what the weird edge cases are.  Damian, can you post
   > your short list?

Bare C</.../> and bare C<?...?> *are* the main culprits. They require
the tokenizer to track expression semantics so that when it encounters a
'/' or '?' it can tell whether a pattern is plausible in this place or
whether they've reached a division or hook operator, respectively.

In fact, these two cases are the *only* semantic contexts that
Text::Balanced has to track in order to parse almost any Perl code. Of
course, it cheats a great deal by slurring over most of the tokenization
in the interests of speed.

Damian

Reply via email to