version 1.1, 2004/03/17 03:22:47 |
version 1.7, 2004/12/18 16:50:10 |
|
|
/* $OpenXM$ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/io/pexpr_body.c,v 1.6 2004/12/17 03:09:08 noro Exp $ */ |
|
|
#define PRINTHAT (fortran_output?PUTS("**"):PUTS("^")) |
#define PRINTHAT (fortran_output?PUTS("**"):PUTS("^")) |
|
|
|
|
void PRINTLIST(); |
void PRINTLIST(); |
void PRINTVECT(); |
void PRINTVECT(); |
void PRINTMAT(); |
void PRINTMAT(); |
|
void PRINTIMAT(); /* IMAT */ |
void PRINTSTR(); |
void PRINTSTR(); |
void PRINTCOMP(); |
void PRINTCOMP(); |
void PRINTDP(); |
void PRINTDP(); |
Line 19 void PRINTGF2MAT(); |
|
Line 20 void PRINTGF2MAT(); |
|
void PRINTGFMMAT(); |
void PRINTGFMMAT(); |
void PRINTBYTEARRAY(); |
void PRINTBYTEARRAY(); |
void PRINTQUOTE(); |
void PRINTQUOTE(); |
|
void PRINTQUOTEARG(); |
void PRINTERR(); |
void PRINTERR(); |
void PRINTCPLX(); |
void PRINTCPLX(); |
void PRINTLM(); |
void PRINTLM(); |
|
|
void PRINTSYMBOL(); |
void PRINTSYMBOL(); |
void PRINTRANGE(); |
void PRINTRANGE(); |
void PRINTTB(); |
void PRINTTB(); |
|
void PRINTDPV(); |
void PRINTFNODE(); |
void PRINTFNODE(); |
void PRINTBF(); |
void PRINTBF(); |
|
void PRINTDAlg(); |
|
|
void PRINTEXPR(vl,p) |
void PRINTEXPR(vl,p) |
VL vl; |
VL vl; |
Obj p; |
Obj p; |
{ |
{ |
#if defined(FPRINT) |
|
if ( asir_texmacs && !user_print_function ) printf("\2verbatim:"); |
|
#endif |
|
if ( !p ) { |
if ( !p ) { |
PRINTR(vl,(R)p); |
PRINTR(vl,(R)p); |
} else |
} else |
|
|
PRINTVECT(vl,(VECT)p); break; |
PRINTVECT(vl,(VECT)p); break; |
case O_MAT: |
case O_MAT: |
PRINTMAT(vl,(MAT)p); break; |
PRINTMAT(vl,(MAT)p); break; |
|
/* IMAT */ |
|
case O_IMAT: |
|
PRINTIMAT(vl,(IMAT)p); break; |
|
/* IMAT */ |
case O_STR: |
case O_STR: |
PRINTSTR((STRING)p); break; |
PRINTSTR((STRING)p); break; |
case O_COMP: |
case O_COMP: |
|
|
PRINTBYTEARRAY(vl,(BYTEARRAY)p); break; |
PRINTBYTEARRAY(vl,(BYTEARRAY)p); break; |
case O_QUOTE: |
case O_QUOTE: |
PRINTQUOTE(vl,(QUOTE)p); break; |
PRINTQUOTE(vl,(QUOTE)p); break; |
|
case O_QUOTEARG: |
|
PRINTQUOTEARG(vl,(QUOTEARG)p); break; |
case O_SYMBOL: |
case O_SYMBOL: |
PRINTSYMBOL((SYMBOL)p); break; |
PRINTSYMBOL((SYMBOL)p); break; |
case O_RANGE: |
case O_RANGE: |
PRINTRANGE(vl,(RANGE)p); break; |
PRINTRANGE(vl,(RANGE)p); break; |
case O_TB: |
case O_TB: |
PRINTTB(vl,(TB)p); break; |
PRINTTB(vl,(TB)p); break; |
|
case O_DPV: |
|
PRINTDPV(vl,(DPV)p); break; |
default: |
default: |
break; |
break; |
} |
} |
#if defined(FPRINT) |
|
if ( asir_texmacs && !user_print_function ) |
|
{ putchar('\5'); fflush(stdout); } |
|
#endif |
|
} |
} |
|
|
#if defined(FPRINT) |
#if defined(FPRINT) |
|
|
} |
} |
} |
} |
|
|
|
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) |
void PRINTMAT(vl,mat) |
VL vl; |
VL vl; |
MAT mat; |
MAT mat; |
|
|
} |
} |
} |
} |
|
|
|
/* IMAT */ |
|
#if !defined(CPRINT) |
|
void PRINTIMAT(vl,xmat) |
|
VL vl; |
|
IMAT xmat; |
|
{ |
|
int i,j,c; |
|
int row, col, cr; |
|
IMATC Im; |
|
IENT ent; |
|
|
|
row = xmat->row; |
|
col = xmat->col; |
|
Im = (pointer)xmat->root; |
|
if ( xmat->clen == 0 ) { |
|
for(j = 0; j< row; j++) { |
|
PUTS("( "); |
|
for(i = 0; i < col; i++) PUTS("0 "); |
|
PUTS(")"); |
|
if ( j < row - 1 ) PUTS("\n"); |
|
} |
|
return; |
|
} |
|
c = -1; |
|
GetNextIent(&Im, &ent, &c); |
|
for(j = 0; j < row; j++) { |
|
PUTS("( "); |
|
for(i = 0; i < col; i++) { |
|
cr = j * row + i; |
|
if( ent.cr == cr ) { |
|
PRINTEXPR(vl, (pointer)ent.body); PUTS(" "); |
|
GetNextIent(&Im, &ent, &c); |
|
} else { |
|
PUTS("0 "); |
|
} |
|
} |
|
PUTS(")"); |
|
if ( j < row - 1 ) PUTS("\n"); |
|
} |
|
} |
|
#endif |
|
/* IMAT */ |
|
|
void PRINTLIST(vl,list) |
void PRINTLIST(vl,list) |
VL vl; |
VL vl; |
LIST list; |
LIST list; |
Line 579 void PRINTNUM(q) |
|
Line 642 void PRINTNUM(q) |
|
Num q; |
Num q; |
{ |
{ |
char real_format[20]; |
char real_format[20]; |
|
DAlg d; |
|
DP nm; |
|
Q dn; |
|
|
if ( !q ) { |
if ( !q ) { |
PUTS("0"); |
PUTS("0"); |
|
|
case N_GFSN: |
case N_GFSN: |
PRINTUM(BDY((GFSN)q)); |
PRINTUM(BDY((GFSN)q)); |
break; |
break; |
|
case N_DA: |
|
d = (DAlg)q; |
|
nm = d->nm; |
|
dn = d->dn; |
|
if ( SGN((Q)dn) == -1 ) PUTS("-"); |
|
PUTS("("); |
|
PRINTDP(CO,((DAlg)q)->nm); |
|
PUTS(")"); |
|
if ( !UNIN(NM(dn)) ) { |
|
PUTS("/"); |
|
PRINTN(NM(dn)); |
|
} |
|
break; |
} |
} |
} |
} |
|
|
|
|
} |
} |
} |
} |
|
|
|
void PRINTQUOTEARG(vl,quote) |
|
VL vl; |
|
QUOTEARG quote; |
|
{ |
|
PUTS("<...quoted...>"); |
|
} |
|
|
void PRINTTB(VL vl,TB p) |
void PRINTTB(VL vl,TB p) |
{ |
{ |
int i; |
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++ ) { |
for ( i = 0; i < p->next; i++ ) { |
PUTS(p->body[i]); |
PUTS(p->body[i]); |
} |
} |
|
#endif |
} |
} |
|
|
void PRINTUP2(p) |
void PRINTUP2(p) |