Revision history for Parser-MGC 0.22 2024-10-11 [CHANGES] * Added `->warn` and `->warn_from` * Pass additional arguments to `->maybe` method through to invoked code * Swap unit tests from `Test::More` to `Test2::V0`; avoids need for `Test::Fatal` * General module style updates/refresh to code style, documentation, etc.. 0.21 2022-02-23 [CHANGES] * Add stall-detection to list-repeating methods, in order to detect buggy grammars that can get stuck * Define optional subclassing methods ->on_parse_start and ->on_parse_end * Added ->include_string to assist with file-inclusion, macro-expansion or similar tasks 0.20 2022-02-14 [CHANGES] * Avoid File::Slurp::Tiny (RT137215) * Added methods + ->filename + ->nonempty_substring_before + ->die and ->die_from * Make use of perl 5.32's `isa` operator when available 0.19 2021-04-23 [CHANGES] * Document how to generate more helpful error messages from ->any_of * More helpful error message if ->from_file fails (RT134841) * Improved performance of ->skip_ws (RT74779) * Added a JSON-like parser example [BUGFIXES] * Fix spelling and syntax errors in documentation (RT134842, RT134843) 0.18 2021-03-27 [CHANGES] * Repack tarball without stale `Makefile.PL` * No actual code changes 0.17 2021-03-27 [CHANGES] * Wording fix in docs - remove duplicate `pending` (thanks hobbs) * Use Feature::Compat::Try instead of plain `eval {}` blocks * Style modernisations for perl v5.14+ 0.16 2017/01/10 16:39:02 [CHANGES] * Added ->take method * Added ->committed_scope_of method * Added a simple Bencode example 0.15 2015/12/03 16:56:19 [CHANGES] * Allow method names as well as CODE references to structure-forming methods * Added worked run-through example documentation and explanation of the expression evaluator parser example * Further expanded Parser::MGC::Tutorial 0.14 2015/08/31 15:29:36 [CHANGES] * Many documentation improvements: + More detailed explanation of backtracking behaviour and the use of the ->commit method + Trailing delimiter does not upset ->list_of + Added an as-yet incomplete Parser::MGC::Tutorial * Use Scalar::Util::blessed() to avoid the eval { ->isa } antipattern * Have long-deprecated ->one_of print a deprecation warning 0.13 2015/06/25 19:05:10 [CHANGES] * Use File::Slurp::Tiny instead of File::Slurp 0.12 2013/09/01 01:30:13 [CHANGES] * Ensure that ->expect / ->maybe_expect with optional capture groups don't yield warnings (thanks BP Jonsson) * Allow setting binmode for ->from_file * Slightly neater examples/parse-xml.pl 0.11 CHANGES: * Allow different toplevel parse methods to the constructor * Added another example showing parsing XML - only a minimal example; do not use this as real code. :) 0.10 CHANGES: * Added ->maybe_expect, for higher performance parsers 0.09 CHANGES: * Added ->pos accessor and ->fail_from to throw failures from other locations * Added ->token_number as a convenience for int or float 0.08 CHANGES: * Give ->list_of and ->sequence_of proper failure-handling semantics * Added ->generic_token * Defer conversion of pos into line/col/text until string-formatting a failure exception - improves performance of backtracking * Make token_float tuneable 0.07 CHANGES: * Allow ->expect to return subgroup captures in list context * Documentation improvements BUGFIXES: * Use Data::Dumper rather than Data::Dump in examples, as the latter is not core; no point pulling in non-core deps simply for examples 0.06 CHANGES: * Renamed ->one_of to ->any_of * Added ->substring_before * Allow ->scope_of to not take a start pattern * Recognise the usual set of character escapes in ->token_string * Added more example scripts to demonstrate: + the use ->substring_before to parse POD-like notation + accumulator variables instead of structural return * Unit-test the example scripts 0.05 CHANGES: * Added ->scope_level * Added ->from_reader as a new potential source of string input 0.04 CHANGES: * Added ->token_float * Optionally parse 0o... ad octal integers BUGFIXES: * Match strings non-greedily * Correct exception printing when line indent includes tabs (thanks to Khisanth/#perl) 0.03 CHANGES: * Expanded documentation, more examples BUGFIXES: * Regexp quoting fix for perl >= 5.13.6 * Declare dependency on File::Slurp 0.02 CHANGES: * ->expect now returns the consumed string * ->token_int recognises negative integers * ->token_* raises a failure at end-of-scope, rather than returning undef BUGFIXES: * 'use overload fallback' to keep Test::More 0.96 happy 0.01 First version, released on an unsuspecting world.