=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/quote.c,v retrieving revision 1.22 retrieving revision 1.26 diff -u -p -r1.22 -r1.26 --- OpenXM_contrib2/asir2000/parse/quote.c 2005/09/27 03:00:21 1.22 +++ OpenXM_contrib2/asir2000/parse/quote.c 2005/12/10 14:14:16 1.26 @@ -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.25 2005/09/30 02:20:06 noro Exp $ */ #include "ca.h" #include "parse.h" @@ -401,7 +401,10 @@ 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}, + {I_FUNC_QARG,A_func,A_fnode,A_end}, + {I_FUNC_HEAD,A_func,A_end}, }; #define N_FID_SPEC (sizeof(fid_spec_tab)/sizeof(struct fid_spec)) @@ -526,7 +529,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];