version 1.64, 2008/11/18 20:52:47 |
version 1.67, 2010/05/24 01:59:52 |
|
|
* 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.63 2008/09/01 06:20:33 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.66 2010/04/23 04:44:52 noro Exp $ |
*/ |
*/ |
#include <ctype.h> |
#include <ctype.h> |
#include "ca.h" |
#include "ca.h" |
Line 943 pointer evalf(FUNC f,FNODE a,FNODE opt) |
|
Line 943 pointer evalf(FUNC f,FNODE a,FNODE opt) |
|
} |
} |
if ( !stack_base ) { |
if ( !stack_base ) { |
#if defined(GC7) |
#if defined(GC7) |
struct GC_stack_base sb; |
stack_base = (void *)GC_get_main_stack_base(); |
GC_get_stack_base(&sb); |
|
stack_base = (void *)sb.mem_base; |
|
#else |
#else |
stack_base = (void *)GC_get_stack_base(); |
stack_base = (void *)GC_get_stack_base(); |
#endif |
#endif |
Line 989 pointer evalf(FUNC f,FNODE a,FNODE opt) |
|
Line 987 pointer evalf(FUNC f,FNODE a,FNODE opt) |
|
for ( tn = f->f.usrf->args, sn = BDY(args); |
for ( tn = f->f.usrf->args, sn = BDY(args); |
sn; tn = NEXT(tn), sn = NEXT(sn) ) |
sn; tn = NEXT(tn), sn = NEXT(sn) ) |
ASSPV((int)FA0((FNODE)BDY(tn)),BDY(sn)); |
ASSPV((int)FA0((FNODE)BDY(tn)),BDY(sn)); |
|
f_return = f_break = f_continue = 0; |
if ( f->f.usrf->module ) { |
if ( f->f.usrf->module ) { |
prev_mpvs = MPVS; |
prev_mpvs = MPVS; |
MPVS = f->f.usrf->module->pvs; |
MPVS = f->f.usrf->module->pvs; |
Line 997 pointer evalf(FUNC f,FNODE a,FNODE opt) |
|
Line 996 pointer evalf(FUNC f,FNODE a,FNODE opt) |
|
} else |
} else |
val = evalstat((SNODE)BDY(f->f.usrf)); |
val = evalstat((SNODE)BDY(f->f.usrf)); |
f_return = f_break = f_continue = 0; poppvs(); |
f_return = f_break = f_continue = 0; poppvs(); |
|
if ( PVSS ) |
|
evalstatline = ((VS)BDY(PVSS))->at; |
break; |
break; |
case A_PURE: |
case A_PURE: |
args = (LIST)eval(a); |
args = (LIST)eval(a); |
Line 1197 pointer bevalf(FUNC f,NODE a) |
|
Line 1198 pointer bevalf(FUNC f,NODE a) |
|
for ( tn = f->f.usrf->args, sn = a; |
for ( tn = f->f.usrf->args, sn = a; |
sn; tn = NEXT(tn), sn = NEXT(sn) ) |
sn; tn = NEXT(tn), sn = NEXT(sn) ) |
ASSPV((int)FA0((FNODE)BDY(tn)),BDY(sn)); |
ASSPV((int)FA0((FNODE)BDY(tn)),BDY(sn)); |
|
f_return = f_break = f_continue = 0; |
if ( f->f.usrf->module ) { |
if ( f->f.usrf->module ) { |
prev_mpvs = MPVS; |
prev_mpvs = MPVS; |
MPVS = f->f.usrf->module->pvs; |
MPVS = f->f.usrf->module->pvs; |
Line 1275 pointer bevalf_with_opts(FUNC f,NODE a,NODE opts) |
|
Line 1277 pointer bevalf_with_opts(FUNC f,NODE a,NODE opts) |
|
for ( tn = f->f.usrf->args, sn = a; |
for ( tn = f->f.usrf->args, sn = a; |
sn; tn = NEXT(tn), sn = NEXT(sn) ) |
sn; tn = NEXT(tn), sn = NEXT(sn) ) |
ASSPV((int)FA0((FNODE)BDY(tn)),BDY(sn)); |
ASSPV((int)FA0((FNODE)BDY(tn)),BDY(sn)); |
|
f_return = f_break = f_continue = 0; |
if ( f->f.usrf->module ) { |
if ( f->f.usrf->module ) { |
prev_mpvs = MPVS; |
prev_mpvs = MPVS; |
MPVS = f->f.usrf->module->pvs; |
MPVS = f->f.usrf->module->pvs; |