bee20db74e
- Allow a global <skip:> directive that functions the same as modifying $Parse::RecDescent::skip prior to compiling a grammar. (Thanks Flavio!) - *** 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 them 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 which 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 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 $_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-definiing a lot of Parse::RecDescent subroutines) to fail needlessly, as the OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Parse-RecDescent?expand=0&rev=33
13 lines
503 B
Diff
13 lines
503 B
Diff
Index: Parse-RecDescent-1.967006/lib/Parse/RecDescent.pm
|
|
===================================================================
|
|
--- Parse-RecDescent-1.967006.orig/lib/Parse/RecDescent.pm 2012-02-11 05:49:54.000000000 +0100
|
|
+++ Parse-RecDescent-1.967006/lib/Parse/RecDescent.pm 2012-02-13 15:59:09.350410266 +0100
|
|
@@ -3013,6 +3013,7 @@
|
|
sub _code($)
|
|
{
|
|
my $self = shift;
|
|
+ $skip = "" if(! defined $skip);
|
|
my $initial_skip = defined($self->{skip}) ? $self->{skip} : $skip;
|
|
|
|
my $code = qq{
|