1N/A * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 1N/A * 2000, 2001, 2002, 2003, 2004, by Larry Wall and others 1N/A * You may distribute under the terms of either the GNU General Public 1N/A * License or the Artistic License, as specified in the README file. 1N/A * Control ops (cops) are one of the three ops OP_NEXTSTATE, OP_DBSTATE, 1N/A * and OP_SETSTATE that (loosely speaking) are separate statements. 1N/A * They hold information important for lexical state and error reporting. 1N/A * At run time, PL_curcop is set to point to the most recently executed cop, 1N/A * and thus can be used to determine our current state. 1N/A char *
cop_file;
/* file name the following line # is from */ 1N/A /* cop_stash is not refcounted */ 1N/A#
endif /* USE_ITHREADS */ 1N/A/* OutCopFILE() is CopFILE for output (caller, die, warn, etc.) */ 1N/A * Here we have some enormously heavy (or at least ponderous) wizardry. 1N/A/* subroutine context */ 1N/A#
endif /* USE_5005THREADS */ 1N/A/* base for the next two macros. Don't use directly. 1N/A * Note that the refcnt of the cv is incremented twice; The CX one is 1N/A * decremented by LEAVESUB, the other by LEAVE. */ 1N/A/* variant for use by OP_DBSTATE, where op_private holds hint bits */ 1N/A#
endif /* USE_5005THREADS */ 1N/A/* junk in @_ spells trouble when cloning CVs and in pp_caller(), so don't 1N/A * leave any (a fast av_clear(ary), basically) */ 1N/A /* abandon @_ if it got reified */ \
1N/A/* context common to subroutines, evals and loops */ 1N/A/* Exit a block (RETURN and LAST). */ 1N/A/* Continue a block elsewhere (NEXT and REDO). */ 1N/A/* substitution context */ 1N/A/* private flags for CXt_EVAL */ 1N/A#
define CXp_REAL 0x00000100 /* truly eval'', not a lookalike */ 1N/A/* private flags for CXt_LOOP */ 1N/A has pad offset; if not set, 1N/A iterdata holds GV* */ 1N/A=head1 "Gimme" Values 1N/A=for apidoc AmU||G_SCALAR 1N/AUsed to indicate scalar context. See C<GIMME_V>, C<GIMME>, and 1N/A=for apidoc AmU||G_ARRAY 1N/AUsed to indicate list context. See C<GIMME_V>, C<GIMME> and 1N/A=for apidoc AmU||G_VOID 1N/AUsed to indicate void context. See C<GIMME_V> and L<perlcall>. 1N/A=for apidoc AmU||G_DISCARD 1N/AIndicates that arguments returned from a callback should be discarded. See 1N/A=for apidoc AmU||G_EVAL 1N/AUsed to force a Perl C<eval> wrapper around a callback. See 1N/A=for apidoc AmU||G_NOARGS 1N/AIndicates that no arguments are being sent to a callback. See 1N/A#
define G_VOID 128 /* skip this bit when adding flags below */ 1N/A/* extra flags for Perl_call_* routines */ 1N/A#
define G_EVAL 4 /* Assume eval {} around subroutine call. */ 1N/A#
define G_KEEPERR 16 /* Append errors to $@, don't overwrite it */ 1N/A/* flag bits for PL_in_eval */ 1N/A/* Support for switching (stack and block) contexts. 1N/A * This ensures magic doesn't invalidate local stack and cx pointers. 1N/A * currently used only with DEBUGGING, 1N/A * but not #ifdef-ed for bincompat */ 1N/A/* POPSTACK works with PL_stack_sp, so it may need to be bracketed by 1N/A /* don't free prev here, free them all at the END{} */ \