Pegex::Regex (3)
Leading comments
Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) Standard preamble: ========================================================================
NAME
Pegex::Regex - Use Pegex Like a RegexSYNOPSIS
{ # Turn on Pegex regular expressions in lexical scope. use Pegex::Regex; 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 decscent 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:
use Pegex::Regex; $text =~ qr{... Pegex grammar text ...}; $data = \%/;
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
- *
- Pegex
- *
- Regexp::Grammars
AUTHOR
Ingy döt Net <ingy@cpan.org>COPYRIGHT AND LICENSE
Copyright 2010-2017. Ingy döt Net.This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.