50   INVALID_IDENTIFIER = 2,
 
   55   VARIABLE_LIMIT_REACHED = 7,
 
   60 typedef enum lvm_status lvm_status_t;
 
   62 #define LVM_ERROR(x)    (x >= 2) 
   73 typedef struct lvm_instance lvm_instance_t;
 
   81 typedef 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
 
   98 typedef enum operator operator_t;
 
  105 typedef enum operand_type operand_type_t;
 
  107 typedef unsigned char variable_id_t;
 
  119   operand_value_t value;
 
  121 typedef struct operand operand_t;
 
  123 void lvm_reset(lvm_instance_t *p, 
unsigned char *code, lvm_ip_t size);
 
  124 void lvm_clone(lvm_instance_t *dst, lvm_instance_t *src);
 
  125 lvm_status_t lvm_derive(lvm_instance_t *p);
 
  126 lvm_status_t lvm_get_derived_range(lvm_instance_t *p, 
char *name, 
 
  127                                    operand_value_t *min,
 
  128                                    operand_value_t *max);
 
  129 void lvm_print_derivations(lvm_instance_t *p);
 
  130 lvm_status_t lvm_execute(lvm_instance_t *p);
 
  131 lvm_status_t lvm_register_variable(
char *name, operand_type_t type);
 
  132 lvm_status_t lvm_set_variable_value(
char *name, operand_value_t value);
 
  133 void lvm_print_code(lvm_instance_t *p);
 
  134 lvm_ip_t lvm_jump_to_operand(lvm_instance_t *p);
 
  135 lvm_ip_t lvm_shift_for_operator(lvm_instance_t *p, lvm_ip_t end);
 
  136 lvm_ip_t lvm_get_end(lvm_instance_t *p);
 
  137 lvm_ip_t lvm_set_end(lvm_instance_t *p, lvm_ip_t end);
 
  138 void lvm_set_op(lvm_instance_t *p, operator_t op);
 
  139 void lvm_set_relation(lvm_instance_t *p, operator_t op);
 
  140 void lvm_set_operand(lvm_instance_t *p, operand_t *op);
 
  141 void lvm_set_long(lvm_instance_t *p, 
long l);
 
  142 void lvm_set_variable(lvm_instance_t *p, 
char *name);
 
#define TRUE
An alias for one, used for clarity. 
 
 Database configuration options. 
 
#define FALSE
An alias for zero, used for clarity.