B::Hooks::Parser - Interface to perl's parser variables
version 0.21
This module provides an API for parts of the perl parser. It can be used to modify code while it's being parsed.
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.
set_linestr
teardown
teardown($id)
Disables magic registered using setup.
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.
$string
Note that perl won't notice any changes in the line string after the position returned by get_linestr_offset.
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_linestr
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.
undef
clear_lex_stuff()
Discard the string of additional stuff resulting from recent lexing that is being held onto by the lexer.
The following functions work just like their equivalent in the Perl API, except that they can't handle embedded NUL bytes in strings.
NUL
hook_op_check_id hook_parser_setup (void)
Note: may be implemented as a macro.
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)
Bugs may be submitted through the RT bug tracker (or bug-B-Hooks-Parser@rt.cpan.org).
Florian Ragwitz <rafl@debian.org>
Karen Etheridge <ether@cpan.org>
Zefram <zefram@fysh.org>
Vincent Pit <perl@profvince.com>
Alexandr Ciornii <alexchorny@gmail.com>
Karl Williamson <khw@cpan.org>
Liu Kang-min <gugod@gugod.org>
This software is copyright (c) 2008 by Florian Ragwitz.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install B::Hooks::Parser, copy and paste the appropriate command in to your terminal.
cpanm
cpanm B::Hooks::Parser
CPAN shell
perl -MCPAN -e shell install B::Hooks::Parser
For more information on module installation, please visit the detailed CPAN module installation guide.