version 1.42, 2005/09/13 06:54:22 |
version 1.43, 2005/09/14 02:48:38 |
|
|
* 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.41 2005/09/13 06:40:46 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.42 2005/09/13 06:54:22 noro Exp $ |
*/ |
*/ |
#include <ctype.h> |
#include <ctype.h> |
#include "ca.h" |
#include "ca.h" |
Line 64 int f_break,f_return,f_continue; |
|
Line 64 int f_break,f_return,f_continue; |
|
int evalstatline; |
int evalstatline; |
int recv_intr; |
int recv_intr; |
int show_crossref; |
int show_crossref; |
|
void gen_searchf_searchonly(char *name,FUNC *r); |
|
|
pointer eval(FNODE f) |
pointer eval(FNODE f) |
{ |
{ |
Line 333 pointer eval(FNODE f) |
|
Line 334 pointer eval(FNODE f) |
|
return ( val ); |
return ( val ); |
} |
} |
|
|
|
V searchvar(char *name); |
|
|
pointer evalstat(SNODE f) |
pointer evalstat(SNODE f) |
{ |
{ |
pointer val = 0,t,s,s1; |
pointer val = 0,t,s,s1; |
P u; |
P u; |
NODE tn; |
NODE tn; |
int i,ac; |
int i,ac; |
|
V v; |
V *a; |
V *a; |
char *buf; |
char *buf; |
|
FUNC func; |
|
|
if ( !f ) |
if ( !f ) |
return ( 0 ); |
return ( 0 ); |
Line 379 pointer evalstat(SNODE f) |
|
Line 384 pointer evalstat(SNODE f) |
|
makevar(buf,&u); a[i] = VR(u); |
makevar(buf,&u); a[i] = VR(u); |
substr(CO,0,(Obj)s,VR((P)t),(Obj)u,(Obj *)&s1); s = s1; |
substr(CO,0,(Obj)s,VR((P)t),(Obj)u,(Obj *)&s1); s = s1; |
} |
} |
mkpf((char *)FA0(f),(Obj)s,ac,a,0,0,0,(PF *)&val); val = 0; break; |
mkpf((char *)FA0(f),(Obj)s,ac,a,0,0,0,(PF *)&val); val = 0; |
|
v = searchvar((char *)FA0(f)); |
|
if ( v ) { |
|
searchpf((char *)FA0(f),&func); |
|
makesrvar(func,&u); |
|
} |
|
break; |
case S_SINGLE: |
case S_SINGLE: |
val = eval((FNODE)FA0(f)); break; |
val = eval((FNODE)FA0(f)); break; |
case S_CPLX: |
case S_CPLX: |
Line 469 pointer evalf(FUNC f,FNODE a,FNODE opt) |
|
Line 480 pointer evalf(FUNC f,FNODE a,FNODE opt) |
|
char errbuf[BUFSIZ]; |
char errbuf[BUFSIZ]; |
static unsigned int stack_size; |
static unsigned int stack_size; |
static void *stack_base; |
static void *stack_base; |
|
FUNC f1; |
|
|
if ( f->id == A_UNDEF ) { |
if ( f->id == A_UNDEF ) { |
sprintf(errbuf,"evalf : %s undefined",NAME(f)); |
gen_searchf_searchonly(f->fullname,&f1); |
error(errbuf); |
if ( f1->id == A_UNDEF ) { |
|
sprintf(errbuf,"evalf : %s undefined",NAME(f)); |
|
error(errbuf); |
|
} else |
|
*f = *f1; |
} |
} |
if ( getsecuremode() && !PVSS && !f->secure ) { |
if ( getsecuremode() && !PVSS && !f->secure ) { |
sprintf(errbuf,"evalf : %s not permitted",NAME(f)); |
sprintf(errbuf,"evalf : %s not permitted",NAME(f)); |