blob: 693d77fa0a347058cb9503caf58868c46a26df32 [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 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