On Monday 10 March 2008 14:31:27 Will Coleda wrote:

> I know "replace" is invalid (that's why I marked it with a comment).
> That doesn't stop pmc2c.pl from trying to convert that invocation of
> Parrot_PCCINVOKE when it shouldn't.

The regex is in lib/Parrot/Pmc2c/PCCMETHOD.pm, specifically 
rewrite_pccmethod():

    my $signature_re     = qr{
      (
      (
      \( ([^\(]*) \)   # results
      \s*              # optional whitespace
      =                # results equals PCCINVOKE invocation
      \s*              # optional whitespace
      )?               # results are optional
      PCCINVOKE        # method name
      \s*              # optional whitespace
      \( ([^\(]*) \)   # parameters
      ;?               # optional semicolon
      )
    }sx;

Throwing \b in front of PCCINVOKE seems to do the trick, so r26300 gives you 
back your nice C errors and excludes the Perl stack trace.

Nice catch.  I had to stare at this for a few minutes to figure it out.

-- c

Reply via email to