2000-05-01 13:42:38 +04:00
|
|
|
/**********************************************************************
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
env.h -
|
|
|
|
|
|
|
|
$Author$
|
|
|
|
$Date$
|
|
|
|
created at: Mon Jul 11 11:53:03 JST 1994
|
|
|
|
|
2003-01-16 10:34:03 +03:00
|
|
|
Copyright (C) 1993-2003 Yukihiro Matsumoto
|
2000-05-01 13:42:38 +04:00
|
|
|
|
|
|
|
**********************************************************************/
|
|
|
|
|
1998-01-16 15:13:05 +03:00
|
|
|
#ifndef ENV_H
|
|
|
|
#define ENV_H
|
|
|
|
|
|
|
|
extern struct FRAME {
|
1999-01-20 07:59:39 +03:00
|
|
|
VALUE self;
|
1998-01-16 15:13:05 +03:00
|
|
|
int argc;
|
|
|
|
VALUE *argv;
|
|
|
|
ID last_func;
|
2002-08-12 11:39:12 +04:00
|
|
|
ID orig_func;
|
1998-01-16 15:19:22 +03:00
|
|
|
VALUE last_class;
|
1998-01-16 15:13:05 +03:00
|
|
|
struct FRAME *prev;
|
1999-08-13 09:45:20 +04:00
|
|
|
struct FRAME *tmp;
|
2002-08-15 15:49:40 +04:00
|
|
|
struct RNode *node;
|
1998-01-16 15:13:05 +03:00
|
|
|
int iter;
|
2000-08-15 13:04:32 +04:00
|
|
|
int flags;
|
2003-10-20 12:33:49 +04:00
|
|
|
unsigned long uniq;
|
1999-01-20 07:59:39 +03:00
|
|
|
} *ruby_frame;
|
1998-01-16 15:13:05 +03:00
|
|
|
|
1999-01-20 07:59:39 +03:00
|
|
|
void rb_gc_mark_frame _((struct FRAME *));
|
1998-01-16 15:19:22 +03:00
|
|
|
|
2000-08-15 13:04:32 +04:00
|
|
|
#define FRAME_ALLOCA 0
|
|
|
|
#define FRAME_MALLOC 1
|
|
|
|
|
1998-01-16 15:13:05 +03:00
|
|
|
extern struct SCOPE {
|
|
|
|
struct RBasic super;
|
|
|
|
ID *local_tbl;
|
|
|
|
VALUE *local_vars;
|
2001-02-02 14:38:20 +03:00
|
|
|
int flags;
|
1999-01-20 07:59:39 +03:00
|
|
|
} *ruby_scope;
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
#define SCOPE_ALLOCA 0
|
|
|
|
#define SCOPE_MALLOC 1
|
|
|
|
#define SCOPE_NOSTACK 2
|
2000-08-31 12:08:39 +04:00
|
|
|
#define SCOPE_DONT_RECYCLE 4
|
1998-01-16 15:13:05 +03:00
|
|
|
|
1999-08-13 09:45:20 +04:00
|
|
|
extern int ruby_in_eval;
|
1998-01-16 15:13:05 +03:00
|
|
|
|
1999-01-20 07:59:39 +03:00
|
|
|
extern VALUE ruby_class;
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
struct RVarmap {
|
|
|
|
struct RBasic super;
|
|
|
|
ID id;
|
|
|
|
VALUE val;
|
|
|
|
struct RVarmap *next;
|
|
|
|
};
|
1999-01-20 07:59:39 +03:00
|
|
|
extern struct RVarmap *ruby_dyna_vars;
|
1998-01-16 15:13:05 +03:00
|
|
|
|
|
|
|
#endif /* ENV_H */
|