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.
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".
Disables magic registered using "setup".
Returns the line the parser is currently working on, or undef if perl isn't
parsing anything right now.
Returns the position within the current line to which perl has already parsed
the input, or -1 if nothing is being parsed currently.
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.
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").
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.
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.
Note: may be implemented as a macro.
Bugs may be submitted through the RT bug tracker
<
https://rt.cpan.org/Public/Dist/Display.html?Name=B-Hooks-Parser> (or
[email protected] <mailto:
[email protected]>).
Florian Ragwitz <
[email protected]>
- •
- Karen Etheridge <[email protected]>
- •
- Zefram <[email protected]>
- •
- Vincent Pit <[email protected]>
- •
- Alexandr Ciornii <[email protected]>
- •
- Karl Williamson <[email protected]>
- •
- Liu Kang-min <[email protected]>
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.