Ruby  1.9.3p484(2013-11-22revision43786)
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 */
127