summaryrefslogtreecommitdiff
path: root/jam-files/engine/frames.h
diff options
context:
space:
mode:
authorKenneth Heafield <github@kheafield.com>2012-05-12 14:01:52 -0400
committerKenneth Heafield <github@kheafield.com>2012-05-12 14:01:52 -0400
commit3faecf9a00512dcbc8712c4bca9adae72fb64410 (patch)
tree9761b50d12f81a675fb7cbc663ceebad15079f78 /jam-files/engine/frames.h
parentc806a8fff63043f63773874986301f2822a2b552 (diff)
Give in and copy bjam into cdec source code
Diffstat (limited to 'jam-files/engine/frames.h')
-rw-r--r--jam-files/engine/frames.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/jam-files/engine/frames.h b/jam-files/engine/frames.h
new file mode 100644
index 00000000..693d77fa
--- /dev/null
+++ b/jam-files/engine/frames.h
@@ -0,0 +1,37 @@
+/*
+ * 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