=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/quote.c,v retrieving revision 1.22 retrieving revision 1.25 diff -u -p -r1.22 -r1.25 --- OpenXM_contrib2/asir2000/parse/quote.c 2005/09/27 03:00:21 1.22 +++ OpenXM_contrib2/asir2000/parse/quote.c 2005/09/30 02:20:06 1.25 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM_contrib2/asir2000/parse/quote.c,v 1.21 2005/04/07 08:33:12 noro Exp $ */ +/* $OpenXM: OpenXM_contrib2/asir2000/parse/quote.c,v 1.24 2005/09/28 08:40:31 noro Exp $ */ #include "ca.h" #include "parse.h" @@ -401,7 +401,8 @@ struct fid_spec fid_spec_tab[] = { {I_POINT,A_fnode,A_str,A_end}, {I_PAREN,A_fnode,A_end}, {I_MINUS,A_fnode,A_end}, - {I_NARYOP,A_notimpl,A_end} + {I_NARYOP,A_arf,A_node,A_end}, + {I_CONS,A_node,A_fnode,A_end} }; #define N_FID_SPEC (sizeof(fid_spec_tab)/sizeof(struct fid_spec)) @@ -526,7 +527,8 @@ int compfnode(FNODE f1,FNODE f2) for ( i = 0; spec->type[i] != A_end; i++ ) { switch ( spec->type[i] ) { case A_fnode: - return compfnode((FNODE)f1->arg[i],(FNODE)f2->arg[i]); + t = compfnode((FNODE)f1->arg[i],(FNODE)f2->arg[i]); + if ( t ) return t; break; case A_int: s1 = (int)f1->arg[i];