50 LVM_INVALID_IDENTIFIER = 2,
51 LVM_SEMANTIC_ERROR = 3,
53 LVM_STACK_OVERFLOW = 5,
55 LVM_VARIABLE_LIMIT_REACHED = 7,
56 LVM_EXECUTION_ERROR = 8,
57 LVM_DERIVATION_ERROR = 9
60typedef enum lvm_status lvm_status_t;
62#define LVM_ERROR(x) (x >= 2)
73typedef struct lvm_instance lvm_instance_t;
81typedef enum node_type node_type_t;
84 LVM_ADD = LVM_ARITH_OP | 1,
85 LVM_SUB = LVM_ARITH_OP | 2,
86 LVM_MUL = LVM_ARITH_OP | 3,
87 LVM_DIV = LVM_ARITH_OP | 4,
88 LVM_EQ = LVM_CMP_OP | 1,
89 LVM_NEQ = LVM_CMP_OP | 2,
90 LVM_GE = LVM_CMP_OP | 3,
91 LVM_GEQ = LVM_CMP_OP | 4,
92 LVM_LE = LVM_CMP_OP | 5,
93 LVM_LEQ = LVM_CMP_OP | 6,
94 LVM_AND = LVM_CONNECTIVE | 1,
95 LVM_OR = LVM_CONNECTIVE | 2,
96 LVM_NOT = LVM_CONNECTIVE | 3
98typedef enum operator operator_t;
105typedef enum operand_type operand_type_t;
107typedef unsigned char variable_id_t;
119 operand_value_t value;
121typedef struct operand operand_t;
123void lvm_reset(lvm_instance_t *p,
unsigned char *code, lvm_ip_t size);
124void lvm_clone(lvm_instance_t *dst, lvm_instance_t *src);
125lvm_status_t lvm_derive(lvm_instance_t *p);
126lvm_status_t lvm_get_derived_range(lvm_instance_t *p,
char *name,
127 operand_value_t *min,
128 operand_value_t *max);
129void lvm_print_derivations(lvm_instance_t *p);
130lvm_status_t lvm_execute(lvm_instance_t *p);
131lvm_status_t lvm_register_variable(
char *name, operand_type_t type);
132lvm_status_t lvm_set_variable_value(
char *name, operand_value_t value);
133void lvm_print_code(lvm_instance_t *p);
134lvm_ip_t lvm_jump_to_operand(lvm_instance_t *p);
135lvm_ip_t lvm_shift_for_operator(lvm_instance_t *p, lvm_ip_t end);
136lvm_ip_t lvm_get_end(lvm_instance_t *p);
137lvm_ip_t lvm_set_end(lvm_instance_t *p, lvm_ip_t end);
138lvm_status_t lvm_set_op(lvm_instance_t *p, operator_t op);
139lvm_status_t lvm_set_relation(lvm_instance_t *p, operator_t op);
140lvm_status_t lvm_set_operand(lvm_instance_t *p, operand_t *op);
141lvm_status_t lvm_set_long(lvm_instance_t *p,
long l);
142lvm_status_t lvm_set_variable(lvm_instance_t *p,
char *name);
Database configuration options.