logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Author

       Florian Ragwitz <rafl@debian.org>

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>

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

See Also