## xb-opcode xb-opcode |

## Functions

gboolean | xb_opcode_cmp_val ()
gboolean | xb_opcode_cmp_str ()
gchar * | xb_opcode_to_string ()
const gchar * | xb_opcode_kind_to_string ()
XbOpcodeKind | xb_opcode_kind_from_string ()
XbOpcodeKind | xb_opcode_get_kind ()
const gchar * | xb_opcode_get_str ()
guint32 | xb_opcode_get_val ()
void | xb_opcode_func_init ()
void | xb_opcode_integer_init ()
void | xb_opcode_text_init ()
void | xb_opcode_text_init_static ()
void | xb_opcode_text_init_steal ()

## Types and Values

enum | XbOpcodeFlags
enum | XbOpcodeKind
| XbOpcode

## Description

## Functions

### xb_opcode_cmp_val ()

    gboolean
    xb_opcode_cmp_val (XbOpcode *self);

### xb_opcode_cmp_str ()

    gboolean
    xb_opcode_cmp_str (XbOpcode *self);

### xb_opcode_to_string ()

    gchar *
    xb_opcode_to_string (XbOpcode *self);

### xb_opcode_kind_to_string ()

    const gchar *
    xb_opcode_kind_to_string (XbOpcodeKind kind);

### xb_opcode_kind_from_string ()

    XbOpcodeKind
    xb_opcode_kind_from_string (const gchar *str);

### xb_opcode_get_kind ()

    XbOpcodeKind
    xb_opcode_get_kind (XbOpcode *self);

### xb_opcode_get_str ()

    const gchar *
    xb_opcode_get_str (XbOpcode *self);

### xb_opcode_get_val ()

    guint32
    xb_opcode_get_val (XbOpcode *self);

### xb_opcode_func_init ()

    void
    xb_opcode_func_init (XbOpcode *opcode,
                         guint32 func);

### xb_opcode_integer_init ()

    void
    xb_opcode_integer_init (XbOpcode *opcode,
                            guint32 val);

### xb_opcode_text_init ()

    void
    xb_opcode_text_init (XbOpcode *opcode,
                         const gchar *str);

### xb_opcode_text_init_static ()

    void
    xb_opcode_text_init_static (XbOpcode *opcode,
                                const gchar *str);

### xb_opcode_text_init_steal ()

    void
    xb_opcode_text_init_steal (XbOpcode *opcode,
                               gchar *str);

## Types and Values

### enum XbOpcodeFlags

The opcode flags. The values have been carefully chosen so that a simple bitmask can be done to know how to compare for equality.

function─┐ ┌─string bound──┐ │ │ ┌──integer token┐ │ │ │ │ X X X X X X X 8 4 2 1

#### Members

XB_OPCODE_FLAG_UNKNOWN |  |
XB_OPCODE_FLAG_INTEGER | Integer value set |
XB_OPCODE_FLAG_TEXT | Text value set |
XB_OPCODE_FLAG_FUNCTION | An operator |
XB_OPCODE_FLAG_BOUND | A bound value, assigned later |
XB_OPCODE_FLAG_BOOLEAN |  |
XB_OPCODE_FLAG_TOKENIZED | Tokenized text |

### enum XbOpcodeKind

#### Members

XB_OPCODE_KIND_UNKNOWN | Unknown opcode |
XB_OPCODE_KIND_INTEGER | A literal integer value |
XB_OPCODE_KIND_TEXT | A literal text value |
XB_OPCODE_KIND_FUNCTION | An operator |
XB_OPCODE_KIND_BOUND_UNSET |  |
XB_OPCODE_KIND_BOUND_INTEGER | A bound integer value |
XB_OPCODE_KIND_BOUND_TEXT | A bound text value |
XB_OPCODE_KIND_INDEXED_TEXT | An indexed text value |
XB_OPCODE_KIND_BOOLEAN |  |

### XbOpcode

    typedef struct _XbOpcode XbOpcode;