#ifndef _ASSEMBLER_ASSEMBLER_H_ #define _ASSEMBLER_ASSEMBLER_H_ #include #include struct assembler_scope_type; struct assembler_scope { enum ivy_assembler_scope_type s_type; struct assembler_scope_type *s_ops; }; struct assembler_scope_type { size_t s_scope_size; enum ivy_status(*s_init_scope)(struct ivy_assembler *, struct assembler_scope *); enum ivy_status(*s_finish_scope)(struct ivy_assembler *, struct assembler_scope *); enum ivy_status(*s_put_string)(struct ivy_assembler *, struct assembler_scope *, long, const char *); enum ivy_status(*s_put_ident)(struct ivy_assembler *, struct assembler_scope *, long, const char *); enum ivy_status(*s_put_atom)(struct ivy_assembler *, struct assembler_scope *, long, const char *); enum ivy_status(*s_put_selector)(struct ivy_assembler *, struct assembler_scope *, long, const struct ivy_selector *); enum ivy_status(*s_put_mvar)(struct ivy_assembler *, struct assembler_scope *, long, const char *); enum ivy_status(*s_put_instr)(struct ivy_assembler *, struct assembler_scope *, const struct ivy_instr *); }; #endif