2 ** mruby/irep.h - mrb_irep structure
4 ** See Copyright Notice in mruby.h
11 #include <mruby/compile.h>
14 * Compiled mruby scripts.
29 /* Program data array struct */
30 typedef struct mrb_irep {
31 uint16_t nlocals; /* Number of local variables */
32 uint16_t nregs; /* Number of register variables */
38 struct mrb_irep **reps;
40 struct mrb_locals *lv;
42 struct mrb_irep_debug_info* debug_info;
44 uint16_t ilen, plen, slen, rlen;
48 #define MRB_ISEQ_NO_FREE 1
50 MRB_API mrb_irep *mrb_add_irep(mrb_state *mrb);
52 /* @param [const uint8_t*] irep code, expected as a literal */
53 MRB_API mrb_value mrb_load_irep(mrb_state*, const uint8_t*);
55 /* @param [const uint8_t*] irep code, expected as a literal */
56 MRB_API mrb_value mrb_load_irep_cxt(mrb_state*, const uint8_t*, mrbc_context*);
58 void mrb_irep_free(mrb_state*, struct mrb_irep*);
59 void mrb_irep_incref(mrb_state*, struct mrb_irep*);
60 void mrb_irep_decref(mrb_state*, struct mrb_irep*);
61 void mrb_irep_cutref(mrb_state*, struct mrb_irep*);
62 void mrb_irep_remove_lv(mrb_state *mrb, mrb_irep *irep);
64 struct mrb_insn_data {
71 struct mrb_insn_data mrb_decode_insn(mrb_code *pc);
75 #endif /* MRUBY_IREP_H */