FAUST compiler  0.9.9.6b8
Public Member Functions | List of all members
sigvisitor Struct Referenceabstract

#include <sigvisitor.hh>

Inheritance diagram for sigvisitor:
Inheritance graph
[legend]

Public Member Functions

void visit (Tree sig)
 Infere the type of a term according to its surrounding type environment. More...
 
virtual void visitError (Tree sig)
 
virtual ~sigvisitor ()
 
virtual void visitInt (Tree sig, int i)=0
 
virtual void visitReal (Tree sig, double r)=0
 
virtual void visitInput (Tree sig, int i)=0
 
virtual void visitOutput (Tree sig, int i, Tree s)=0
 
virtual void visitDelay1 (Tree sig, Tree s)=0
 
virtual void visitPrefix (Tree sig, Tree s1, Tree s2)=0
 
virtual void visitFixDelay (Tree sig, Tree s1, Tree s2)=0
 
virtual void visitBinOp (Tree sig, int opcode, Tree s1, Tree s2)=0
 
virtual void visitIntCast (Tree sig, Tree s)=0
 
virtual void visitFloatCast (Tree sig, Tree s)=0
 
virtual void visitFFun (Tree sig, Tree ff, Tree ls)=0
 
virtual void visitFConst (Tree sig, Tree type, Tree name, Tree file)=0
 
virtual void visitFVar (Tree sig, Tree type, Tree name, Tree file)=0
 
virtual void visitButton (Tree sig, Tree label)=0
 
virtual void visitCheckbox (Tree sig, Tree label)=0
 
virtual void visitVSlider (Tree sig, Tree label, Tree cur, Tree min, Tree max, Tree step)=0
 
virtual void visitHSlider (Tree sig, Tree label, Tree cur, Tree min, Tree max, Tree step)=0
 
virtual void visitNumEntry (Tree sig, Tree label, Tree cur, Tree min, Tree max, Tree step)=0
 
virtual void visitVBargraph (Tree sig, Tree label, Tree min, Tree max, Tree s1)=0
 
virtual void visitHBargraph (Tree sig, Tree label, Tree min, Tree max, Tree s1)=0
 
virtual void visitAttach (Tree sig, Tree s1, Tree s2)=0
 
virtual void visitRec (Tree sig, Tree var, Tree body)=0
 
virtual void visitRef (Tree sig, Tree var)=0
 
virtual void visitProj (Tree sig, int i, Tree s1)=0
 
virtual void visitTable (Tree sig, Tree id, Tree s1, Tree s2)=0
 
virtual void visitWRTbl (Tree sig, Tree id, Tree s1, Tree s2, Tree s3)=0
 
virtual void visitRDTbl (Tree sig, Tree s1, Tree s2)=0
 
virtual void visitGen (Tree sig, Tree s1)=0
 
virtual void visitDocConstantTbl (Tree sig, Tree s1, Tree s2)=0
 
virtual void visitDocWriteTbl (Tree sig, Tree s1, Tree s2, Tree s3, Tree s4)=0
 
virtual void visitDocAccessTbl (Tree sig, Tree s1, Tree s2)=0
 
virtual void visitSelect2 (Tree sig, Tree sel, Tree s1, Tree s2)=0
 
virtual void visitSelect3 (Tree sig, Tree sel, Tree s1, Tree s2, Tree s3)=0
 
virtual void visitTuple (Tree sig, int mod, Tree ls)=0
 
virtual void visitTupleAccess (Tree sig, Tree ts, Tree idx)=0
 
virtual void visitList (Tree lsig)=0
 

Detailed Description

Definition at line 6 of file sigvisitor.hh.

Constructor & Destructor Documentation

virtual sigvisitor::~sigvisitor ( )
inlinevirtual

Definition at line 14 of file sigvisitor.hh.

14 {}

Member Function Documentation

void sigvisitor::visit ( Tree  sig)

Infere the type of a term according to its surrounding type environment.

Parameters
sigthe signal to aanlyze
envthe type environment
Returns
the type of sig according to environment env

Definition at line 17 of file sigvisitor.cpp.

References isList(), isProj(), isRec(), isRef(), isSigAttach(), isSigBinOp(), isSigButton(), isSigCheckbox(), isSigDelay1(), isSigDocAccessTbl(), isSigDocConstantTbl(), isSigDocWriteTbl(), isSigFConst(), isSigFFun(), isSigFixDelay(), isSigFloatCast(), isSigFVar(), isSigGen(), isSigHBargraph(), isSigHSlider(), isSigInput(), isSigInt(), isSigIntCast(), isSigNumEntry(), isSigOutput(), isSigPrefix(), isSigRDTbl(), isSigReal(), isSigSelect2(), isSigSelect3(), isSigTable(), isSigTuple(), isSigTupleAccess(), isSigVBargraph(), isSigVSlider(), isSigWRTbl(), max(), min(), and name().

