=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/cpexpr.c,v retrieving revision 1.14 retrieving revision 1.18 diff -u -p -r1.14 -r1.18 --- OpenXM_contrib2/asir2000/io/cpexpr.c 2002/09/02 05:16:07 1.14 +++ OpenXM_contrib2/asir2000/io/cpexpr.c 2004/03/03 09:25:30 1.18 @@ -44,12 +44,15 @@ * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. - * $OpenXM: OpenXM_contrib2/asir2000/io/cpexpr.c,v 1.13 2001/10/09 01:36:20 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/io/cpexpr.c,v 1.17 2004/02/09 08:23:30 noro Exp $ */ #include "ca.h" #include "parse.h" #include "al.h" #include "base.h" +#if PARI +#include "genpari.h" +#endif extern int hex_output,fortran_output,double_output,real_digit; @@ -78,6 +81,9 @@ extern int hex_output,fortran_output,double_output,rea #define PRINTGFMMAT length_gfmmat #define PRINTBYTEARRAY length_bytearray #define PRINTQUOTE length_QUOTE +#define PRINTSYMBOL length_SYMBOL +#define PRINTRANGE length_RANGE +#define PRINTTB length_TB #define PRINTERR length_err #define PRINTLF length_lf #define PRINTLOP length_lop @@ -105,6 +111,9 @@ void PRINTGF2MAT(); void PRINTGFMMAT(); void PRINTBYTEARRAY(); void PRINTQUOTE(); +void PRINTSYMBOL(); +void PRINTRANGE(); +void PRINTTB(); void PRINTERR(); void PRINTCPLX(); void PRINTLM(); @@ -127,11 +136,10 @@ int estimate_length(VL vl,pointer p) return total_length; } -#if PARI +#if defined(PARI) void PRINTBF(BF a) { char *str; - char *GENtostr(); char *GENtostr0(); void myoutbrute(); @@ -187,6 +195,12 @@ void PRINTEXPR(VL vl,pointer p) PRINTBYTEARRAY(vl,(BYTEARRAY)p); break; case O_QUOTE: PRINTQUOTE(vl,(QUOTE)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; default: break; } @@ -228,7 +242,7 @@ void PRINTNUM(Num q) case N_A: PUTS("("); PRINTR(ALG,(R)BDY((Alg)q)); PUTS(")"); break; -#if PARI +#if defined(PARI) case N_B: PRINTBF((BF)q); break; #endif @@ -537,6 +551,26 @@ void PRINTQUOTE(VL vl,QUOTE quote) { /* <...quoted...> */ total_length += 20; +} + +void PRINTSYMBOL(SYMBOL sym) +{ + total_length += strlen(sym->name); +} + +void PRINTRANGE(VL vl,RANGE r) +{ + PUTS("range("); PRINTEXPR(vl,r->start); + PUTS(","); PRINTEXPR(vl,r->end); PUTS(")"); +} + +void PRINTTB(VL vl,TB p) +{ + int i; + + for ( i = 0; i < p->next; i++ ) { + total_length += strlen(p->body[i]); + } } void PRINTERR(VL vl,ERR e)