#include <stdint.h>
#include <stdarg.h>
#include "xed/xed-interface.h"
typedef struct slist_s {
char* s;
struct slist_s* next;
} slist_t;
typedef enum {
OPND_INVALID,
OPND_REG,
OPND_IMM,
OPND_MEM,
OPND_DECORATOR,
OPND_FARPTR
} opnd_type_t;
typedef struct {
unsigned int len;
char* seg;
char* base;
char* index;
char* disp;
int64_t ndisp; char* scale;
unsigned int nscale; int minus;
char const* mem_size; uint32_t mem_bits; } memparse_rec_t;
typedef struct {
char* seg;
char* offset;
int64_t seg_value;
int64_t offset_value;
} farptr_rec_t;
typedef struct opnd_list_s {
char* s;
opnd_type_t type;
memparse_rec_t mem;
farptr_rec_t farptr;
slist_t* decorators;
int64_t imm;
xed_reg_enum_t reg;
struct opnd_list_s* next;
} opnd_list_t;
typedef struct {
char* input;
int valid;
int mode; char* iclass_str;
xed_iclass_enum_t iclass_e;
slist_t* prefixes; slist_t* operands; opnd_list_t* opnds;
xed_bool_t seen_repe;
xed_bool_t seen_repne;
xed_bool_t seen_lock;
xed_bool_t seen_cr;
xed_bool_t seen_dr;
xed_bool_t seen_far_ptr;
int deduced_vector_length;
} xed_enc_line_parsed_t;
void asp_set_verbosity(int v);
void asp_error_printf(const char* format, ...);
void asp_printf(const char* format, ...);
void asp_dbg_printf(const char* format, ...);
xed_enc_line_parsed_t* asp_get_xed_enc_node(void);
void asp_delete_xed_enc_line_parsed_t(xed_enc_line_parsed_t* v);
void asp_parse_line(xed_enc_line_parsed_t* v);
void asp_print_parsed_line(xed_enc_line_parsed_t* v);