=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/pexpr_body.c,v retrieving revision 1.1 retrieving revision 1.4 diff -u -p -r1.1 -r1.4 --- OpenXM_contrib2/asir2000/io/pexpr_body.c 2004/03/17 03:22:47 1.1 +++ OpenXM_contrib2/asir2000/io/pexpr_body.c 2004/07/13 07:59:54 1.4 @@ -1,4 +1,4 @@ -/* $OpenXM$ */ +/* $OpenXM: OpenXM_contrib2/asir2000/io/pexpr_body.c,v 1.3 2004/05/14 06:02:54 noro Exp $ */ #define PRINTHAT (fortran_output?PUTS("**"):PUTS("^")) @@ -19,6 +19,7 @@ void PRINTGF2MAT(); void PRINTGFMMAT(); void PRINTBYTEARRAY(); void PRINTQUOTE(); +void PRINTQUOTEARG(); void PRINTERR(); void PRINTCPLX(); void PRINTLM(); @@ -34,6 +35,7 @@ void PRINTSF(); void PRINTSYMBOL(); void PRINTRANGE(); void PRINTTB(); +void PRINTDPV(); void PRINTFNODE(); void PRINTBF(); @@ -82,12 +84,16 @@ Obj p; PRINTBYTEARRAY(vl,(BYTEARRAY)p); break; case O_QUOTE: PRINTQUOTE(vl,(QUOTE)p); break; + case O_QUOTEARG: + PRINTQUOTEARG(vl,(QUOTEARG)p); break; case O_SYMBOL: PRINTSYMBOL((SYMBOL)p); break; case O_RANGE: PRINTRANGE(vl,(RANGE)p); break; case O_TB: PRINTTB(vl,(TB)p); break; + case O_DPV: + PRINTDPV(vl,(DPV)p); break; default: break; } @@ -239,6 +245,21 @@ VECT vect; } } +void PRINTDPV(vl,d) +VL vl; +DPV d; +{ + int i; + DP *ptr; + + PUTS("modvect("); + for ( i = 0, ptr = BDY(d); i < d->len; i++ ) { + if ( i != 0 ) PUTS(","); + PRINTEXPR(vl,(Obj)ptr[i]); + } + PUTS(")"); +} + void PRINTMAT(vl,mat) VL vl; MAT mat; @@ -980,13 +1001,27 @@ QUOTE quote; } } +void PRINTQUOTEARG(vl,quote) +VL vl; +QUOTEARG quote; +{ + PUTS("<...quoted...>"); +} + void PRINTTB(VL vl,TB p) { int i; +#if defined(SPRINT) + char *ptr,*e; + for ( i = 0, ptr = buf+strlen(OUT); i < p->next; i++ ) + for ( e = p->body[i]; *e; *ptr++ = *e++ ); + *ptr = 0; +#else for ( i = 0; i < p->next; i++ ) { PUTS(p->body[i]); } +#endif } void PRINTUP2(p)