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