Revision history for Parser-MGC
0.23 2024-11-25
[CHANGES]
*
Formatting, style, and typo fixes in Tutorial.pod
(thanks Étienne Mollier) (RT157369, RT157370)
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.