===
DESCRIPTION
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),
* The ability to retrieve the generated parsing code.
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 an optional parser compiler to generate
separate parsing modules with no construction run-time overhead.
AUTHOR
COPYRIGHT
Copyright (c) 1997-1998, 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.*-*-*.com/ )
==============================================================================
CHANGES IN VERSION 1.42
- Added a test.pl
- Modified behaviour of repetitions, so that the results
of repeated subrules which succeed but don't consume are
preserved (at least up to the minimal number of repetitions)
contained alternations
- Fixed bug: Embedded unmatched '}' in regex tokens now works
correctly
- Miscellaneous tweaks to RecDescent.pod (e.g. updated meta-grammar)
==============================================================================
AVAILABILITY
Parse::RecDescent has been uploaded to the CPAN
and is also available from:
http://www.*-*-*.com/ ~damian/CPAN/Parse-RecDescent.tar.gz
==============================================================================