My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
eval_defs.h
1 #include <stdio.h>
2 #include <math.h>
3 #include <stdlib.h>
4 #include <string.h>
5 #if defined(__sgi) || defined(__hpux)
6 #include <alloca.h>
7 #endif
8 #ifdef sparc
9 #include <malloc.h>
10 #endif
11 #include "fitsio2.h"
12 
13 #ifndef FFBISON
14 #include "eval_tab.h"
15 #endif
16 
17 #define MAXDIMS 5
18 #define MAXSUBS 10
19 #define MAXVARNAME 80
20 #define CONST_OP -1000
21 #define pERROR -1
22 
23 typedef struct {
24  char name[MAXVARNAME+1];
25  int type;
26  long nelem;
27  int naxis;
28  long naxes[MAXDIMS];
29  char *undef;
30  void *data;
31  } DataInfo;
32 
33 typedef struct {
34  long nelem;
35  int naxis;
36  long naxes[MAXDIMS];
37  char *undef;
38  union {
39  double dbl;
40  long lng;
41  char log;
42  char str[256];
43  double *dblptr;
44  long *lngptr;
45  char *logptr;
46  char **strptr;
47  void *ptr;
48  } data;
49  } lval;
50 
51 typedef struct Node {
52  int operation;
53  void (*DoOp)(struct Node *this);
54  int nSubNodes;
55  int SubNodes[MAXSUBS];
56  int type;
57  lval value;
58  } Node;
59 
60 typedef struct {
61  fitsfile *def_fptr;
62  int (*getData)( char *dataName, void *dataValue );
63  int (*loadData)( int varNum, long fRow, long nRows,
64  void *data, char *undef );
65 
66  int compressed;
67  int timeCol;
68  int parCol;
69  int valCol;
70 
71  char *expr;
72  int index;
73  int is_eobuf;
74 
75  Node *Nodes;
76  int nNodes;
77  int nNodesAlloc;
78  int resultNode;
79 
80  long firstRow;
81  long nRows;
82 
83  int nCols;
84  iteratorCol *colData;
85  DataInfo *varData;
86 
87  long firstDataRow;
88  long nDataRows;
89  long totalRows;
90 
91  int datatype;
92 
93  int status;
94  } ParseData;
95 
96 typedef enum {
97  rnd_fct = 1001,
98  sum_fct,
99  nelem_fct,
100  sin_fct,
101  cos_fct,
102  tan_fct,
103  asin_fct,
104  acos_fct,
105  atan_fct,
106  sinh_fct,
107  cosh_fct,
108  tanh_fct,
109  exp_fct,
110  log_fct,
111  log10_fct,
112  sqrt_fct,
113  abs_fct,
114  atan2_fct,
115  ceil_fct,
116  floor_fct,
117  round_fct,
118  min1_fct,
119  min2_fct,
120  max1_fct,
121  max2_fct,
122  near_fct,
123  circle_fct,
124  box_fct,
125  elps_fct,
126  isnull_fct,
127  defnull_fct,
128  gtifilt_fct,
129  regfilt_fct,
130  ifthenelse_fct,
131  row_fct,
132  null_fct
133  } funcOp;
134 
135 extern ParseData gParse;
136 
137 #ifdef __cplusplus
138 extern "C" {
139 #endif
140 
141  int ffparse(void);
142  int fflex(void);
143  void ffrestart(FILE*);
144 
145  void Evaluate_Parser( long firstRow, long nRows );
146 
147 #ifdef __cplusplus
148  }
149 #endif
Definition: eval_defs.h:51
Definition: eval_defs.h:23
Definition: eval_defs.h:60
Definition: fitsio.h:254
Definition: eval_defs.h:33
Definition: fitsio.h:248