Referenced by fullvisitor::visitAttach(), fullvisitor::visitBinOp(), fullvisitor::visitDelay1(), fullvisitor::visitFFun(), fullvisitor::visitFixDelay(), fullvisitor::visitFloatCast(), fullvisitor::visitGen(), fullvisitor::visitHBargraph(), fullvisitor::visitIntCast(), fullvisitor::visitList(), fullvisitor::visitOutput(), fullvisitor::visitPrefix(), fullvisitor::visitProj(), fullvisitor::visitRDTbl(), fullvisitor::visitRec(), fullvisitor::visitSelect2(), fullvisitor::visitSelect3(), fullvisitor::visitTable(), fullvisitor::visitTuple(), fullvisitor::visitTupleAccess(), fullvisitor::visitVBargraph(), and fullvisitor::visitWRTbl().

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 }
virtual void visitOutput(Tree sig, int i, Tree s)=0
bool isSigRDTbl(Tree s, Tree &t, Tree &i)
Definition: signals.cpp:77
bool isSigHSlider(Tree s)
Definition: signals.cpp:217
virtual void visitFFun(Tree sig, Tree ff, Tree ls)=0
bool isSigFConst(Tree s)
Definition: signals.cpp:138
bool isSigPrefix(Tree t, Tree &t0, Tree &t1)
Definition: signals.cpp:66
virtual void visitRDTbl(Tree sig, Tree s1, Tree s2)=0
virtual void visitTupleAccess(Tree sig, Tree ts, Tree idx)=0
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
virtual void visitIntCast(Tree sig, Tree s)=0
bool isSigSelect2(Tree t, Tree &selector, Tree &s1, Tree &s2)
Definition: signals.cpp:116
virtual void visitSelect2(Tree sig, Tree sel, Tree s1, Tree s2)=0
virtual void visitNumEntry(Tree sig, Tree label, Tree cur, Tree min, Tree max, Tree step)=0
virtual void visitButton(Tree sig, Tree label)=0
virtual void visitPrefix(Tree sig, Tree s1, Tree s2)=0
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
virtual void visitAttach(Tree sig, Tree s1, Tree s2)=0
bool isSigFixDelay(Tree t, Tree &t0, Tree &t1)
Definition: signals.cpp:62
virtual void visitInt(Tree sig, int i)=0
virtual void visitDocWriteTbl(Tree sig, Tree s1, Tree s2, Tree s3, Tree s4)=0
virtual void visitBinOp(Tree sig, int opcode, Tree s1, Tree s2)=0
virtual void visitFVar(Tree sig, Tree type, Tree name, Tree file)=0
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
virtual void visitCheckbox(Tree sig, Tree label)=0
virtual void visitList(Tree lsig)=0
virtual void visitProj(Tree sig, int i, Tree s1)=0
virtual void visitWRTbl(Tree sig, Tree id, Tree s1, Tree s2, Tree s3)=0
virtual void visitInput(Tree sig, int i)=0
bool isSigReal(Tree t, double *r)
Definition: signals.cpp:44
bool isRef(Tree t, int &level)
is t a de Bruijn recursive reference
virtual void visitVBargraph(Tree sig, Tree label, Tree min, Tree max, Tree s1)=0
virtual void visitHSlider(Tree sig, Tree label, Tree cur, Tree min, Tree max, Tree step)=0
virtual void visitDocConstantTbl(Tree sig, Tree s1, Tree s2)=0
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
bool isSigBinOp(Tree s, int *op, Tree &x, Tree &y)
Definition: signals.cpp:126
virtual void visitVSlider(Tree sig, Tree label, Tree cur, Tree min, Tree max, Tree step)=0
bool isSigAttach(Tree t, Tree &t0, Tree &t1)
Definition: signals.cpp:291
virtual void visitTuple(Tree sig, int mod, Tree ls)=0
virtual void visitError(Tree sig)
Definition: sigvisitor.cpp:122
virtual void visitFloatCast(Tree sig, Tree s)=0
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
virtual void visitReal(Tree sig, double r)=0
bool isRec(Tree t, Tree &body)
is t a de Bruijn recursive tree
bool isSigInt(Tree t, int *i)
Definition: signals.cpp:41
virtual void visitFixDelay(Tree sig, Tree s1, Tree s2)=0
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
virtual void visitTable(Tree sig, Tree id, Tree s1, Tree s2)=0
bool isSigFVar(Tree s)
Definition: signals.cpp:144
bool isSigIntCast(Tree t)
Definition: signals.cpp:184
virtual void visitRef(Tree sig, Tree var)=0
virtual void visitRec(Tree sig, Tree var, Tree body)=0
virtual void visitHBargraph(Tree sig, Tree label, Tree min, Tree max, Tree s1)=0
bool isProj(Tree t, int *i, Tree &rgroup)
Definition: signals.cpp:151
double min(double x, double y)
Definition: interval.hh:59
virtual void visitSelect3(Tree sig, Tree sel, Tree s1, Tree s2, Tree s3)=0
virtual void visitFConst(Tree sig, Tree type, Tree name, Tree file)=0
bool isSigOutput(Tree t, int *i, Tree &t0)
Definition: signals.cpp:52
bool isSigButton(Tree s)
Definition: signals.cpp:199
virtual void visitDelay1(Tree sig, Tree s)=0
virtual void visitGen(Tree sig, Tree s1)=0
virtual void visitDocAccessTbl(Tree sig, Tree s1, Tree s2)=0

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void sigvisitor::visitAttach ( Tree  sig,
Tree  s1,
Tree  s2 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitBinOp ( Tree  sig,
int  opcode,
Tree  s1,
Tree  s2 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitButton ( Tree  sig,
Tree  label 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitCheckbox ( Tree  sig,
Tree  label 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitDelay1 ( Tree  sig,
Tree  s 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitDocAccessTbl ( Tree  sig,
Tree  s1,
Tree  s2 
)
pure virtual
virtual void sigvisitor::visitDocConstantTbl ( Tree  sig,
Tree  s1,
Tree  s2 
)
pure virtual
virtual void sigvisitor::visitDocWriteTbl ( Tree  sig,
Tree  s1,
Tree  s2,
Tree  s3,
Tree  s4 
)
pure virtual
void sigvisitor::visitError ( Tree  sig)
virtual

Definition at line 122 of file sigvisitor.cpp.

123 {
124  cerr << "ERROR visiting signal" << endl;
125 }
virtual void sigvisitor::visitFConst ( Tree  sig,
Tree  type,
Tree  name,
Tree  file 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitFFun ( Tree  sig,
Tree  ff,
Tree  ls 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitFixDelay ( Tree  sig,
Tree  s1,
Tree  s2 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitFloatCast ( Tree  sig,
Tree  s 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitFVar ( Tree  sig,
Tree  type,
Tree  name,
Tree  file 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitGen ( Tree  sig,
Tree  s1 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitHBargraph ( Tree  sig,
Tree  label,
Tree  min,
Tree  max,
Tree  s1 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitHSlider ( Tree  sig,
Tree  label,
Tree  cur,
Tree  min,
Tree  max,
Tree  step 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitInput ( Tree  sig,
int  i 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitInt ( Tree  sig,
int  i 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitIntCast ( Tree  sig,
Tree  s 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitList ( Tree  lsig)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitNumEntry ( Tree  sig,
Tree  label,
Tree  cur,
Tree  min,
Tree  max,
Tree  step 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitOutput ( Tree  sig,
int  i,
Tree  s 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitPrefix ( Tree  sig,
Tree  s1,
Tree  s2 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitProj ( Tree  sig,
int  i,
Tree  s1 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitRDTbl ( Tree  sig,
Tree  s1,
Tree  s2 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitReal ( Tree  sig,
double  r 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitRec ( Tree  sig,
Tree  var,
Tree  body 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitRef ( Tree  sig,
Tree  var 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitSelect2 ( Tree  sig,
Tree  sel,
Tree  s1,
Tree  s2 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitSelect3 ( Tree  sig,
Tree  sel,
Tree  s1,
Tree  s2,
Tree  s3 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitTable ( Tree  sig,
Tree  id,
Tree  s1,
Tree  s2 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitTuple ( Tree  sig,
int  mod,
Tree  ls 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitTupleAccess ( Tree  sig,
Tree  ts,
Tree  idx 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitVBargraph ( Tree  sig,
Tree  label,
Tree  min,
Tree  max,
Tree  s1 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitVSlider ( Tree  sig,
Tree  label,
Tree  cur,
Tree  min,
Tree  max,
Tree  step 
)
pure virtual

Implemented in fullvisitor.

virtual void sigvisitor::visitWRTbl ( Tree  sig,
Tree  id,
Tree  s1,
Tree  s2,
Tree  s3 
)
pure virtual

Implemented in fullvisitor.


The documentation for this struct was generated from the following files: