version 1.95, 2005/11/03 07:41:22 |
version 1.96, 2005/11/04 07:03: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/builtin/strobj.c,v 1.94 2005/11/02 10:02:32 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/builtin/strobj.c,v 1.95 2005/11/03 07:41:22 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
Line 747 void fnode_do_assign(NODE arg) |
|
Line 747 void fnode_do_assign(NODE arg) |
|
pair = (NODE)BDY(t); |
pair = (NODE)BDY(t); |
pv = (int)BDY(pair); |
pv = (int)BDY(pair); |
f = (FNODE)(BDY(NEXT(pair))); |
f = (FNODE)(BDY(NEXT(pair))); |
if ( f->id == I_FUNC ) { |
if ( f->id == I_FUNC_HEAD ) { |
/* XXX : used for wrapping A_func */ |
/* XXX : I_FUNC_HEAD is a dummy id to pass FUNC */ |
MKQUOTEARG(qa,A_func,FA0(f)); |
MKQUOTEARG(qa,A_func,FA0(f)); |
value = (QUOTE)qa; |
value = (QUOTE)qa; |
} else |
} else |
Line 2794 int nfnode_match(FNODE f,FNODE pat,NODE *rp) |
|
Line 2794 int nfnode_match(FNODE f,FNODE pat,NODE *rp) |
|
NODE m,m1,m2,base,exp,fa,pa,n; |
NODE m,m1,m2,base,exp,fa,pa,n; |
LIST l; |
LIST l; |
QUOTE qp,qf; |
QUOTE qp,qf; |
FNODE fbase,fexp,a; |
FNODE fbase,fexp,a,fh; |
FUNC ff,pf; |
FUNC ff,pf; |
int r; |
int r; |
|
|
Line 2836 int nfnode_match(FNODE f,FNODE pat,NODE *rp) |
|
Line 2836 int nfnode_match(FNODE f,FNODE pat,NODE *rp) |
|
if ( strcmp(ff->fullname,pf->fullname) ) return 0; |
if ( strcmp(ff->fullname,pf->fullname) ) return 0; |
m = 0; |
m = 0; |
} else { |
} else { |
/* XXX only FA0(f) is used */ |
/* XXX : I_FUNC_HEAD is a dummy id to pass FUNC */ |
m = mknode(1,mknode(2,FA0((FNODE)FA0(pat)),f),0); |
fh = mkfnode(1,I_FUNC_HEAD,FA0(f)); |
|
m = mknode(1,mknode(2,FA0((FNODE)FA0(pat)),fh),0); |
} |
} |
/* FA1(f) and FA1(pat) are I_LIST */ |
/* FA1(f) and FA1(pat) are I_LIST */ |
fa = (NODE)FA0((FNODE)FA1(f)); |
fa = (NODE)FA0((FNODE)FA1(f)); |