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 <robin.ge@gmail.com>

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.