B::Hooks::Parser - Interface to perl's parser variables
Contents
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_idhook_parser_setup(void)"
Note: may be implemented as a macro.
"voidhook_parser_teardown(hook_op_check_idid)""constchar*hook_parser_get_linestr(pTHX)""IVhook_parser_get_linestr_offset(pTHX)""voidhook_parser_set_linestr(pTHX_constchar*new_value)""char*hook_parser_get_lex_stuff(pTHX)""voidhook_parser_clear_lex_stuff(pTHX)"Contributors
• 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>
Copyright And Licence
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.
perl v5.40.0 2024-10-20 B::Hooks::Parser(3pm)
Description
This module provides an API for parts of the perl parser. It can be used to modify code while it's being
parsed.
Name
B::Hooks::Parser - Interface to perl's parser variables
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 registered 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.
Support
Bugs may be submitted through the RT bug tracker <https://rt.cpan.org/Public/Dist/Display.html?Name=B-
Hooks-Parser> (or bug-B-Hooks-Parser@rt.cpan.org <mailto:bug-B-Hooks-Parser@rt.cpan.org>).
Version
version 0.21
