B-Hooks-Parser
view release on metacpan or search on metacpan
IV
hook_parser_get_linestr_offset ()
C_ARGS:
aTHX
void
hook_parser_set_linestr (SV *new_value)
PREINIT:
char *new_chars;
STRLEN new_len;
CODE:
if (NOT_PARSING) {
croak ("trying to alter PL_linestr at runtime");
}
new_chars = SvPV(new_value, new_len);
if (SvLEN (PL_linestr) < new_len+1) {
croak ("forced to realloc PL_linestr for line %s,"
" bailing out before we crash harder", SvPVX (PL_linestr));
}
Copy (new_chars, SvPVX (PL_linestr), new_len + 1, char);
SvCUR_set (PL_linestr, new_len);
PL_bufend = SvPVX(PL_linestr) + new_len;
SV *
hook_parser_get_lex_stuff ()
CODE:
if (NOT_PARSING || !PL_lex_stuff) {
RETVAL = &PL_sv_undef;
}
RETVAL = newSVsv (PL_lex_stuff);
OUTPUT:
RETVAL
void
hook_parser_clear_lex_stuff ()
C_ARGS:
aTHX
MODULE = B::Hooks::Parser PACKAGE = B::Hooks::Toke PREFIX = hook_toke_
int
hook_toke_move_past_token (offset)
int offset
PREINIT:
char *base_s, *s;
CODE:
base_s = SvPVX (PL_linestr) + offset;
s = hook_toke_move_past_token (aTHX_ base_s);
RETVAL = s - base_s;
OUTPUT:
RETVAL
void
hook_toke_scan_word (offset, handle_package)
int offset
int handle_package
PREINIT:
char tmpbuf[sizeof (PL_tokenbuf)];
STRLEN retlen;
PPCODE:
(void)hook_toke_scan_word (aTHX_ offset, handle_package, tmpbuf, sizeof (PL_tokenbuf), &retlen);
EXTEND (SP, 2);
mPUSHp (tmpbuf, retlen);
mPUSHi (retlen);
int
hook_toke_skipspace (offset)
int offset
PREINIT:
char *base_s, *s;
CODE:
base_s = SvPVX (PL_linestr) + offset;
s = hook_toke_skipspace (aTHX_ base_s);
RETVAL = s - base_s;
OUTPUT:
RETVAL
( run in 0.468 second using v1.01-cache-2.11-cpan-71847e10f99 )