Changes for version 1.199_07
- Summary:
- This is the third release candidate for 1.200
- Minor tweak
- Details:
- Changed the way to detect Perl 5.6 to ignore the 1_0e1_0 failure
Changes for version 1.199_06
- Summary:
- This is the second release candidate for 1.200
- Some small bug fixes
- Details:
- Remove -w from test scripts to allow taint'enabled testing
- Skip the failing 1_0e1_0 test on Perl 5.6.2
Changes for version 1.199_05
- Summary:
- This is the first release candidate for 1.200
- Fix some parser corner cases
- Details:
- Fixed parsing of %!, $^\w, and %^H
- Fixed parsing of @{$foo}-1
- Fixed parsing of <$fh1>, <$fh2>
Changes for version 1.199_04
- Summary:
- Build tweaks
- More regression changes
- Details:
- Increasing List::Util dependency to 1.19 (Removes a memory leak on Win32)
Changes for version 1.199_03
- Summary:
- Support for a few more rare/legacy Perl syntax
- Tokenizer simplification, optimization and exception'ification
- Details:
- Added support for the <<\EOF heredoc style
- Always create ->{type} in full-quote sections
- Converted more of the Tokenizer to use exceptions
- Optimized away a bunch of now-unneeded "or return undef"
- Optimized _set_token_class down to a single statement
- Inlined _set_token_class out of existance
- Cache and fast-clone PPI::Token::Whitespace->null
- Removed some superfluous parameter checks on private methods, for conditions that would cause explosions and be noticed anyway.
- Removed the fancy options from PPI::Token::new
- More consistent structure of incomplete quotes
Changes for version 1.199_02
- Summary:
- Added parser timeout support
- Fixing various regression cases
- Adding some housekeeping tweaks
- Details:
- Created PPI::Exception with an eye to moving towards using exceptions more for error handling (for speed). The goal is to get rid of the "or return undef"s.
- Added the timeout param to the PPI::Document constructor which uses alarm to implement basic timeout support. This should help when parsing a large corpus on Unix. (Not available on Win32)
- Fixed incorrect location() for PPI::Structure instances.
- Adding better parsing of hash constructors.
- Pushing Clone dependency to 0.22 to get closer to taint support)
- Pushing deps on bundled test modules to prevent accidentally bundling old versions.
Changes for version 1.199_01
- Summary:
- Improved lexing correctness
- Partial implementation of literal
- Initial implementation of Number classes (Chris Dolan)
- Details:
- Split out PPI::Token::Number subclasses
- Implement numbers with exponential notation
- Implement literal() for ::Number classes (except ::Version)
- Implement literal() for ::Token::Quote::Single
- Added -T for inline tests
- Add tests for nested statements and nested structures
- Fixed some bugs as a result
- Improved detection of the correct curly brace structure types
Modules
- PPI - Parse, Analyze and Manipulate Perl (without perl)
- PPI::Cache - The PPI Document Caching Layer
- PPI::Document - Object representation of a Perl document
- PPI::Document::File - A Perl Document located in a specific file
- PPI::Document::Fragment - A fragment of a Perl Document
- PPI::Document::Normalized - A normalized Perl Document
- PPI::Dumper - Dumping of PDOM trees
- PPI::Element - The abstract Element class, a base for all source objects
- PPI::Find - Object version of the Element->find method
- PPI::Lexer - The PPI Lexer
- PPI::Node - Abstract PPI Node class, an Element that can contain other Elements
- PPI::Normal - Normalize Perl Documents
- PPI::Normal::Standard - Provides standard document normalization functions
- PPI::Statement - The base class for Perl statements
- PPI::Statement::Break - Statements which break out of normal statement flow
- PPI::Statement::Compound - Describes all compound statements
- PPI::Statement::Data - The __DATA__ section of a file
- PPI::Statement::End - Content after the __END__ of a module
- PPI::Statement::Expression - A generic and non-specialised statement
- PPI::Statement::Include - Statements that include other code
- PPI::Statement::Null - A useless null statement
- PPI::Statement::Package - A package statement
- PPI::Statement::Scheduled - A scheduled code block
- PPI::Statement::Sub - Subroutine declaration
- PPI::Statement::Unknown - An unknown or transient statement
- PPI::Statement::UnmatchedBrace - Isolated unmatched brace
- PPI::Statement::Variable - Variable declaration statements
- PPI::Structure - The base class for Perl braced structures
- PPI::Structure::Block - Curly braces representing a code block
- PPI::Structure::Condition - Round braces for boolean context conditions
- PPI::Structure::Constructor - Anonymous hash or array constructor
- PPI::Structure::ForLoop - Circular braces for a for expression
- PPI::Structure::List - Explicit list or precedence ordering braces
- PPI::Structure::Subscript - Braces that represent an array or hash subscript
- PPI::Structure::Unknown - An unknown or unresolved brace structure
- PPI::Token - A single token of Perl source code
- PPI::Token::ArrayIndex - Token getting the last index for an array
- PPI::Token::Attribute - A token for a subroutine attribute
- PPI::Token::Cast - A prefix which forces a value into a different context
- PPI::Token::Comment - A comment in Perl source code
- PPI::Token::DashedWord - A dashed bareword token
- PPI::Token::Data - The actual data in the __DATA__ section of a file
- PPI::Token::End - Completely useless content after the __END__ tag
- PPI::Token::HereDoc - Token class for the here-doc
- PPI::Token::Label - Token class for a statement label
- PPI::Token::Magic - Tokens representing magic variables
- PPI::Token::Number - Token class for a number
- PPI::Token::Number::Binary - Token class for a binary number
- PPI::Token::Number::Exp - Token class for an exponential notation number
- PPI::Token::Number::Float - Token class for a floating-point number
- PPI::Token::Number::Hex - Token class for a binary number
- PPI::Token::Number::Octal - Token class for a binary number
- PPI::Token::Number::Version - Token class for a byte-packed number
- PPI::Token::Operator - Token class for operators
- PPI::Token::Pod - Sections of POD in Perl documents
- PPI::Token::Prototype - A subroutine prototype descriptor
- PPI::Token::Quote - String quote abstract base class
- PPI::Token::Quote::Double - A standard "double quote" token
- PPI::Token::Quote::Interpolate - The interpolation quote-like operator
- PPI::Token::Quote::Literal - The literal quote-like operator
- PPI::Token::Quote::Single - A 'single quote' token
- PPI::Token::QuoteLike - Quote-like operator abstract base class
- PPI::Token::QuoteLike::Backtick - A `backticks` command token
- PPI::Token::QuoteLike::Command - The command quote-like operator
- PPI::Token::QuoteLike::Readline - The readline quote-like operator
- PPI::Token::QuoteLike::Regexp - Regexp constructor quote-like operator
- PPI::Token::QuoteLike::Words - Word list constructor quote-like operator
- PPI::Token::Regexp - Regular expression abstract base class
- PPI::Token::Regexp::Match - A standard pattern match regex
- PPI::Token::Regexp::Substitute - A match and replace regular expression token
- PPI::Token::Regexp::Transliterate - A transliteration regular expression token
- PPI::Token::Separator - The __DATA__ and __END__ tags
- PPI::Token::Structure - Token class for characters that define code structure
- PPI::Token::Symbol - A token class for variables and other symbols
- PPI::Token::Unknown - Token of unknown or as-yet undetermined type
- PPI::Token::Whitespace - Tokens representing ordinary white space
- PPI::Token::Word - The generic "word" Token
- PPI::Token::_QuoteEngine - The PPI Quote Engine
- PPI::Tokenizer - The Perl Document Tokenizer
- PPI::Transform - Abstract base class for document transformation classes
Provides
- PPI::Exception in lib/PPI/Exception.pm
- PPI::Exception::ParserTimeout in lib/PPI/Exception/ParserTimeout.pm
- PPI::Token::_QuoteEngine::Full in lib/PPI/Token/_QuoteEngine/Full.pm
- PPI::Token::_QuoteEngine::Simple in lib/PPI/Token/_QuoteEngine/Simple.pm
- PPI::Util in lib/PPI/Util.pm