| /* | |
| * 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) | |
| */ | |
| 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 * ); | |