Changes for version 0.840
- General:
- Changed the PPI summary to no longer use the devisive word "parse" Now: "PPI - Analyze and manipulate Perl code without using perl itself"
- Total rewrite of all the ->location code
- Upgrading MakeFile.PL to Module::Install
- Fixed #CPAN 8752 (a round-trip edge case bug)
- Added 08_regression.t to do code/dump regression testing for lexer bugs
- Completed (hopefully) HereDocs conversion to a single complex token
- PPI is now compatible with prefork.pm (although not dependant)
- Details:
- Added PPI::Node::find_first object method
- Changed PPI::Node::find_any to just call PPI::Node::find_first
- Added PPI::Element::first_token object method
- Added PPI::Element::last_token object method
- Made a partial-removal-capable PPI::Element::_flush_locations
- PPI::Document::flush_locations uses PPI::Element::_flush_locations
- PPI::Document::index_locations is here-doc sane
- Added PPI::Token::HereDoc::heredoc object method
- Added PPI::Token::HereDoc::terminator object method
- Documented PPI::Token::HereDoc
- Added a HereDoc code/dump test to 05_lexer_practical.t
- Added PPI::Document::serialize, which replaces the use of ->content for generating the actual string to write out to files when saving Documents.
- File::Spec reduced from dependency to build dependency
- Updated Test::ClassAPI dependency to newest version
- Enabled API collision detection in 02_api.t
- Updated Class::Autouse dependency to newest version
Changes for version 0.840_01
- General:
- Perl Foundation Funding Commences
- Changes separated into General and Details from here one
- Complete re-organisation of the quote-like token classes. Any and all code that works with quotes will be broken.
- Gave up on the old PPI::Query code and wrote a complete new and much thinner implementation based roughly on the API of File::Find::Rule. PPI::Find uses the &wanted function (which also has a slightly different API to the old one) but has the ->in style search methods. It should be relatively easy for someone to write PPI::Find::Rule on top of it.
- PPI::Transform is thus temporarily stale
- Details:
- Introduced a bug for C< foreach $foo () > and caught/fixed it during the changeover.
- Changed PPI::Lexer::Dump to PPI::Dumper
- API Freeze PPI::Find
- API Freeze PPI::Dumper
- Documented PPI::Find
- Documented PPI::Dumper
Documentation
Modules
Analyze and manipulate Perl code without using perl itself
A single Perl document
A fragment of a Perl Document
Create normalised PPI Documents
Dumping of PDOM trees
The abstract Element class, a base for all source objects
Object version of the Element->find method
The PPI Lexer
Abstract PPI Node class, an Element that can contain other Elements
The base class for perl statements
Describes all compound statements
A package statement
A scheduled code block
Subroutine declaration
Variable declaration statements
Token class for the here-doc
Provides
in lib/PPI/Base.pm
in lib/PPI/Format/HTML.pm
in lib/PPI/Statement/Break.pm
in lib/PPI/Statement/Data.pm
in lib/PPI/Statement/End.pm
in lib/PPI/Statement/Expression.pm
in lib/PPI/Statement/Include.pm
in lib/PPI/Statement/Null.pm
in lib/PPI/Statement/Unknown.pm
in lib/PPI/Statement/UnmatchedBrace.pm
in lib/PPI/Structure.pm
in lib/PPI/Structure/Block.pm
in lib/PPI/Structure/Condition.pm
in lib/PPI/Structure/Constructor.pm
in lib/PPI/Structure/ForLoop.pm
in lib/PPI/Structure/List.pm
in lib/PPI/Structure/Subscript.pm
in lib/PPI/Structure/Unknown.pm
in lib/PPI/Token.pm
in lib/PPI/Token/ArrayIndex.pm
in lib/PPI/Token/Attribute.pm
in lib/PPI/Token/Cast.pm
in lib/PPI/Token/Comment.pm
in lib/PPI/Token/DashedWord.pm
in lib/PPI/Token/Data.pm
in lib/PPI/Token/End.pm
in lib/PPI/Token/Label.pm
in lib/PPI/Token/Magic.pm
in lib/PPI/Token/Number.pm
in lib/PPI/Token/Operator.pm
in lib/PPI/Token/Pod.pm
in lib/PPI/Token/Prototype.pm
in lib/PPI/Token/Quote.pm
in lib/PPI/Token/Quote/Double.pm
in lib/PPI/Token/Quote/Interpolate.pm
in lib/PPI/Token/Quote/Literal.pm
in lib/PPI/Token/Quote/Single.pm
in lib/PPI/Token/QuoteLike.pm
in lib/PPI/Token/QuoteLike/Backtick.pm
in lib/PPI/Token/QuoteLike/Command.pm
in lib/PPI/Token/QuoteLike/Regexp.pm
in lib/PPI/Token/QuoteLike/Words.pm
in lib/PPI/Token/Regexp.pm
in lib/PPI/Token/Regexp/Match.pm
in lib/PPI/Token/Regexp/Substitute.pm
in lib/PPI/Token/Regexp/Transliterate.pm
in lib/PPI/Token/Separator.pm
in lib/PPI/Token/Structure.pm
in lib/PPI/Token/Symbol.pm
in lib/PPI/Token/Unknown.pm
in lib/PPI/Token/Whitespace.pm
in lib/PPI/Token/Word.pm
in lib/PPI/Token/_QuoteEngine.pm
in lib/PPI/Token/_QuoteEngine/Full.pm
in lib/PPI/Token/_QuoteEngine/Simple.pm
in lib/PPI/Tokenizer.pm
in lib/PPI/Transform.pm
in lib/PPI/Transform/Object.pm