53 lines
1.4 KiB
C
53 lines
1.4 KiB
C
/* run.c
|
|
*
|
|
* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
|
* 2000, 2001, 2004, 2005, 2006, by Larry Wall and others
|
|
*
|
|
* You may distribute under the terms of either the GNU General Public
|
|
* License or the Artistic License, as specified in the README file.
|
|
*
|
|
*/
|
|
|
|
/* This file contains the main Perl opcode execution loop. It just
|
|
* calls the pp_foo() function associated with each op, and expects that
|
|
* function to return a pointer to the next op to be executed, or null if
|
|
* it's the end of the sub or program or whatever.
|
|
*
|
|
* There is a similar loop in dump.c, Perl_runops_debug(), which does
|
|
* the same, but also checks for various debug flags each time round the
|
|
* loop.
|
|
*
|
|
* Why this function requires a file all of its own is anybody's guess.
|
|
* DAPM.
|
|
*/
|
|
|
|
#include "EXTERN.h"
|
|
#define PERL_IN_RUN_C
|
|
#include "perl.h"
|
|
|
|
/*
|
|
* 'Away now, Shadowfax! Run, greatheart, run as you have never run before!
|
|
* Now we are come to the lands where you were foaled, and every stone you
|
|
* know. Run now! Hope is in speed!' --Gandalf
|
|
*
|
|
* [p.600 of _The Lord of the Rings_, III/xi: "The Palantír"]
|
|
*/
|
|
|
|
int
|
|
Perl_runops_standard(pTHX)
|
|
{
|
|
OP *op = PL_op;
|
|
PERL_DTRACE_PROBE_OP(op);
|
|
while ((PL_op = op = op->op_ppaddr(aTHX))) {
|
|
PERL_DTRACE_PROBE_OP(op);
|
|
}
|
|
PERL_ASYNC_CHECK();
|
|
|
|
TAINT_NOT;
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* ex: set ts=8 sts=4 sw=4 et:
|
|
*/
|