=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/builtin/strobj.c,v retrieving revision 1.115 retrieving revision 1.117 diff -u -p -r1.115 -r1.117 --- OpenXM_contrib2/asir2000/builtin/strobj.c 2006/08/09 05:05:28 1.115 +++ OpenXM_contrib2/asir2000/builtin/strobj.c 2006/08/27 22:17:27 1.117 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/builtin/strobj.c,v 1.114 2005/12/19 01:31:43 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/builtin/strobj.c,v 1.116 2006/08/19 05:35:07 noro Exp $ */ #include "ca.h" #include "parse.h" @@ -108,7 +108,7 @@ void Pnbp_tm(), Pnbp_tt(), Pnbp_tc(), Pnbp_trest(); void Pnbm_deg(); void Pnbm_hp_rest(); void Pnbm_hxky(), Pnbm_xky_rest(); -void Pnbm_hv(), Pnbm_rest(); +void Pnbm_hv(), Pnbm_tv(), Pnbm_rest(),Pnbm_trest(); void Pquote_to_funargs(),Pfunargs_to_quote(),Pget_function_name(); void Pqt_match(),Pget_quote_id(); @@ -192,7 +192,9 @@ struct ftab str_tab[] = { {"nbm_xky_rest", Pnbm_xky_rest,1}, {"nbm_hp_rest", Pnbm_hp_rest,1}, {"nbm_hv", Pnbm_hv,1}, + {"nbm_tv", Pnbm_tv,1}, {"nbm_rest", Pnbm_rest,1}, + {"nbm_trest", Pnbm_trest,1}, {"qt_to_nary",Pqt_to_nary,1}, {"qt_to_bin",Pqt_to_bin,2}, @@ -2614,6 +2616,28 @@ void Pnbm_rest(NODE arg, NBP *rp) *rp = 0; else separate_nbm((NBM)BDY(BDY(p)),0,0,rp); +} + +void Pnbm_tv(NODE arg, NBP *rp) +{ + NBP p; + + p = (NBP)ARG0(arg); + if ( !p ) + *rp = 0; + else + separate_tail_nbm((NBM)BDY(BDY(p)),0,0,rp); +} + +void Pnbm_trest(NODE arg, NBP *rp) +{ + NBP p; + + p = (NBP)ARG0(arg); + if ( !p ) + *rp = 0; + else + separate_tail_nbm((NBM)BDY(BDY(p)),0,rp,0); } NBP fnode_to_nbp(FNODE f)