1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
#ifndef EVALTYPE_H
#define EVALTYPE_H
#define MAX_EVALFUNC_PARAMS 8
#include "io/types.h"
/*
* Types
*/
typedef enum {
TYPE_UNKNOWN,
TYPE_BYTE,
TYPE_WORD,
TYPE_DWORD
} eval_inttype;
typedef struct {
uint64 value;
eval_inttype type;
} eval_int;
typedef struct {
double value;
} eval_float;
typedef struct {
char *value;
int len;
} eval_str;
typedef enum {
SCALAR_NULL=0,
SCALAR_INT,
SCALAR_STR,
SCALAR_FLOAT,
SCALAR_ANY,
SCALAR_VARARGS
} eval_scalartype;
typedef union {
eval_int integer;
eval_str str;
eval_float floatnum;
} eval_scalarbody;
typedef struct {
eval_scalartype type;
eval_scalarbody scalar;
} eval_scalar;
typedef struct {
int count;
eval_scalar *scalars;
} eval_scalarlist;
typedef struct {
const char *name;
void *func;
eval_scalartype ptype[MAX_EVALFUNC_PARAMS];
const char *desc;
} eval_func;
typedef enum {
PROTOMATCH_OK=0,
PROTOMATCH_NAME_FAIL,
PROTOMATCH_PARAM_FAIL
} eval_protomatch;
#endif /* EVALTYPE_H */
|