33 while (*((parser_exe_t*)
p) != PARSER_EXE_NULL) {
34 switch (*((parser_exe_t*)
p))
40 top = ((ParserExeNumber*)
p)->v;
41 p +=
sizeof(ParserExeNumber);
47 int i = ((ParserExeSymbol*)
p)->i;
48 top = AMREX_PARSER_GET_DATA(i);
49 p +=
sizeof(ParserExeSymbol);
56 p +=
sizeof(ParserExeADD);
63 p +=
sizeof(ParserExeSUB_F);
70 p +=
sizeof(ParserExeSUB_B);
77 p +=
sizeof(ParserExeMUL);
84 p +=
sizeof(ParserExeDIV_F);
91 p +=
sizeof(ParserExeDIV_B);
96 top = parser_call_f1(((ParserExeF1*)
p)->ftype,
top);
97 p +=
sizeof(ParserExeF1);
103 top = parser_call_f2(((ParserExeF2_F*)
p)->ftype, a,
top);
104 p +=
sizeof(ParserExeF2_F);
110 top = parser_call_f2(((ParserExeF2_B*)
p)->ftype,
top, a);
111 p +=
sizeof(ParserExeF2_B);
117 int i = ((ParserExeADD_VP*)
p)->i;
118 double d = AMREX_PARSER_GET_DATA(i);
119 top = ((ParserExeADD_VP*)
p)->v + d;
120 p +=
sizeof(ParserExeADD_VP);
126 int i = ((ParserExeSUB_VP*)
p)->i;
127 double d = AMREX_PARSER_GET_DATA(i);
128 top = ((ParserExeSUB_VP*)
p)->v - d;
129 p +=
sizeof(ParserExeSUB_VP);
135 int i = ((ParserExeMUL_VP*)
p)->i;
136 double d = AMREX_PARSER_GET_DATA(i);
137 top = ((ParserExeMUL_VP*)
p)->v * d;
138 p +=
sizeof(ParserExeMUL_VP);
144 int i = ((ParserExeDIV_VP*)
p)->i;
145 double d = AMREX_PARSER_GET_DATA(i);
146 top = ((ParserExeDIV_VP*)
p)->v / d;
147 p +=
sizeof(ParserExeDIV_VP);
153 int i = ((ParserExeADD_PP*)
p)->i1;
154 double d1 = AMREX_PARSER_GET_DATA(i);
155 i = ((ParserExeADD_PP*)
p)->i2;
156 double d2 = AMREX_PARSER_GET_DATA(i);
158 p +=
sizeof(ParserExeADD_PP);
164 int i = ((ParserExeSUB_PP*)
p)->i1;
165 double d1 = AMREX_PARSER_GET_DATA(i);
166 i = ((ParserExeSUB_PP*)
p)->i2;
167 double d2 = AMREX_PARSER_GET_DATA(i);
169 p +=
sizeof(ParserExeSUB_PP);
175 int i = ((ParserExeMUL_PP*)
p)->i1;
176 double d1 = AMREX_PARSER_GET_DATA(i);
177 i = ((ParserExeMUL_PP*)
p)->i2;
178 double d2 = AMREX_PARSER_GET_DATA(i);
180 p +=
sizeof(ParserExeMUL_PP);
186 int i = ((ParserExeDIV_PP*)
p)->i1;
187 double d1 = AMREX_PARSER_GET_DATA(i);
188 i = ((ParserExeDIV_PP*)
p)->i2;
189 double d2 = AMREX_PARSER_GET_DATA(i);
191 p +=
sizeof(ParserExeDIV_PP);
196 top += ((ParserExeADD_VN*)
p)->v;
197 p +=
sizeof(ParserExeADD_VN);
202 top = ((ParserExeSUB_VN*)
p)->v -
top;
203 p +=
sizeof(ParserExeSUB_VN);
208 top *= ((ParserExeMUL_VN*)
p)->v;
209 p +=
sizeof(ParserExeMUL_VN);
214 top = ((ParserExeDIV_VN*)
p)->v /
top;
215 p +=
sizeof(ParserExeDIV_VN);
220 int i = ((ParserExeADD_PN*)
p)->i;
221 double d = AMREX_PARSER_GET_DATA(i);
223 p +=
sizeof(ParserExeADD_PN);
228 int i = ((ParserExeSUB_PN*)
p)->i;
229 double d = AMREX_PARSER_GET_DATA(i);
230 if (((ParserExeSUB_PN*)
p)->reverse) {
235 p +=
sizeof(ParserExeSUB_PN);
240 int i = ((ParserExeMUL_PN*)
p)->i;
241 double d = AMREX_PARSER_GET_DATA(i);
243 p +=
sizeof(ParserExeMUL_PN);
248 int i = ((ParserExeDIV_PN*)
p)->i;
249 double d = AMREX_PARSER_GET_DATA(i);
250 if (((ParserExeDIV_PN*)
p)->reverse) {
255 p +=
sizeof(ParserExeDIV_PN);
261 p +=
sizeof(ParserExeSquare);
266 top = parser_math_powi(
top, ((ParserExePOWI*)
p)->i);
267 p +=
sizeof(ParserExePOWI);
273 int i = ((ParserExeFMA_VPV*)
p)->i;
274 double d = AMREX_PARSER_GET_DATA(i);
275 top = ((ParserExeFMA_VPV*)
p)->a * d + ((ParserExeFMA_VPV*)
p)->b;
276 p +=
sizeof(ParserExeFMA_VPV);
284 p += ((ParserExeIF*)
p)->offset;
286 p +=
sizeof(ParserExeIF);
291 int offset = ((ParserExeJUMP*)
p)->offset;
292 p +=
sizeof(ParserExeJUMP) +
offset;
297 psize -= ((ParserExeUserFn*)
p)->argc - 1;
299 p +=
sizeof(ParserExeUserFn);
305 int i = ((ParserExeF1_P*)
p)->i;
306 double d = AMREX_PARSER_GET_DATA(i);
307 top = parser_call_f1(((ParserExeF1_P*)
p)->ftype, d);
308 p +=
sizeof(ParserExeF1_P);
314 int i = ((ParserExeSquare_P*)
p)->i;
315 double d = AMREX_PARSER_GET_DATA(i);
317 p +=
sizeof(ParserExeSquare_P);
323 int i = ((ParserExePOWI_P*)
p)->i;
324 double d = AMREX_PARSER_GET_DATA(i);
325 top = parser_math_powi(d, ((ParserExePOWI_P*)
p)->n);
326 p +=
sizeof(ParserExePOWI_P);
332 int i = ((ParserExeF2_PP*)
p)->i1;
333 double d1 = AMREX_PARSER_GET_DATA(i);
334 i = ((ParserExeF2_PP*)
p)->i2;
335 double d2 = AMREX_PARSER_GET_DATA(i);
336 top = parser_call_f2(((ParserExeF2_PP*)
p)->ftype, d1, d2);
337 p +=
sizeof(ParserExeF2_PP);
343 int i = ((ParserExeF2_PV*)
p)->i;
344 double d = AMREX_PARSER_GET_DATA(i);
345 top = parser_call_f2(((ParserExeF2_PV*)
p)->ftype, d, ((ParserExeF2_PV*)
p)->v);
346 p +=
sizeof(ParserExeF2_PV);
352 int i = ((ParserExeF2_VP*)
p)->i;
353 double d = AMREX_PARSER_GET_DATA(i);
354 top = parser_call_f2(((ParserExeF2_VP*)
p)->ftype, ((ParserExeF2_VP*)
p)->v, d);
355 p +=
sizeof(ParserExeF2_VP);
358#if AMREX_PARSER_THREADED_BODY
int psize
Definition AMReX_Parser_Exe_Body.H:12
double top
Definition AMReX_Parser_Exe_Body.H:13
#define AMREX_PARSER_NEXT
Definition AMReX_Parser_Exe_Body.H:32
while parser_exe_t p
Definition AMReX_Parser_Exe_Body.H:33
#define AMREX_PARSER_CASE(X)
Definition AMReX_Parser_Exe_Body.H:31
double pdata[AMREX_PARSER_STACK_SIZE]
Definition AMReX_Parser_Exe_Body.H:11