blob: 2e99f17370e90d6438398cb4f4524e2326216789 [file] [log] [blame]
/*
* Copyright 2001-2004 David Abrahams.
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef FRAMES_DWA20011021_H
#define FRAMES_DWA20011021_H
#include "lists.h"
#include "modules.h"
#include "object.h"
typedef struct frame FRAME;
struct frame
{
FRAME * prev;
FRAME * prev_user; /* The nearest enclosing frame for which
module->user_module is true. */
LOL args[ 1 ];
module_t * module;
OBJECT * file;
int line;
char const * rulename;
};
/* When a call into Python is in progress, this variable points to the bjam
* frame that was current at the moment of the call. When the call completes,
* the variable is not defined. Furthermore, if Jam calls Python which calls Jam
* and so on, this variable only keeps the most recent Jam frame.
*/
extern FRAME * frame_before_python_call;
void frame_init( FRAME * );
void frame_free( FRAME * );
#endif