|
FAUST compiler
0.9.9.6b8
|
00001 #include "sigvisitor.hh" 00002 #include <iostream> 00003 #include <assert.h> 00004 #include "xtended.hh" 00005 00006 00007 using namespace std; 00008 00017 void sigvisitor::visit(Tree sig) 00018 { 00019 int i; 00020 double r; 00021 Tree sel, s1, s2, s3, s4, ff, id, ls, l, var, body, type, name, file, cur, min, max, step; 00022 00023 assert(sig); 00024 00025 if (isSigInt(sig, &i)) visitInt (sig, i); 00026 00027 else if (isSigReal(sig, &r)) visitReal (sig, r); 00028 00029 00030 else if (isSigInput(sig, &i)) visitInput (sig, i); 00031 00032 else if (isSigOutput(sig, &i, s1)) visitOutput (sig, i, s1); 00033 00034 00035 else if (isSigDelay1(sig, s1)) visitDelay1 (sig, s1); 00036 00037 else if (isSigPrefix(sig, s1, s2)) visitPrefix (sig, s1, s2); 00038 00039 else if (isSigFixDelay(sig, s1, s2)) visitFixDelay (sig, s1, s2); 00040 00041 00042 else if (isSigBinOp(sig, &i, s1, s2)) visitBinOp(sig, i, s1, s2); 00043 00044 else if (isSigIntCast(sig, s1)) visitIntCast(sig, s1); 00045 00046 else if (isSigFloatCast(sig, s1)) visitFloatCast(sig, s1); 00047 00048 else if (isSigFFun(sig, ff, ls)) visitFFun(sig,ff,ls); 00049 00050 else if (isSigFConst(sig,type,name,file)) visitFConst(sig,type,name,file); 00051 00052 else if (isSigFVar(sig,type,name,file)) visitFVar(sig,type,name,file); 00053 00054 00055 //--------------- 00056 00057 else if (isSigButton(sig, l)) visitButton(sig, l); 00058 00059 else if (isSigCheckbox(sig, l)) visitCheckbox(sig, l); 00060 00061 else if (isSigVSlider(sig, l, cur, min, max, step)) visitVSlider(sig, l, cur, min, max, step); 00062 00063 else if (isSigHSlider(sig, l, cur, min, max, step)) visitHSlider(sig, l, cur, min, max, step); 00064 00065 else if (isSigNumEntry(sig, l, cur, min, max, step)) visitNumEntry(sig, l, cur, min, max, step); 00066 00067 else if (isSigHBargraph(sig, l, min, max, s1)) visitHBargraph(sig, l, min, max, s1); 00068 00069 else if (isSigVBargraph(sig, l, min, max, s1)) visitVBargraph(sig, l, min, max, s1); 00070 00071 else if (isSigAttach(sig, s1, s2)) visitAttach(sig, s1, s2); 00072 00073 00074 //------------------------ 00075 00076 else if (isRec(sig, var, body)) visitRec(sig, var, body); 00077 00078 else if (isRef(sig, var)) visitRef(sig, var); 00079 00080 else if (isProj(sig, &i, s1)) visitProj(sig, i, s1); 00081 00082 00083 //---------------------------- 00084 00085 else if (isSigTable(sig, id, s1, s2)) visitTable(sig, id, s1, s2); 00086 00087 else if (isSigWRTbl(sig, id, s1, s2, s3)) visitWRTbl(sig, id, s1, s2, s3); 00088 00089 else if (isSigRDTbl(sig, s1, s2)) visitRDTbl(sig, s1, s2); 00090 00091 else if (isSigGen(sig, s1)) visitGen(sig, s1); 00092 00093 00094 else if (isSigDocConstantTbl(sig, s1, s2)) visitDocConstantTbl(sig, s1, s2); 00095 00096 else if (isSigDocWriteTbl(sig,s1,s2,s3,s4)) visitDocWriteTbl(sig,s1,s2,s3,s4); 00097 00098 else if (isSigDocAccessTbl(sig,s1,s2)) visitDocAccessTbl(sig,s1,s2); 00099 00100 00101 //---------------------------- 00102 00103 else if (isSigSelect2(sig,sel,s1,s2)) visitSelect2(sig,sel,s1,s2); 00104 00105 else if (isSigSelect3(sig,sel,s1,s2,s3)) visitSelect3(sig,sel,s1,s2,s3); 00106 00107 else if (isList(sig)) visitList(sig); 00108 00109 00110 //---------------------------- 00111 00112 else if (isSigTuple(sig,&i,ls)) visitTuple(sig,i,ls); 00113 00114 else if (isSigTupleAccess(sig,s1,s2)) visitTupleAccess(sig,s1,s2); 00115 00116 00117 //---------------------------- 00118 00119 else visitError(sig); 00120 } 00121 00122 void sigvisitor::visitError(Tree sig) 00123 { 00124 cerr << "ERROR visiting signal" << endl; 00125 }
1.8.0