Merge branch 'master' of https://scm.cri.ensmp.fr/git/Faustine
[Faustine.git] / interpretor / faust-0.9.47mr3 / compiler / headers / propagate.hh
1 /************************************************************************
2 ************************************************************************
3 FAUST compiler
4 Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale
5 ---------------------------------------------------------------------
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 ************************************************************************
20 ************************************************************************/
21
22
23
24 #ifndef _PROPAGATE_
25 #define _PROPAGATE_
26
27 #include <vector>
28 #include "boxes.hh"
29 #include "signals.hh"
30
31 ////////////////////////////////////////////////////////////////////////
32 /**
33 * boxPropagateSig : box listOfSignal-> listOfSignal'
34 *
35 * Propage une liste de signaux de l'entrÈe vers la sortie d'une boite
36 * La boite ‡ ÈtÈ annotÈe aec son type
37 */
38 ///////////////////////////////////////////////////////////////////////
39 using namespace std;
40
41 typedef vector<Tree> siglist;
42
43 siglist makeSigInputList (int n);
44 Tree boxPropagateSig (Tree path, Tree box, const siglist& lsig);
45
46 //bool getSigListNickName (Tree t, Tree& id);
47 //void setSigListNickName (const siglist& lsig, const string& nickname);
48
49
50 //siglist makeSigProjList (Tree t, int n);
51 //siglist lrepeat(int n, const siglist& l);
52 //siglist lmerge(int nbelems, int nblignes, Tree src);
53
54
55 /*
56 exemple :
57 Pour calculer 'lsig' la liste des signaux de sortie d'une boite 'box'
58 ‡ n entrÈes on utilisera :
59 lsig = boxPropagateSig(box, makeSigInputList(n));
60 */
61 #endif