version 1.76, 2017/02/07 08:30:31 |
version 1.79, 2018/03/28 05:27:22 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.75 2016/08/24 08:21:03 ohara Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.78 2018/03/27 06:29:19 noro Exp $ |
*/ |
*/ |
#include <ctype.h> |
#include <ctype.h> |
#include "ca.h" |
#include "ca.h" |
|
|
extern JMP_BUF timer_env; |
extern JMP_BUF timer_env; |
extern FUNC cur_binf; |
extern FUNC cur_binf; |
extern NODE PVSS; |
extern NODE PVSS; |
|
extern int evalef; |
|
|
int f_break,f_return,f_continue; |
int f_break,f_return,f_continue; |
int evalstatline; |
int evalstatline; |
Line 79 pointer eval(FNODE f) |
|
Line 80 pointer eval(FNODE f) |
|
R u; |
R u; |
DP dp; |
DP dp; |
unsigned int pv; |
unsigned int pv; |
int c,ret; |
int c,ret,pos; |
FNODE f1; |
FNODE f1; |
UP2 up2; |
UP2 up2; |
UP up; |
UP up; |
Line 90 pointer eval(FNODE f) |
|
Line 91 pointer eval(FNODE f) |
|
GFSN gfsn; |
GFSN gfsn; |
RANGE range; |
RANGE range; |
QUOTE expr,pattern; |
QUOTE expr,pattern; |
|
Q q; |
|
|
#if defined(VISUAL) || defined(__MINGW32__) |
#if defined(VISUAL) || defined(__MINGW32__) |
check_intr(); |
check_intr(); |
Line 168 pointer eval(FNODE f) |
|
Line 170 pointer eval(FNODE f) |
|
case I_EV: |
case I_EV: |
evalnodebody((NODE)FA0(f),&tn); nodetod(tn,&dp); val = (pointer)dp; |
evalnodebody((NODE)FA0(f),&tn); nodetod(tn,&dp); val = (pointer)dp; |
break; |
break; |
|
case I_EVM: |
|
evalnodebody((NODE)FA0(f),&tn); pos = eval((FNODE)FA1(f)); nodetodpm(tn,pos,&dp); val = (pointer)dp; |
|
break; |
case I_FUNC: |
case I_FUNC: |
val = evalf((FUNC)FA0(f),(FNODE)FA1(f),0); break; |
val = evalf((FUNC)FA0(f),(FNODE)FA1(f),0); break; |
case I_FUNC_OPT: |
case I_FUNC_OPT: |
Line 294 pointer eval(FNODE f) |
|
Line 299 pointer eval(FNODE f) |
|
case I_STR: |
case I_STR: |
MKSTR(str,FA0(f)); val = (pointer)str; break; |
MKSTR(str,FA0(f)); val = (pointer)str; break; |
case I_FORMULA: |
case I_FORMULA: |
val = FA0(f); break; |
val = FA0(f); |
|
break; |
case I_LIST: |
case I_LIST: |
evalnodebody((NODE)FA0(f),&tn); MKLIST(t,tn); val = (pointer)t; break; |
evalnodebody((NODE)FA0(f),&tn); MKLIST(t,tn); val = (pointer)t; break; |
case I_CONS: |
case I_CONS: |
Line 757 pointer evalstat(SNODE f) |
|
Line 763 pointer evalstat(SNODE f) |
|
} |
} |
break; |
break; |
case S_BREAK: |
case S_BREAK: |
if ( GPVS != CPVS ) |
if ( 1 || GPVS != CPVS ) |
f_break = 1; |
f_break = 1; |
break; |
break; |
case S_CONTINUE: |
case S_CONTINUE: |
if ( GPVS != CPVS ) |
if ( 1 || GPVS != CPVS ) |
f_continue = 1; |
f_continue = 1; |
break; |
break; |
case S_RETURN: |
case S_RETURN: |
if ( GPVS != CPVS ) { |
if ( 1 || GPVS != CPVS ) { |
val = eval((FNODE)FA0(f)); f_return = 1; |
val = eval((FNODE)FA0(f)); f_return = 1; |
} |
} |
break; |
break; |