Move the sources to trunk
[opencv] / apps / cvenv / EiC / func.h
1 #ifndef FUNCH_
2 #define FUNCH_
3
4 #include "typemod.h"
5 #include "datastruct.h"
6
7 typedef struct {
8     type_expr *type;   /* parameter type */
9     char *name;        /* parameter name */
10     char *comm;        /* parameter comment */
11     void *val;         /* parameter default value */
12 } parm_t;
13
14
15 typedef struct {
16     int Num;             /* # of parameters */
17     parm_t * parm;
18
19     int sn;            /* # of strings */
20     char **strs;       /* string pointers */
21     int stn;           /* # of static arrays */
22     int *st;           /* pointer to static arrays */
23     extern_t *link;    /* pointer to links */
24     int ni;            /* # of initialisers */
25     void **inzs;       /* initialisers */
26     char *comm;        /* function comment */
27
28     code_t *callBack;  /* call Back code */
29
30 } func_t;
31
32 /** func.c **/
33 /* methods */
34 #define getFNp(f)         ((f)->Num)     /* get number of parameters */
35 #define setFNp(f,i)       ((f)->Num = i)
36 #define getFPname(f,i)    ((f)->parm[i].name)  /* get parameter name */
37 #define setFPname(f,i,s)  ((f)->parm[i].name = s) /* set parameter name */
38 #define getFPty(f,i)      ((f)->parm[i].type) /* get parameter type */
39 #define setFPty(f,i,s)    ((f)->parm[i].type = s) 
40
41 #define getFPcomm(f,i)    ((f)->parm[i].comm)  /* get parameter comment */
42 #define setFPcomm(f,i,s) ((f)->parm[i].comm = s) /* set parameter comment */ 
43
44 #define getFPval(f,i)    ((f)->parm[i].val)  /* get parameter value */
45 #define setFPval(f,i,s) ((f)->parm[i].val = s) /* set parameter value */ 
46
47 #define getFPtyList(f)    ((f)->parm)      /* get  parameter list */
48 #define setFPtyList(f,s)  ((f)->parm = s)  /* set  parameter list */
49
50 #define getFComm(f)      ((f)->comm)
51 #define setFComm(f,s)    ((f)->comm=s)
52
53 #define getFcallBack(f)  ((f)->callBack)
54 #define setFcallBack(f,s)  ((f)->callBack=s)
55
56 void EiC_make_func(token_t * e1);
57 void EiC_add_func_parm(func_t * f, type_expr ** type, char * name);
58 void EiC_add_func_str(func_t * f, char *s);
59 void EiC_add_func_static(func_t * f, int n);
60 void EiC_add_func_initialiser(func_t * f, void *s);
61 void EiC_free_func_inf(func_t * f);
62 void EiC_markFunc(type_expr * type, int mark);
63 void EiC_freeFuncComments(func_t *f);
64 int EiC_sameFuncs(type_expr *t1, type_expr *t2);
65
66 int EiC_IsVariadic(func_t *f);
67 int EiC_hasPrototype(func_t *f);
68 void EiC_swapFPLists(func_t *f1, func_t *f2);
69 int EiC_gotMissingNames(func_t *f);
70  
71 int EiC_HasHiddenParm(type_expr *ty);
72
73 void add_param_initialiser(func_t *f);
74
75 void (*EiC_saveComment(void)) (char * s);
76
77 #endif
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94