X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;ds=sidebyside;f=Plugin.pod;h=7fda6f78d2fa14303d51db1ed580d964d7ecde9f;hb=bc365867d2883a69972ef82adf4b19d0680e43aa;hp=76e8b3a7971423c35c7c1f010701aa4a2b73b21a;hpb=2271b6d1ae428e049a8789a04cde87a812b0830f;p=perl%2Fmodules%2Fre-engine-Plugin.git
diff --git a/Plugin.pod b/Plugin.pod
index 76e8b3a..7fda6f7 100644
--- a/Plugin.pod
+++ b/Plugin.pod
@@ -19,12 +19,12 @@ C or runtime for C patterns, or something inbetween
depending on variable interpolation etc.
When this module is loaded into a scope it inserts a hook into
-C<$^H{regcomp}> (as described in L) to have each regexp
-constructed in its lexical scope handled by this engine, but it
-differs from other engines in that it also inserts other hooks into
-C<%^H> in the same scope that point to user-defined subroutines to use
-during compilation, execution etc, these are described in
-L below.
+C<$^H{regcomp}> (as described in L and L) to
+have each regexp constructed in its lexical scope handled by this
+engine, but it differs from other engines in that it also inserts
+other hooks into C<%^H> in the same scope that point to user-defined
+subroutines to use during compilation, execution etc, these are
+described in L below.
The callbacks (e.g. L) then get called with a
L object as their first argument. This object
@@ -51,7 +51,7 @@ caller's scope use use the following snippet:
sub import
{
- # Populates the caller's %^H with our callbacks
+ # Sets the caller's $^H{regcomp} his %^H with our callbacks
re::engine::Plugin->import(
comp => \&comp,
exec => \&exec,
@@ -122,6 +122,9 @@ available as the second argument (C<$str>) and through the L
method. The routine should return a true value if the match was
successful, and a false one if it wasn't.
+This callback can also be specified on an individual basis with the
+L method.
+
=head1 METHODS
=head2 str
@@ -182,6 +185,29 @@ called at all.
The length specified will be used as a a byte length (using
L), not a character length.
+=head2 callbacks
+
+ # A dumb regexp engine that just tests string equality
+ use re::engine::Plugin comp => sub {
+ my ($re) = @_;
+
+ my $pat = $re->pattern;
+
+ $re->callbacks(
+ exec => sub {
+ my ($re, $str) = @_;
+ return $pat eq $str;
+ },
+ );
+ };
+
+Takes a list of key-value pairs of names and subroutines, and replace the
+callback currently attached to the regular expression for the type given as
+the key by the code reference passed as the corresponding value.
+
+The only valid key is currently C. See L for more details about
+this callback.
+
=head2 num_captures
$re->num_captures(
@@ -391,14 +417,18 @@ Please report any bugs that aren't already listed at
L to
L
-=head1 AUTHOR
+=head1 AUTHORS
-Evar ArnfjErE Bjarmason
+Evar ArnfjErE Bjarmason C<< >>
+
+Vincent Pit C<< >>
=head1 LICENSE
Copyright 2007-2008 Evar ArnfjErE Bjarmason.
+Copyright 2009 Vincent Pit.
+
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.