31#define EE_SCRATCH_EQN_LEN 1024
34#define EE_ERR_UNKNOWN 1
35#define EE_ERR_ODD_NUM_PARENS 2
36#define EE_ERR_ODD_NUM_BRACKETS 3
37#define EE_ERR_MEM_LACK 4
38#define EE_ERR_NO_VARS 5
39#define EE_ERR_TOO_MANY_VARS 6
40#define EE_ERR_DOMAIN 7
41#define EE_ERR_MEM_CORRUPT 8
42#define EE_ERR_POUND_SIGN 9
43#define EE_ERR_DOLLAR_SIGN 10
44#define EE_ERR_EQN_BAD 11
45#define EE_ERR_ODD_NUM_QUOTES 12
46#define EE_ERR_VAR_NAME_BAD 13
47#define EE_ERR_BAD_OP_ON_CHAR 14
48#define EE_ERR_BAD_OP_ON_NUM 15
49#define EE_ERR_UNSUPPORTED 16
50#define EE_ERR_EQN_TOO_LONG 17
53#define EE_VAR_TYPE_UNKNOWN 0
54#define EE_VAR_TYPE_NUMERIC 1
55#define EE_VAR_TYPE_CHAR 2
61 unsigned char *equation;
62 unsigned char *variable_type;
68 unsigned char num_vars;
69 unsigned char numconst;
70 unsigned char num_work;
72 unsigned char num_strc;
73} EQUATION_INFO, *EQUATION_INFO_PTR;
76void ee_show_err_mesg(
char *buffer,
int error);
77double ee_evaluate_equation(EQUATION_INFO_PTR einfo,
int *error);
78EQUATION_INFO_PTR ee_clean_up_equation(
char *eqn,
int *error);
84int ee_check_vars_exist(EQUATION_INFO_PTR einfo, FORMAT_PTR eqn_format);
85int ee_set_var_values(EQUATION_INFO_PTR einfo,
void *record, FORMAT_PTR eqn_format);
86int ee_set_var_types(
char *eqn, FORMAT_PTR eqn_format);
87int ee_free_einfo(EQUATION_INFO_PTR einfo);
88EQUATION_INFO_PTR ee_make_std_equation(
char *equation, FORMAT_PTR eqn_format);
93#define FF_VALIDATE(o) assert(o);assert((void *)o == (o)->check_address);
95#define FF_VALIDATE(o) assert(o);