FAUST compiler  0.9.9.6b8
sigvisitor.cpp
Go to the documentation of this file.
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 }