NAME
   Keyword::API

VERSION
   version 0.0004

SYNOPSIS
       use Keyword::API;

       sub import {
           my ($class, %params) = @_;

           my $name = %params && $params{-as} ? $params{-as} : "method";

           install_keyword(__PACKAGE__, $name);
       }

       sub unimport { uninstall_keyword() }

       sub parser {
           lex_read_space(0);
           my $sub_name = lex_unstuff_to_ws();
           my $sig = lex_unstuff_to('{');
           my ($roll) = $sig =~ /\((.+)\)\s*{/;
           lex_stuff("sub $sub_name {my (\$self, $roll) = \@_;");
       };

DESCRIPTION
   This module provides a pure perl interface for the keywords API added to
   the perl core in 5.12.

NAME
   Keyword::API - Perl interface to the keyword API

EXPERIMENTAL
   This module is likely to change in the near future. Patches and feedback
   most welcome.

 EXPORT
       install_keyword
       uninstall_keyword
       lex_read_space
       lex_read
       lex_read_to_ws
       lex_stuff
       lex_unstuff
       lex_unstuff_to
       lex_unstuff_to_ws

FUNCTIONS
 install_keyword
   pass your package name and provide the name of your keyword e.g 'method'

 uninstall_keyword
   remove the keyword hook, no arguments required.

 lex_read_space
       lex_read_space(0);

   reads white space and comments in the text currently being lexed.

 lex_read
       my $str = lex_read($n);

   Consumes $n bytes of text from the lexer buffer.

 lex_read_to_ws
       my $toke = lex_read_token();

   Consumes any text in the lexer until white space is reached.

 lex_stuff
       lex_stuff("sub foo { ...");

   Injects a string into the lexer buffer.

 lex_unstuff
       my $discarded_text = lex_unstuff($n);

   Discard $n bytes from the lexers buffer

 lex_unstuff_to
       my $discarded_text = lex_unstuff_to("{");

   Discard everything in the buffer until the character is met.

 lex_unstuff_to_ws
       my $discarded_text = lext_unstuff_token();

   Discard everything in the buffer until white space is met

SEE ALSO
   perlapi Devel::Declare Filter::Simple Syntax::Feature::Method

AUTHOR
   Robin Edwards <[email protected]>

COPYRIGHT AND LICENSE
   This software is copyright (c) 2011 by Robin Edwards.

   This is free software; you can redistribute it and/or modify it under
   the same terms as the Perl 5 programming language system itself.