============================================================================== Release of version 1.79 of Parse::RecDescent ============================================================================== NAME Parse::RecDescent - generate recursive-descent parsers DESCRIPTION RecDescent incrementally generates top-down recursive-descent text parsers from simple yacc-like grammar specifications. It provides: * Regular expressions or literal strings as terminals (tokens), * Multiple (non-contiguous) productions for any rule, * Repeated, optional and alternate subrules within productions, * Late-bound (run-time dispatched) subrules * Full access to Perl within actions specified as part of the grammar, * Simple automated error reporting during parser generation and parsing, * The ability to commit to, uncommit to, or reject particular productions during a parse, * Incremental extension of the parsing grammar (even during a parse), * Precompilation of parser objects, * User-definable reduce-reduce conflict resolution via "scoring" of matching productions. See the file "RecDescent.pod" for excruciating detail on all of this. LIMITATIONS * There's no support for parsing directly from an input stream. * The generator doesn't handle left-recursion. PREREQUISITES Parse::RecDescent requires Text::Balanced, which is included in the distribution. INSTALLATION It's all pure Perl, so just put the .pm files in their appropriate local Perl subdirectories. CHANGES AND FUTURE DEVELOPMENT This readme refers to versions 1.XX. For details of changes, refer to the file Changes. Version 2.00 will provide a cleaner interface and better parsing performance. AUTHOR Damian Conway (damian@csse.monash.edu.au) COPYRIGHT Copyright (c) 1997-2000, Damian Conway. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html) ============================================================================== CHANGES IN VERSION 1.79 - Pod tweak (thanks Abigail) - Documented need to use do{..} within some directives (thanks Paul) - Added Save method - Fixed bug that was preventing precompiled parsers being subsequently extended (thanks Jeff). - Changed keys used by %item. Now uses "named positionals" rather that simple positionals for non-subrule items (see documentation) - Added trimmer for surrounding whitespace in matchrules. - Squelched bug in (not) handling invalid directives (thanks John) ============================================================================== AVAILABILITY Parse::RecDescent has been uploaded to the CPAN and is also available from: http://www.csse.monash.edu.au/~damian/CPAN/Parse-RecDescent.tar.gz ==============================================================================