Changes for version 1.967_004 - 2012-02-07
- 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. (Thanks Flavio!)
- Require that the $file returned by caller() be eq '-', rather than merely starting with '-'. This allows execution of the following. (Thanks Christopher) perl -MParse::RecDescent -e 'print "$Parse::RecDescent::VERSION\n";'
- 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 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 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-definiing 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.
Documentation
extract components from sourcecode written in the C programming language
Provides
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
in lib/Parse/RecDescent.pm
Other files
- Build.PL
- Changes
- MANIFEST
- META.json
- META.yml
- Makefile.PL
- README
- ToDo
- demo/demo.c
- demo/demo.pl
- demo/demo_Cgrammar.pl
- demo/demo_Cgrammar_v2.pl
- demo/demo_LaTeXish.pl
- demo/demo_LaTeXish_autoact.pl
- demo/demo_NL2SQL.pl
- demo/demo_OOautoparsetree.pl
- demo/demo_OOparsetree.pl
- demo/demo_PerlCSV.pl
- demo/demo_arithmetic.pl
- demo/demo_autorule.pl
- demo/demo_autoscoresep.pl
- demo/demo_autostub.pl
- demo/demo_bad.pl
- demo/demo_buildcalc.pl
- demo/demo_calc.pl
- demo/demo_codeblock.pl
- demo/demo_cpp.pl
- demo/demo_decomment.pl
- demo/demo_decomment_nonlocal.pl
- demo/demo_delete.pl
- demo/demo_derived.pl
- demo/demo_dot.pl
- demo/demo_embedding.pl
- demo/demo_errors.pl
- demo/demo_eval.pl
- demo/demo_implicit.pl
- demo/demo_itemhash.pl
- demo/demo_language.pl
- demo/demo_leftassoc.pl
- demo/demo_leftop.pl
- demo/demo_lexer.pl
- demo/demo_lisplike.pl
- demo/demo_logic.pl
- demo/demo_matchrule.pl
- demo/demo_matchrule2.pl
- demo/demo_mccoy.pl
- demo/demo_methods.pl
- demo/demo_operator.pl
- demo/demo_opreps.pl
- demo/demo_parsetree.pl
- demo/demo_perlparsing.pl
- demo/demo_piecewise.pl
- demo/demo_precalc.pl
- demo/demo_quicklist.pl
- demo/demo_randomsentence.pl
- demo/demo_recipe.pl
- demo/demo_restructure_easy.pl
- demo/demo_restructure_painful.pl
- demo/demo_scoredsep.pl
- demo/demo_selfmod.pl
- demo/demo_separators.pl
- demo/demo_simple.pl
- demo/demo_simpleXML.pl
- demo/demo_simplequery.pl
- demo/demo_skipcomment.pl
- demo/demo_street.pl
- demo/demo_template.pl
- demo/demo_textgen.pl
- demo/demo_tokens.pl
- demo/demo_undumper.pl
- demo/demo_whoson.pl