sigprint.hh File Reference

#include "signals.hh"
Include dependency graph for sigprint.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void printSigType (int n, int v, int c)
void printSignal (Tree sig, FILE *out=stdout, int prec=0)

Function Documentation

void printSignal ( Tree  sig,
FILE *  out = stdout,
int  prec = 0 
)

Definition at line 85 of file sigprint.cpp.

00086 {
00087     int     i;
00088     double  r;
00089     Tree     x, y, z, u, le, id;
00090         
00091          if ( isSigInt(sig, &i) )           { fprintf(out, "%d", i);    }
00092     else if ( isSigReal(sig, &r) )          { fprintf(out, "%f", r);    }
00093     else if ( isSigInput(sig, &i) )         { fprintf(out, "IN%d", i);  }
00094     else if ( isSigOutput(sig, &i, x) )     { fprintf(out, "OUT%d := ", i); printSignal(x, out, 0); }
00095     
00096     else if ( isSigBinOp(sig, &i, x, y) )   { 
00097         if (prec > binopprec[i]) fputs("(", out); 
00098         printSignal(x,out,binopprec[i]); fputs(binopname[i], out); printSignal(y, out, binopprec[i]); 
00099         if (prec > binopprec[i]) fputs(")", out);   
00100     }
00101     else if ( isSigDelay1(sig, x) )         { fputs("mem(", out); printSignal(x,out,0); fputs(")", out);        }
00102     else if ( isSigPrefix(sig, x, y) )      { fputs("prefix(", out); printSignal(x,out,0); fputs(",", out);  printSignal(y,out,0); fputs(")", out);     }
00103     else if ( isSigAttach(sig, x, y) )      { fputs("attach(", out); printSignal(x,out,0); fputs(",", out);  printSignal(y,out,0); fputs(")", out);     }
00104     else if ( isSigFixDelay(sig, x, y) )    { 
00105         if (prec > 4) fputs("(", out); 
00106         printSignal(x,out,4); fputs("@", out); printSignal(y, out, 4); 
00107         if (prec > 4) fputs(")", out);  
00108     }
00109 
00110     else if ( isProj(sig, &i, x) )          { printSignal(x,out,prec); fprintf(out, "#%d", i);      }
00111     else if ( isRef(sig, i) )               { fprintf(out, "$%d", i);   }
00112     else if ( isRef(sig, x) )               { print(x, out);            }
00113     else if ( isRec(sig, le))               { fputs("\\_.", out); printSignal(le, out, prec);   }
00114     else if ( isRec(sig, x, le))            { fputs("\\", out); print(x,out); fputs(".", out); printSignal(le, out, prec);  }
00115     
00116     else if ( isSigTable(sig, id, x, y) )   { fputs("table(", out); printSignal(x,out,0); fputc(',', out); printSignal(y,out,0); fputc(')', out);   }
00117     else if ( isSigWRTbl(sig, id, x, y, z) ){ printSignal(x,out,0); fputc('[',out); printSignal(y,out,0); fputs("] := (", out); printSignal(z,out,0); fputc(')', out);   }
00118     else if ( isSigRDTbl(sig, x, y) )       { printSignal(x,out,0); fputc('[', out); printSignal(y,out,0); fputc(']', out);   }
00119 
00120     else if (isSigDocConstantTbl(sig,x,y))  { fputs("sigDocConstantTbl(", out); printSignal(x,out,0); fputc(',', out);
00121                                                                                 printSignal(y,out,0); fputc(')', out);   }
00122 
00123     else if (isSigDocWriteTbl(sig,x,y,z,u)) { fputs("sigDocWriteTbl(", out);    printSignal(x,out,0); fputc(',', out);
00124                                                                                 printSignal(y,out,0); fputc(',', out);
00125                                                                                 printSignal(z,out,0); fputc(',', out);
00126                                                                                 printSignal(u,out,0); fputc(')', out);   }
00127 
00128     else if (isSigDocAccessTbl(sig,x,y))    { fputs("sigDocAccessTbl(", out);   printSignal(x,out,0); fputc(',', out);
00129                                                                                 printSignal(y,out,0); fputc(')', out);   }
00130 
00131 
00132     else if ( isSigGen(sig, x) )            { printSignal(x,out,prec);              }
00133  
00134     else if ( isSigIntCast(sig, x) )        { fputs("int(", out); printSignal(x,out,0); fputs(")", out);        }
00135     else if ( isSigFloatCast(sig, x) )      { fputs("float(", out); printSignal(x,out,0); fputs(")", out);      }
00136 
00137     else if (isList(sig)) {
00138         char sep = '{';
00139         do { 
00140             fputc(sep, out);
00141             printSignal(hd(sig), out, 0);
00142             sep=',';
00143             sig = tl(sig);
00144         } while (isList(sig));
00145         fputc('}', out);
00146     }
00147     else
00148         print(sig, out);
00149 }

void printSigType ( int  n,
int  v,
int  c 
)

Definition at line 64 of file sigprint.cpp.

00065 {
00066     putchar("NR"[n]);
00067     putchar("KB S"[v]);
00068     putchar("CI X"[c]);
00069 }

Generated on Wed Apr 28 23:46:00 2010 for FAUST compiler by  doxygen 1.6.3