File: frames.h

package info (click to toggle)
boost-jam 3.1.16-1
  • links: PTS
  • area: main
  • in suites: lenny, squeeze
  • size: 5,012 kB
  • ctags: 6,357
  • sloc: ansic: 40,068; sh: 9,084; cpp: 894; yacc: 456; asm: 353; makefile: 156
file content (39 lines) | stat: -rw-r--r-- 1,059 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*  
 *  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