FAUST compiler  0.9.9.6b8
sigvisitor.cpp
Go to the documentation of this file.
1 #include "sigvisitor.hh"
2 #include <iostream>
3 #include <assert.h>
4 #include "xtended.hh"
5 
6 
7 using namespace std;
8 
18 {
19  int i;
20  double r;
21  Tree sel, s1, s2, s3, s4, ff, id, ls, l, var, body, type, name, file, cur, min, max, step;
22 
23  assert(sig);
24 
25  if (isSigInt(sig, &i)) visitInt (sig, i);
26 
27  else if (isSigReal(sig, &r)) visitReal (sig, r);
28 
29 
30  else if (isSigInput(sig, &i)) visitInput (sig, i);
31 
32  else if (isSigOutput(sig, &i, s1)) visitOutput (sig, i, s1);
33 
34 
35  else if (isSigDelay1(sig, s1)) visitDelay1 (sig, s1);
36 
37  else if (isSigPrefix(sig, s1, s2)) visitPrefix (sig, s1, s2);
38 
39  else if (isSigFixDelay(sig, s1, s2)) visitFixDelay (sig, s1, s2);
40 
41 
42  else if (isSigBinOp(sig, &i, s1, s2)) visitBinOp(sig, i, s1, s2);
43 
44  else if (isSigIntCast(sig, s1)) visitIntCast(sig, s1);
45 
46  else if (isSigFloatCast(sig, s1)) visitFloatCast(sig, s1);
47 
48  else if (isSigFFun(sig, ff, ls)) visitFFun(sig,ff,ls);
49 
50  else if (isSigFConst(sig,type,name,file)) visitFConst(sig,type,name,file);
51 
52  else if (isSigFVar(sig,type,name,file)) visitFVar(sig,type,name,file);
53 
54 
55  //---------------
56 
57  else if (isSigButton(sig, l)) visitButton(sig, l);
58 
59  else if (isSigCheckbox(sig, l)) visitCheckbox(sig, l);
60 
61  else if (isSigVSlider(sig, l, cur, min, max, step)) visitVSlider(sig, l, cur, min, max, step);
62 
63  else if (isSigHSlider(sig, l, cur, min, max, step)) visitHSlider(sig, l, cur, min, max, step);
64 
65  else if (isSigNumEntry(sig, l, cur, min, max, step)) visitNumEntry(sig, l, cur, min, max, step);
66 
67  else if (isSigHBargraph(sig, l, min, max, s1)) visitHBargraph(sig, l, min, max, s1);
68 
69  else if (isSigVBargraph(sig, l, min, max, s1)) visitVBargraph(sig, l, min, max, s1);
70 
71  else if (isSigAttach(sig, s1, s2)) visitAttach(sig, s1, s2);
72 
73 
74  //------------------------
75 
76  else if (isRec(sig, var, body)) visitRec(sig, var, body);
77 
78  else if (isRef(sig, var)) visitRef(sig, var);
79 
80  else if (isProj(sig, &i, s1)) visitProj(sig, i, s1);
81 
82 
83  //----------------------------
84 
85  else if (isSigTable(sig, id, s1, s2)) visitTable(sig, id, s1, s2);
86 
87  else if (isSigWRTbl(sig, id, s1, s2, s3)) visitWRTbl(sig, id, s1, s2, s3);
88 
89  else if (isSigRDTbl(sig, s1, s2)) visitRDTbl(sig, s1, s2);
90 
91  else if (isSigGen(sig, s1)) visitGen(sig, s1);
92 
93 
94  else if (isSigDocConstantTbl(sig, s1, s2)) visitDocConstantTbl(sig, s1, s2);
95 
96  else if (isSigDocWriteTbl(sig,s1,s2,s3,s4)) visitDocWriteTbl(sig,s1,s2,s3,s4);
97 
98  else if (isSigDocAccessTbl(sig,s1,s2)) visitDocAccessTbl(sig,s1,s2);
99 
100 
101  //----------------------------
102 
103  else if (isSigSelect2(sig,sel,s1,s2)) visitSelect2(sig,sel,s1,s2);
104 
105  else if (isSigSelect3(sig,sel,s1,s2,s3)) visitSelect3(sig,sel,s1,s2,s3);
106 
107  else if (isList(sig)) visitList(sig);
108 
109 
110  //----------------------------
111 
112  else if (isSigTuple(sig,&i,ls)) visitTuple(sig,i,ls);
113 
114  else if (isSigTupleAccess(sig,s1,s2)) visitTupleAccess(sig,s1,s2);
115 
116 
117  //----------------------------
118 
119  else visitError(sig);
120 }
121 
123 {
124  cerr << "ERROR visiting signal" << endl;
125 }
bool isSigRDTbl(Tree s, Tree &t, Tree &i)
Definition: signals.cpp:77
bool isSigHSlider(Tree s)
Definition: signals.cpp:217
bool isSigFConst(Tree s)
Definition: signals.cpp:138
bool isSigPrefix(Tree t, Tree &t0, Tree &t1)
Definition: signals.cpp:66
bool isSigCheckbox(Tree s)
Definition: signals.cpp:205
bool isSigFFun(Tree s, Tree &ff, Tree &largs)
Definition: signals.cpp:133
bool isSigNumEntry(Tree s)
Definition: signals.cpp:257
bool isSigTuple(Tree s, int *mode, Tree &ls)
Definition: signals.cpp:380
bool isSigSelect2(Tree t, Tree &selector, Tree &s1, Tree &s2)
Definition: signals.cpp:116
A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches.
Definition: tree.hh:109
bool isSigInput(Tree t, int *i)
Definition: signals.cpp:48
bool isSigFixDelay(Tree t, Tree &t0, Tree &t1)
Definition: signals.cpp:62
bool isSigVBargraph(Tree s)
Definition: signals.cpp:285
bool isSigSelect3(Tree t, Tree &selector, Tree &s1, Tree &s2, Tree &s3)
Definition: signals.cpp:119
bool isSigVSlider(Tree s)
Definition: signals.cpp:237
double max(double x, double y)
Definition: interval.hh:60
bool isSigGen(Tree t, Tree &x)
Definition: signals.cpp:91
bool isSigReal(Tree t, double *r)
Definition: signals.cpp:44
bool isRef(Tree t, int &level)
is t a de Bruijn recursive reference
bool isSigTupleAccess(Tree s, Tree &ts, Tree &idx)
Definition: signals.cpp:385
bool isSigHBargraph(Tree s)
Definition: signals.cpp:279
bool isSigDocConstantTbl(Tree t, Tree &n, Tree &sig)
Definition: signals.cpp:99
bool isList(Tree l)
Definition: list.hh:138
bool isSigTable(Tree t, Tree &id, Tree &n, Tree &sig)
Definition: signals.cpp:85
void visit(Tree sig)
Infere the type of a term according to its surrounding type environment.
Definition: sigvisitor.cpp:17
bool isSigBinOp(Tree s, int *op, Tree &x, Tree &y)
Definition: signals.cpp:126
bool isSigAttach(Tree t, Tree &t0, Tree &t1)
Definition: signals.cpp:291
virtual void visitError(Tree sig)
Definition: sigvisitor.cpp:122
bool isSigDocAccessTbl(Tree t, Tree &tbl, Tree &ridx)
Definition: signals.cpp:107
bool isSigWRTbl(Tree u, Tree &id, Tree &t, Tree &i, Tree &s)
Definition: signals.cpp:81
const char * name(Symbol *sym)
Returns the name of a symbol.
Definition: symbol.hh:98
bool isRec(Tree t, Tree &body)
is t a de Bruijn recursive tree
bool isSigInt(Tree t, int *i)
Definition: signals.cpp:41
bool isSigDocWriteTbl(Tree t, Tree &n, Tree &sig, Tree &widx, Tree &wsig)
Definition: signals.cpp:103
bool isSigDelay1(Tree t, Tree &t0)
Definition: signals.cpp:58
bool isSigFloatCast(Tree t)
Definition: signals.cpp:187
bool isSigFVar(Tree s)
Definition: signals.cpp:144
bool isSigIntCast(Tree t)
Definition: signals.cpp:184
bool isProj(Tree t, int *i, Tree &rgroup)
Definition: signals.cpp:151
double min(double x, double y)
Definition: interval.hh:59
bool isSigOutput(Tree t, int *i, Tree &t0)
Definition: signals.cpp:52
bool isSigButton(Tree s)
Definition: signals.cpp:199