|
FAUST compiler
0.9.9.6b8
|
#include "signals.hh"

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) |
| void printSignal | ( | Tree | sig, |
| FILE * | out = stdout, |
||
| int | prec = 0 |
||
| ) |
Definition at line 85 of file sigprint.cpp.
{
int i;
double r;
Tree x, y, z, u, le, id;
if ( isSigInt(sig, &i) ) { fprintf(out, "%d", i); }
else if ( isSigReal(sig, &r) ) { fprintf(out, "%f", r); }
else if ( isSigInput(sig, &i) ) { fprintf(out, "IN%d", i); }
else if ( isSigOutput(sig, &i, x) ) { fprintf(out, "OUT%d := ", i); printSignal(x, out, 0); }
else if ( isSigBinOp(sig, &i, x, y) ) {
if (prec > binopprec[i]) fputs("(", out);
printSignal(x,out,binopprec[i]); fputs(binopname[i], out); printSignal(y, out, binopprec[i]);
if (prec > binopprec[i]) fputs(")", out);
}
else if ( isSigDelay1(sig, x) ) { fputs("mem(", out); printSignal(x,out,0); fputs(")", out); }
else if ( isSigPrefix(sig, x, y) ) { fputs("prefix(", out); printSignal(x,out,0); fputs(",", out); printSignal(y,out,0); fputs(")", out); }
else if ( isSigAttach(sig, x, y) ) { fputs("attach(", out); printSignal(x,out,0); fputs(",", out); printSignal(y,out,0); fputs(")", out); }
else if ( isSigFixDelay(sig, x, y) ) {
if (prec > 4) fputs("(", out);
printSignal(x,out,4); fputs("@", out); printSignal(y, out, 4);
if (prec > 4) fputs(")", out);
}
else if ( isProj(sig, &i, x) ) { printSignal(x,out,prec); fprintf(out, "#%d", i); }
else if ( isRef(sig, i) ) { fprintf(out, "$%d", i); }
else if ( isRef(sig, x) ) { print(x, out); }
else if ( isRec(sig, le)) { fputs("\\_.", out); printSignal(le, out, prec); }
else if ( isRec(sig, x, le)) { fputs("\\", out); print(x,out); fputs(".", out); printSignal(le, out, prec); }
else if ( isSigTable(sig, id, x, y) ) { fputs("table(", out); printSignal(x,out,0); fputc(',', out); printSignal(y,out,0); fputc(')', out); }
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); }
else if ( isSigRDTbl(sig, x, y) ) { printSignal(x,out,0); fputc('[', out); printSignal(y,out,0); fputc(']', out); }
else if (isSigDocConstantTbl(sig,x,y)) { fputs("sigDocConstantTbl(", out); printSignal(x,out,0); fputc(',', out);
printSignal(y,out,0); fputc(')', out); }
else if (isSigDocWriteTbl(sig,x,y,z,u)) { fputs("sigDocWriteTbl(", out); printSignal(x,out,0); fputc(',', out);
printSignal(y,out,0); fputc(',', out);
printSignal(z,out,0); fputc(',', out);
printSignal(u,out,0); fputc(')', out); }
else if (isSigDocAccessTbl(sig,x,y)) { fputs("sigDocAccessTbl(", out); printSignal(x,out,0); fputc(',', out);
printSignal(y,out,0); fputc(')', out); }
else if ( isSigGen(sig, x) ) { printSignal(x,out,prec); }
else if ( isSigIntCast(sig, x) ) { fputs("int(", out); printSignal(x,out,0); fputs(")", out); }
else if ( isSigFloatCast(sig, x) ) { fputs("float(", out); printSignal(x,out,0); fputs(")", out); }
else if (isList(sig)) {
char sep = '{';
do {
fputc(sep, out);
printSignal(hd(sig), out, 0);
sep=',';
sig = tl(sig);
} while (isList(sig));
fputc('}', out);
}
else
print(sig, out);
}
| void printSigType | ( | int | n, |
| int | v, | ||
| int | c | ||
| ) |
Definition at line 64 of file sigprint.cpp.
{
putchar("NR"[n]);
putchar("KB S"[v]);
putchar("CI X"[c]);
}
1.8.0