Karen Etheridge > B-Hooks-Parser-0.12 > B::Hooks::Parser

Download:
B-Hooks-Parser-0.12.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  4
Open  0
View/Report Bugs
Module Version: 0.12   Source  

NAME ^

B::Hooks::Parser - Interface to perl's parser variables

DESCRIPTION ^

This module provides an API for parts of the perl parser. It can be used to modify code while it's being parsed.

Perl API ^

setup()

Does some initialization work. This must be called before any other functions of this module if you intend to use set_linestr. Returns an id that can be used to disable the magic using teardown.

teardown($id)

Disables magic registed using setup.

get_linestr()

Returns the line the parser is currently working on, or undef if perl isn't parsing anything right now.

get_linestr_offset()

Returns the position within the current line to which perl has already parsed the input, or -1 if nothing is being parsed currently.

set_linestr($string)

Sets the line the perl parser is currently working on to $string.

Note that perl won't notice any changes in the line string after the position returned by get_linestr_offset.

Throws an exception when nothing is being compiled.

inject($string)

Convenience function to insert a piece of perl code into the current line string (as returned by get_linestr) at the current offset (as returned by get_linestr_offset).

get_lex_stuff()

Returns the string of additional stuff resulting from recent lexing that is being held onto by the lexer. For example, the content of a quoted string goes here. Returns undef if there is no such stuff.

clear_lex_stuff()

Discard the string of additional stuff resulting from recent lexing that is being held onto by the lexer.

C API ^

The following functions work just like their equivalent in the Perl API, except that they can't handle embedded NUL bytes in strings.

hook_op_check_id hook_parser_setup (void)

void hook_parser_teardown (hook_op_check_id id)

const char *hook_parser_get_linestr (pTHX)

IV hook_parser_get_linestr_offset (pTHX)

void hook_parser_set_linestr (pTHX_ const char *new_value)

char *hook_parser_get_lex_stuff (pTHX)

void hook_parser_clear_lex_stuff (pTHX)

AUTHOR ^

Florian Ragwitz <rafl@debian.org>

COPYRIGHT AND LICENSE ^

Copyright (c) 2008 Florian Ragwitz

This module is free software.

You may distribute this code under the same terms as Perl itself.

syntax highlighting: