Sat Feb 11 2012 Paul Howarth <paul@city-fan.org> - 1.967006-1
- Update to 1.967006 (#789560)
- Localize the OUT filehandle during Precompile
- Document the <autotree:Base::Class> form of the <autotree> directive
- Provide a simple test for the <autotree> directive, t/autotree.t; renamed
basics.t to ensure it runs before autotree.t
- Allow a global <skip:> directive that functions the same as modifying
$Parse::RecDescent::skip prior to compiling a grammar
- Require that the $file returned by caller() be eq '-', rather than merely
starting with '-'
- Warn on empty productions followed by other productions: the empty
production always matches, so following productions will never be reached
- NON-BACKWARDS COMPATIBLE CHANGE: a repetition directive such as 'id(s /,/)'
correctly creates a temporary @item variable to hold the 'id's that are
matched. That @item variable is then used to set the real $item[] entry for
that repetition. The same treatment is now given to %item. Formerly, in a
production like:
id ',' id(s /,/)
matched against:
xxx, yyy, zzz
The $item{id} entry that should be 'xxx' is overwritten by 'yyy' and then
'zzz' prior to the action being executed. Now 'yyy' and 'zzz' set
$item{id}, but in the private %item, which goes out of scope once the
repetition match completes.
- EXPERIMENTAL: when precompiling, optionally create a standalone parser by
including most of the contents of Parse::RecDescent in the resulting
Precompiled output
- Accept an optional $options hashref to Precompile, which can be used to
specify $options->{-standalone}, which currently defaults to false
- The subroutines import, Precompile and Save are not included in the
Precompile'd parser
- The included Parse::RecDescent module is renamed to
Parse::RecDescent::_Runtime to avoid namespace conflicts with an installed
and use'd Parse::RecDescent
- Add a new t/precompile.t to test precompilation
- Add a new $_FILENAME global to Parse::RecDescent to make it easy for the
Precompile method to find the module
- Remove the prototype from _generate; it is not required, and it caused
t/precompile.t (which ends up re-defining a lot of Parse::RecDescent
subroutines) to fail needlessly, as the calls to _generate in Replace and
Extend normally do not see the prototype, but do when re-defined
- POD documentation for standalone parsers added
- Added ExtUtils::MakeMaker build/configure version requirements
(CPAN RT#74787)
- BR: perl(Test::Pod) and perl(Test::Warn) for additional test coverage
- Use a patch rather than scripted iconv to fix character encoding
- Improve %summary
- Tidy %description
- Make %files list more explicit
- Don't use macros for commands
- Don't need to specify compiler flags for pure-perl package
- Drop redundant 'find' commands from %install