version 1.6, 2004/12/17 03:09:08 |
version 1.13, 2006/08/27 22:17:28 |
|
|
/* $OpenXM: OpenXM_contrib2/asir2000/io/pexpr_body.c,v 1.5 2004/12/02 13:48:43 noro Exp $ */ |
/* $OpenXM: OpenXM_contrib2/asir2000/io/pexpr_body.c,v 1.12 2006/04/16 00:51:14 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 20 void PRINTGFMMAT(); |
|
Line 21 void PRINTGFMMAT(); |
|
void PRINTBYTEARRAY(); |
void PRINTBYTEARRAY(); |
void PRINTQUOTE(); |
void PRINTQUOTE(); |
void PRINTQUOTEARG(); |
void PRINTQUOTEARG(); |
|
void PRINTNBP(); |
void PRINTERR(); |
void PRINTERR(); |
void PRINTCPLX(); |
void PRINTCPLX(); |
void PRINTLM(); |
void PRINTLM(); |
|
|
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: |
|
|
PRINTQUOTE(vl,(QUOTE)p); break; |
PRINTQUOTE(vl,(QUOTE)p); break; |
case O_QUOTEARG: |
case O_QUOTEARG: |
PRINTQUOTEARG(vl,(QUOTEARG)p); break; |
PRINTQUOTEARG(vl,(QUOTEARG)p); break; |
|
case O_NBP: |
|
PRINTNBP(vl,(NBP)p); break; |
case O_SYMBOL: |
case O_SYMBOL: |
PRINTSYMBOL((SYMBOL)p); break; |
PRINTSYMBOL((SYMBOL)p); break; |
case O_RANGE: |
case O_RANGE: |
|
|
} |
} |
} |
} |
|
|
|
/* 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 * col + 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 506 void PRINTFNODE(FNODE f,int paren) |
|
Line 557 void PRINTFNODE(FNODE f,int paren) |
|
PUTS(((ARF)FA0(f))->name); |
PUTS(((ARF)FA0(f))->name); |
PRINTFNODE((FNODE)FA2(f),1); |
PRINTFNODE((FNODE)FA2(f),1); |
break; |
break; |
|
case I_NARYOP: |
|
t = (NODE)FA1(f); |
|
PRINTFNODE((FNODE)BDY(t),1); |
|
for ( t = NEXT(t); t; t = NEXT(t) ) { |
|
PUTS(((ARF)FA0(f))->name); |
|
PRINTFNODE((FNODE)BDY(t),1); |
|
} |
|
break; |
case I_COP: |
case I_COP: |
switch( (cid)FA0(f) ) { |
switch( (cid)FA0(f) ) { |
case C_EQ: opname = ("=="); break; |
case C_EQ: opname = ("=="); break; |
Line 557 void PRINTFNODE(FNODE f,int paren) |
|
Line 616 void PRINTFNODE(FNODE f,int paren) |
|
/* lists */ |
/* lists */ |
case I_LIST: PUTS("["); PRINTFNODENODE((NODE)FA0(f)); PUTS("]"); break; |
case I_LIST: PUTS("["); PRINTFNODENODE((NODE)FA0(f)); PUTS("]"); break; |
/* function */ |
/* function */ |
case I_FUNC: |
case I_FUNC: case I_FUNC_QARG: |
if ( !strcmp(((FUNC)FA0(f))->name,"@pi") ) PUTS("@pi"); |
if ( !strcmp(((FUNC)FA0(f))->name,"@pi") ) PUTS("@pi"); |
else if ( !strcmp(((FUNC)FA0(f))->name,"@e") ) PUTS("@e"); |
else if ( !strcmp(((FUNC)FA0(f))->name,"@e") ) PUTS("@e"); |
else { |
else { |
|
|
QUOTEARG quote; |
QUOTEARG quote; |
{ |
{ |
PUTS("<...quoted...>"); |
PUTS("<...quoted...>"); |
|
} |
|
|
|
void PRINTNBP(VL vl,NBP p) |
|
{ |
|
NODE t; |
|
NBM m; |
|
int d,i; |
|
unsigned int *b; |
|
if ( !p ) PUTS("0"); |
|
else { |
|
for ( t = BDY(p); t; t = NEXT(t) ) { |
|
m = (NBM)BDY(t); |
|
PUTS("("); |
|
PRINTEXPR(vl,(Obj)m->c); |
|
PUTS(")*"); |
|
d = m->d; |
|
b = m->b; |
|
if ( d ) |
|
for ( i = 0; i < d; i++ ) { |
|
if ( NBM_GET(b,i) ) PUTS("x"); |
|
else PUTS("y"); |
|
} |
|
else PUTS("1"); |
|
if ( NEXT(t) ) PUTS("+"); |
|
} |
|
} |
} |
} |
|
|
void PRINTTB(VL vl,TB p) |
void PRINTTB(VL vl,TB p) |