Ruby  2.1.10p492(2016-04-01revision54464)
iseq.h
Go to the documentation of this file.
1 /**********************************************************************
2 
3  iseq.h -
4 
5  $Author: ko1 $
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 
16 
17 /* compile.c */
21  VALUE exception, VALUE body);
22 
23 /* iseq.c */
24 void rb_iseq_add_mark_object(rb_iseq_t *iseq, VALUE obj);
25 VALUE rb_iseq_load(VALUE data, VALUE parent, VALUE opt);
26 VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc);
28 unsigned int rb_iseq_line_no(const rb_iseq_t *iseq, size_t pos);
29 
30 int rb_iseq_line_trace_each(VALUE iseqval, int (*func)(int line, rb_event_flag_t *events_ptr, void *d), void *data);
33 
34 /* proc.c */
36 rb_iseq_t *rb_proc_get_iseq(VALUE proc, int *is_proc);
37 
48 };
49 
51  unsigned int position;
52  unsigned int line_no;
53 };
54 
56  enum catch_type {
63  } type;
65  unsigned long start;
66  unsigned long end;
67  unsigned long cont;
68  unsigned long sp;
69 };
70 
71 #define INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE (512)
72 
75  unsigned long pos;
76  unsigned long size;
77  char *buff;
78 };
79 
81  /* GC is needed */
82  const VALUE err_info;
84  const VALUE catch_table_ary; /* Array */
85 
86  /* GC is not needed */
94  int loopval_popped; /* used by NODE_BREAK */
98  int last_line;
100  int label_no;
103 #if SUPPORT_JOKE
104  st_table *labels_table;
105 #endif
106 };
107 
108 /* defined? */
109 
128 };
129 
131 
132 #define DEFAULT_SPECIAL_VAR_COUNT 2
133 
135 
136 #endif /* RUBY_COMPILE_H */
catch_type
Definition: iseq.h:56
unsigned long size
Definition: iseq.h:76
Definition: st.h:69
unsigned long end
Definition: iseq.h:66
unsigned int rb_iseq_line_no(const rb_iseq_t *iseq, size_t pos)
Definition: iseq.c:1135
Definition: iseq.h:59
struct iseq_compile_data_storage * storage_head
Definition: iseq.h:96
struct st_table * ruby_insn_make_insn_table(void)
SSL_METHOD *(* func)(void)
Definition: ossl_ssl.c:113
struct iseq_label_data * start_label
Definition: iseq.h:87
struct iseq_compile_data_storage * next
Definition: iseq.h:74
struct iseq_compile_data_ensure_node_stack * ensure_node_stack
Definition: iseq.h:93
VALUE current_block
Definition: iseq.h:90
const rb_compile_option_t * option
Definition: iseq.h:102
const VALUE catch_table_ary
Definition: iseq.h:84
Definition: node.h:239
enum iseq_catch_table_entry::catch_type type
unsigned long pos
Definition: iseq.h:75
VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc)
Definition: iseq.c:1954
int specialized_instruction
Definition: iseq.h:42
Definition: iseq.h:57
VALUE mark_ary
Definition: iseq.h:83
int instructions_unification
Definition: iseq.h:44
VALUE rb_iseq_defined_string(enum defined_type type)
Definition: iseq.c:2040
int last_line
Definition: iseq.h:98
const VALUE err_info
Definition: iseq.h:82
VALUE rb_iseq_load(VALUE data, VALUE parent, VALUE opt)
Definition: iseq.c:583
unsigned long start
Definition: iseq.h:65
Definition: iseq.h:58
Definition: iseq.h:62
defined_type
Definition: iseq.h:110
#define RUBY_SYMBOL_EXPORT_END
Definition: missing.h:39
struct iseq_label_data * redo_label
Definition: iseq.h:89
rb_iseq_t * rb_proc_get_iseq(VALUE proc, int *is_proc)
Definition: proc.c:894
int type
Definition: tcltklib.c:112
unsigned long VALUE
Definition: ruby.h:88
Definition: iseq.h:55
#define RUBY_SYMBOL_EXPORT_BEGIN
Definition: missing.h:38
Definition: iseq.h:60
RUBY_SYMBOL_EXPORT_BEGIN VALUE rb_iseq_compile_node(VALUE self, NODE *node)
Definition: compile.c:459
Definition: iseq.h:61
unsigned long sp
Definition: iseq.h:68
#define INT2FIX(i)
Definition: ruby.h:231
unsigned int position
Definition: iseq.h:51
VALUE ensure_node
Definition: iseq.h:91
void rb_iseq_add_mark_object(rb_iseq_t *iseq, VALUE obj)
Definition: iseq.c:245
VALUE rb_iseq_line_trace_specify(VALUE iseqval, VALUE pos, VALUE set)
Definition: iseq.c:2234
unsigned long rb_event_flag_t
Definition: ruby.h:1748
VALUE rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE locals, VALUE args, VALUE exception, VALUE body)
Definition: compile.c:5896
int cached_const
Definition: iseq.h:95
VALUE for_iseq
Definition: iseq.h:92
struct iseq_compile_data_storage * storage_current
Definition: iseq.h:97
int last_coverable_line
Definition: iseq.h:99
rb_iseq_t * rb_method_get_iseq(VALUE body)
Definition: proc.c:2147
int rb_iseq_translate_threaded_code(rb_iseq_t *iseq)
Definition: compile.c:561
VALUE rb_iseq_line_trace_all(VALUE iseqval)
Definition: iseq.c:2187
unsigned long cont
Definition: iseq.h:67
struct iseq_label_data * end_label
Definition: iseq.h:88
int loopval_popped
Definition: iseq.h:94
VALUE iseq
Definition: iseq.h:64
int rb_iseq_line_trace_each(VALUE iseqval, int(*func)(int line, rb_event_flag_t *events_ptr, void *d), void *data)
Definition: iseq.c:2140
Definition: iseq.h:50
int node_level
Definition: iseq.h:101
unsigned int line_no
Definition: iseq.h:52