=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/io/cpexpr.c,v retrieving revision 1.3 retrieving revision 1.11 diff -u -p -r1.3 -r1.11 --- OpenXM_contrib2/asir2000/io/cpexpr.c 2000/08/21 08:31:38 1.3 +++ OpenXM_contrib2/asir2000/io/cpexpr.c 2001/04/20 02:34:23 1.11 @@ -23,7 +23,7 @@ * shall be made on your publication or presentation in any form of the * results obtained by use of the SOFTWARE. * (4) In the event that you modify the SOFTWARE, you shall notify FLL by - * e-mail at risa-admin@flab.fujitsu.co.jp of the detailed specification + * e-mail at risa-admin@sec.flab.fujitsu.co.jp of the detailed specification * for such modification or the source code of the modified part of the * SOFTWARE. * @@ -44,14 +44,14 @@ * 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.2 2000/02/07 03:14:39 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/io/cpexpr.c,v 1.10 2001/03/15 05:52:12 noro Exp $ */ #include "ca.h" #include "parse.h" #include "al.h" #include "base.h" -extern int hex_output,fortran_output; +extern int hex_output,fortran_output,double_output,real_digit; #define PRINTHAT (fortran_output?PUTS("**"):PUTS("^")) @@ -76,6 +76,8 @@ extern int hex_output,fortran_output; #define PRINTUI length_ui #define PRINTGF2MAT length_gf2mat #define PRINTGFMMAT length_gfmmat +#define PRINTBYTEARRAY length_bytearray +#define PRINTQUOTE length_QUOTE #define PRINTERR length_err #define PRINTLF length_lf #define PRINTLOP length_lop @@ -99,6 +101,8 @@ void PRINTDP(); void PRINTUI(); void PRINTGF2MAT(); void PRINTGFMMAT(); +void PRINTBYTEARRAY(); +void PRINTQUOTE(); void PRINTERR(); void PRINTCPLX(); void PRINTLM(); @@ -122,8 +126,14 @@ BF a; { char *str; char *GENtostr(); + char *GENtostr0(); + void myoutbrute(); - str = GENtostr(a->body); + if ( double_output ) { + str = GENtostr0(a->body,myoutbrute); + } else { + str = GENtostr(a->body); + } total_length += strlen(str); free(str); } @@ -169,6 +179,10 @@ pointer p; PRINTLF(vl,(F)p); break; case O_GFMMAT: PRINTGFMMAT(vl,(GFMMAT)p); break; + case O_BYTEARRAY: + PRINTBYTEARRAY(vl,(BYTEARRAY)p); break; + case O_QUOTE: + PRINTQUOTE(vl,(QUOTE)p); break; default: break; } @@ -204,7 +218,10 @@ Num q; } break; case N_R: - total_length += 20; /* XXX */ + if ( double_output ) + total_length += 400+real_digit; /* XXX */ + else + total_length += 20+real_digit; /* XXX */ break; case N_A: PUTS("("); PRINTR(ALG,(R)BDY((Alg)q)); PUTS(")"); @@ -229,6 +246,9 @@ Num q; case N_GFPN: PRINTUP((UP)(((GFPN)q)->body)); break; + case N_GFS: + total_length += 13; /* XXX */ + break; default: break; } @@ -526,6 +546,22 @@ GFMMAT mat; } PUTS("]\n"); } +} + +void PRINTBYTEARRAY(vl,array) +VL vl; +BYTEARRAY array; +{ + /* |xx xx ... xx| */ + total_length += 1+3*array->len; +} + +void PRINTQUOTE(vl,quote) +VL vl; +QUOTE quote; +{ + /* <...quoted...> */ + total_length += 20; } void PRINTERR(vl,e)