diff options
Diffstat (limited to 'tools/build/src/engine/frames.h')
-rw-r--r-- | tools/build/src/engine/frames.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tools/build/src/engine/frames.h b/tools/build/src/engine/frames.h new file mode 100644 index 000000000..2e99f1737 --- /dev/null +++ b/tools/build/src/engine/frames.h @@ -0,0 +1,42 @@ +/* + * 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 |