Revision history for PPR
0.000001 Wed May 27 15:12:24 2015
* Initial release.
0.000003 Tue Jun 20 06:05:22 2017
* No changes logged
0.000005 Tue Jun 20 19:27:37 2017
* Added missing PPR::X module
(Thanks MST)
0.000006 Thu Jun 22 21:04:14 2017
* Fixed documentation bug with slurp (pre-)example.
(Thanks, Randal!)
* Optimized matching of builtins slightly
* Added $PPR::ERROR variable to assist error reporting on failure to match
(Many thanks, MST!)
0.000007 Fri Jun 23 06:45:49 2017
* Improved $PPR::ERROR API by adding origin location and diagnostics
0.000008 Sun Jun 25 15:24:13 2017
* Unknotted POD nits.
* Small optimizations to keyword and identifier recognition.
* Fixed handling of multiline quotelikes that span heredoc contents.
(Thanks Lukas)
* SIGNIFICANT CHANGE: The $PPR::GRAMMAR variable now has to be
interpolated at the start of any regex using it.
* Fixed handling of layered heredocs (at the cost of having to install
$PPR::GRAMMAR at the start of each grammar).
(Thanks Lukas)
* Fixed diamond operator parsing.
(Thanks Lukas)
0.000009 Thu Jun 29 08:17:24 2017
* SIGNIFICANT REVERSION: The $PPR::GRAMMAR variable no longer
has to be interpolated at the start of any regex using it.
Indeed, that placement is not recommended due to its effects
on the numbering of positional captures within the main regex.
* Fixed test files to allow testing under 5.10+, rather than 5.14+
0.000010 Fri Jul 14 07:36:47 2017
* Added yada-yada (...) statement
(Thanks, MST!)
0.000011 Fri Aug 11 17:52:14 2017
* Further optimized parsing of heredocs
* Eliminated even more repetition backtracking
(bringing the grammar ever closer to DFA-osity)
* Micro-optimization: Reordered PerlOWS and PerlNWS components to
reflect that \n whitespace is more common that # comments or
__END__ blocks
* Made formats and heredocs play nice together by adding a potential
heredoc skip at the end of the first line of a format.
(Sincere thanks to Merijn)
* Made interpolating quotelikes work (more) correctly.
0.000012 Mon Aug 21 20:40:08 2017
* Handled /.../n flag
(thanks, David)
* Handled leading BOM correctly
(thanks, David)
* Handled ${!}-style punctuation variables
(thanks, David)
* "fline" is not a word (thanks, Hugo ;-)
* Added (?&PerlEndOfLine)
(Thanks, Yves)
* Handled s/.../.../e behaviour better.
Still not perfect, but perfection may not be possible using regexes.
(Thanks, Aaron!)
* Neutralized bizarre undefined warnings
under earlier Perl versions.
0.000013 Mon Aug 21 20:54:42 2017
* Removed spurious Regexp::Debugger dependency
(Thanks Slaven!)
0.000014 Thu Sep 28 21:43:51 2017
* Added BAIL_OUTs to test suite to accelerate
and clarify testing under Perl 5.20
* Added missing optional whitespace to DESTROY and AUTOLOAD declarations
(thanks, Hauke D)
0.000015 Wed Dec 6 08:18:09 2017
* Fixed disapproval.t test
(Thanks, Martin!)
* Fixed handling of ->$*, ->@*, and ->%*
(Thanks, Curtis!)
0.000016 Mon Jun 4 13:58:06 2018
* Uninlined optimizations in PPR::X to make redeclaration
of subrules easier and more reliable.
(Thanks, Matt!)
* Added (?&PerlReturnExpression) to distinguish
in-term usages from statement-level usages
requiring (?&PerlReturnStatement)
0.000017 Tue Jun 19 07:57:57 2018
* Added PPR::decomment()
(mostly as an example of technique)
* Updated for loop parsing to support explicitly aliased iterator variables
(including arrays and hashes)
* Added (?&PerlTermPostfixDereference) to simply PPR::X overloading of terms
* Added Perl 5.28 ":attributes(before) ($ignature)" syntax for subroutines
(thanks, Matt)
0.000018 Mon Jun 25 09:59:36 2018
* Fixed _uniq()
(thanks Adriano!)
0.000019 Tue Jun 26 19:33:17 2018
* Fixed parsing of multiple POD sections
(thanks Adriano!)
0.000020 Tue Jun 26 19:54:42 2018
* Oops, fixed decomment() too.
* Updates PPR::X approriately as well.
0.000021 Wed Jun 27 06:33:51 2018
* Removed spurious Regexp::Debugger dependency
(thanks, Adriano)
* Fixed edge case on POD/whitespace parsing
(thanks, Adriano)
0.000022 Fri Oct 5 07:10:33 2018
* Optimized calls to (?&PerlStatementSequence) and (?&PerlPodSequence)
(thanks, Adriano)
* Optimized several tests to remove unnecessary (?&PerlOWS) calls
(thanks, Adriano)
0.000023 Fri Feb 15 09:20:25 2019
* Fixed (?&PerlScalarExpression)
0.000024 Tue Dec 10 05:20:23 2019
* Relaxed parsing of __DATA__ and __END__ in line with actual Perl parser
* Numerous doc bugs fixed (thanks F.Li!)