00001 /********************************************************************** 00002 00003 env.h - 00004 00005 $Author: matz $ 00006 $Date: 2003/10/20 08:33:48 $ 00007 created at: Mon Jul 11 11:53:03 JST 1994 00008 00009 Copyright (C) 1993-2003 Yukihiro Matsumoto 00010 00011 **********************************************************************/ 00012 00013 #ifndef ENV_H 00014 #define ENV_H 00015 00016 extern struct FRAME { 00017 VALUE self; 00018 int argc; 00019 VALUE *argv; 00020 ID last_func; 00021 ID orig_func; 00022 VALUE last_class; 00023 struct FRAME *prev; 00024 struct FRAME *tmp; 00025 struct RNode *node; 00026 int iter; 00027 int flags; 00028 unsigned long uniq; 00029 } *ruby_frame; 00030 00031 void rb_gc_mark_frame (struct FRAME *); 00032 00033 #define FRAME_ALLOCA 0 00034 #define FRAME_MALLOC 1 00035 00036 extern struct SCOPE { 00037 struct RBasic super; 00038 ID *local_tbl; 00039 VALUE *local_vars; 00040 int flags; 00041 } *ruby_scope; 00042 00043 #define SCOPE_ALLOCA 0 00044 #define SCOPE_MALLOC 1 00045 #define SCOPE_NOSTACK 2 00046 #define SCOPE_DONT_RECYCLE 4 00047 00048 extern int ruby_in_eval; 00049 00050 extern VALUE ruby_class; 00051 00052 struct RVarmap { 00053 struct RBasic super; 00054 ID id; 00055 VALUE val; 00056 struct RVarmap *next; 00057 }; 00058 extern struct RVarmap *ruby_dyna_vars; 00059 00060 #endif /* ENV_H */ 00061
1.3.5