Ruby  1.9.3p448(2013-06-27revision41675)
iseq.h
Go to the documentation of this file.
1 /**********************************************************************
2 
3  iseq.h -
4 
5  $Author: usa $
6  created at: 04/01/01 23:36:57 JST
7 
8  Copyright (C) 2004-2008 Koichi Sasada
9 
10 **********************************************************************/
11 
12 #ifndef RUBY_COMPILE_H
13 #define RUBY_COMPILE_H
14 
15 #if defined __GNUC__ && __GNUC__ >= 4
16 #pragma GCC visibility push(default)
17 #endif
18 
19 /* compile.c */
23  VALUE exception, VALUE body);
24 
25 /* iseq.c */
26 VALUE rb_iseq_load(VALUE data, VALUE parent, VALUE opt);
27 VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc);
29 
30 /* proc.c */
32 rb_iseq_t *rb_proc_get_iseq(VALUE proc, int *is_proc);
33 
44 };
45 
47  unsigned short position;
48  unsigned short line_no;
49  unsigned short sp;
50 };
51 
53  enum catch_type {
60  } type;
62  unsigned long start;
63  unsigned long end;
64  unsigned long cont;
65  unsigned long sp;
66 };
67 
68 #define INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE (512)
69 
72  unsigned long pos;
73  unsigned long size;
74  char *buff;
75 };
76 
78  /* GC is needed */
81  VALUE catch_table_ary; /* Array */
82 
83  /* GC is not needed */
91  int loopval_popped; /* used by NODE_BREAK */
95  int last_line;
97  int label_no;
100 #if SUPPORT_JOKE
101  st_table *labels_table;
102 #endif
103 };
104 
105 /* defined? */
106 
118 };
119 
120 #define DEFAULT_SPECIAL_VAR_COUNT 2
121 
122 #if defined __GNUC__ && __GNUC__ >= 4
123 #pragma GCC visibility pop
124 #endif
125 
126 #endif /* RUBY_COMPILE_H */
catch_type
Definition: iseq.h:53
unsigned long size
Definition: iseq.h:73
Definition: st.h:77
unsigned long end
Definition: iseq.h:63
Definition: iseq.h:56
struct iseq_compile_data_storage * storage_head
Definition: iseq.h:93
VALUE catch_table_ary
Definition: iseq.h:81
struct st_table * ruby_insn_make_insn_table(void)
struct iseq_label_data * start_label
Definition: iseq.h:84
struct iseq_compile_data_storage * next
Definition: iseq.h:71
unsigned short sp
Definition: iseq.h:49
struct iseq_compile_data_ensure_node_stack * ensure_node_stack
Definition: iseq.h:90
VALUE current_block
Definition: iseq.h:87
const rb_compile_option_t * option
Definition: iseq.h:99
Definition: ripper.y:236
enum iseq_catch_table_entry::catch_type type
unsigned long pos
Definition: iseq.h:72
int args
Definition: win32ole.c:777
VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc)
Definition: iseq.c:1380
int specialized_instruction
Definition: iseq.h:38
Definition: iseq.h:54
VALUE mark_ary
Definition: iseq.h:80
int instructions_unification
Definition: iseq.h:40
int last_line
Definition: iseq.h:95
VALUE rb_iseq_compile_node(VALUE self, NODE *node)
Definition: compile.c:462
VALUE rb_iseq_load(VALUE data, VALUE parent, VALUE opt)
Definition: iseq.c:536
unsigned long start
Definition: iseq.h:62
Definition: iseq.h:55
Definition: iseq.h:59
defined_type
Definition: iseq.h:107
struct iseq_label_data * redo_label
Definition: iseq.h:86
rb_iseq_t * rb_proc_get_iseq(VALUE proc, int *is_proc)
Definition: proc.c:657
unsigned long VALUE
Definition: ruby.h:88
Definition: iseq.h:52
Definition: iseq.h:57
VALUE err_info
Definition: iseq.h:79
Definition: iseq.h:58
unsigned long sp
Definition: iseq.h:65
Definition: iseq.h:46
VALUE ensure_node
Definition: iseq.h:88
VALUE rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE locals, VALUE args, VALUE exception, VALUE body)
Definition: compile.c:5452
int cached_const
Definition: iseq.h:92
VALUE for_iseq
Definition: iseq.h:89
struct iseq_compile_data_storage * storage_current
Definition: iseq.h:94
int last_coverable_line
Definition: iseq.h:96
unsigned short line_no
Definition: iseq.h:48
rb_iseq_t * rb_method_get_iseq(VALUE body)
Definition: proc.c:1704
int rb_iseq_translate_threaded_code(rb_iseq_t *iseq)
Definition: compile.c:555
unsigned long cont
Definition: iseq.h:64
struct iseq_label_data * end_label
Definition: iseq.h:85
int loopval_popped
Definition: iseq.h:91
VALUE iseq
Definition: iseq.h:61
int label_no
Definition: iseq.h:97
int node_level
Definition: iseq.h:98
unsigned short position
Definition: iseq.h:47