NAME
Pegex::Regex - Use Pegex Like a Regex
SYNOPSIS
{
# Turn on Pegex regular expressions in lexical scope.
my
$grammar
=
qr{$grammar_text}
x;
$text
=~
$grammar
;
my
$result
= \%/;
# Turn off Pegex in this scope.
no
Pegex::Regex;
}
DESCRIPTION
This is a trivial sugar module that lets you use Pegex parser grammars like regular expressions, if you're into that kind of thing.
This is basically a clone of Damian Conway's Regexp::Grammars module API. You put a grammar into a qr{...}x
and apply it the input string you want to parse. If the parse is successful, you get a data structure of the content in %/
.
IMHO, building a recursive descent parser entirely inside of a regular expression, is not the clearest way to code. But, of course, TMTOWTDI. :)
NOTE
This module is just for experimental fun. See Pegex for the right way to use the Pegex parsing framework.
TMTOWTDI
Here's a Pegex::Regex code snippet:
And the equivalent Pegex code:
use
Pegex;
my
$data
= pegex(
'... Pegex grammar text ...'
)->parse(
$text
);
WARNING
This gateway drug, er, module, technically should not even work.
It turns your "grammar inside a regexp" into a Pegex::Grammar using qr{} overloading, and then turns your regexp itself into a shim that calls the parse method for you. This is highly magical and technically makes a reentrant call to the regex engine, which is not supported yet. Use at your own risk.
Better yet, do yourself a favor and learn how to use the Pegex toolset without this ::Regex sugar. :-)
SEE ALSO
AUTHOR
Ingy döt Net <ingy@cpan.org>
COPYRIGHT AND LICENSE
Copyright 2010-2020. Ingy döt Net.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.