| 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)); |