0.021 T. R. Wyant 22-Jul-2011
Modified tokenizer to correctly handle a back slash used as a
delimiter. I believe.
PPIx::Regexp::Dumper now dumps the results of ppi() if that method is
present and -verbose is asserted.
0.020 T. R. Wyant 02-Apr-2011
Corrected perl_version_introduced():
\R is now 5.009005 (was 5.000).
0.019 T. R. Wyant 01-Mar-2011
Various corrections to perl_version_introduced():
\X is now 5.006 (was 5.000);
\N{name} is now 5.006001 (was 5.006);
\N{U+xxxx} is now 5.008 (was 5.006).
The \C is now parsed as a PPIx::Regexp::Token::CharClass::Simple. It
was previously considered a PPIx::Regexp::Token::Literal.
Ensure that \N{$foo} parses as a Unicode literal, not a quantified \N.
The ordinal() method returns undef for this.
Understand the /aa modifier, introduced with 5.13.10.
Report perl_version_introduced() of 5.013010 for the new semantic
modifiers when modifying the entire expression.
Correct handling of interpolations like ${^foo} and $#{foo}.
0.018 T. R. Wyant 16-Feb-2011
No changes (other than version) since 0.017_02.
0.017_02 T. R. Wyant 31-Jan-2011
Override ppi() in PPIx::Regexp::Token::Interpolation to provide the
proper PPI when variable names are bracketed.
Properly parse bracketed variable names (I hope!), which may not be
subscripted.
0.017_01 T. R. Wyant 28-Jan-2011
Take account of possible '$' or '@' casts before a symbol in an
interpolation (e.g. $$foo{bar}, which is equivalent to $foo->{bar}).
0.017 T. R. Wyant 26-Jan-2011
Add the /a modifier to PPI::Regexp::Token::Modifiers, legal only in
the (?:...) construction. This was introduced in Perl 5.13.9.
When parsing an interpolation from a replacement string (rather than a
regular expression), take subscripts at face value rather than
trying to disambiguate them from quantifiers and character classes,
which they can't be in this context.
0.016 T. R. Wyant 05-Jan-2011
The PPIx::Regexp::Token::Code perl_version_introduced() method now
returns the minimum Perl version (currently set to 5.000) if it is
used to represent the substitution portion of s///e.
Update copyright to 2011.
0.015 T. R. Wyant 25-Oct-2010
Documented intent to revoke support for features introduced in a
development Perl which do not make it to a production release. This
is necessary because in this case the syntax could be reused with
different semantics.
Added support for Perl 5.13.6 (?^...) construction.
Added support for Perl 5.13.6 d, l, and u modifiers.
Fixed inconsistency in perl_version_introduced() results between
PPIx::Regexp::Token::Modifier and
PPIx::Regexp::Token::GroupType::Modifier.
Corrected PPIx::Regexp::Constant RE_CAPTURE_NAME docs, somehow missed
back at 0.010_01.
0.014 T. R. Wyant 14-Oct-2010
Recognize \o{...} as a PPIx::Regexp::Token::Literal, with
perl_version_introduced() of 5.0013003.
Terminate \0.. through \7.. after three characters, as Perl does.
These two were brought to my attention by Brian D. Foy's "The
Effective Perler" for October 11 2010,
http://www.effectiveperlprogramming.com/blog/697
Correct the PPIx::Regexp::Token::Literal ordinal() method for '\b'. As
a literal, this is a back space.
0.013 T. R. Wyant 10-Oct-2010
Declare a parse failure if characters are found between the '}' and
the ')' of (?{...}) and (??{...}), and rebless the tokens to
::Unknown. Perl does not accept anything here, so I think I should
not either.
Whitespace tweak in the PPIx::Regexp::Dumper test output for the
failures test.
Replace the PPI logic in PPIx::Regexp::Token::Code with a call to
$tokenizer->find_matching_delimiter(). This is actually the way Perl
works, as a look at toke.c and regcomp.c makes clear.
Push the perl_version_introduced() back to 5.0 at the request of
Alexandr Ciornii, for the potential benefit of Perl::MinimumVersion.
This was done mostly by reading the various perlre, perldelta, and
perlop documents, so these should be taken with a HUGE grain of
salt.
0.012 T. R. Wyant 26-Sep-2010
Track all the features reported as introduced (or removed) in Perl
5.010 back to Perl 5.009005, and report them as such.
Report modifier /r as having been introduced in Perl 5.013002, rather
than the default of 5.006.
pkgsrc changes:
- adjust dependencies
Upstream changes:
0.011 T. R. Wyant 16-Sep-2010
No changes from 0.010_01.
0.010_01 T. R. Wyant 11-Sep-2010
Remove dependencies on Params::Util and Readonly. The latter involved
changing the symbols exported from PPIx::Regexp::Constant, but these
were documented as private, so ...
Parse POSIX character classes [=a=] and [.a.] as
PPIx::Regexp::Token::CharClass::POSIX::Unknown, which counts as a
parse failure since these are not supported by Perl.
Make the PPI::Document created by PPIx::Regexp::Token::Code->ppi() be
read only. This means we need PPI 1.116. Cache the document, and
ensure the cached result is returned on subsequent calls.
to trigger/signal a rebuild for the transition 5.10.1 -> 5.12.1.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=..."), minus the packages updated after
the perl package update.
sno@ was right after all, obache@ kindly asked and he@ led the
way. Thanks!
Upstream changes:
0.010 T. R. Wyant 06-Aug-2010
Fix fatal error in PPIx::Regexp::Token::Code->ppi().
Move author tests from xt/ to xt/author/.
0.009 T. R. Wyant 03-Aug-2010
Recognize s/.../.../ee as being different from s/.../.../e. In
particular, the replacement portion of the former is _not_ a Perl
expression: it's an interpolatble string, which later gets
eval{}'ed.
scheduled update of devel/p5-Perl-Critic to 1.108.
The purpose of the PPIx-Regexp package is to parse regular expressions
in a manner similar to the way the PPI package parses Perl. This class
forms the root of the parse tree, playing a role similar to PPI::Document.