File: evaltype.h

package info (click to toggle)
ht 2.1.0%2Brepack1-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 5,796 kB
  • ctags: 15,915
  • sloc: cpp: 88,932; ansic: 12,693; sh: 4,081; lex: 226; makefile: 184; yacc: 128
file content (71 lines) | stat: -rw-r--r-- 975 bytes parent folder | download | duplicates (8)
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 */