X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/c7f552fd8888da2f0d8cfb228fe0f28d3df3a12c..b4b6f2ea75b9f0f3ca918f5b84016610bf7a4d4f:/interpretor/faust-0.9.47mr3/compiler/headers/boxes.hh diff --git a/interpretor/faust-0.9.47mr3/compiler/headers/boxes.hh b/interpretor/faust-0.9.47mr3/compiler/headers/boxes.hh deleted file mode 100644 index fd52d17..0000000 --- a/interpretor/faust-0.9.47mr3/compiler/headers/boxes.hh +++ /dev/null @@ -1,326 +0,0 @@ -#ifndef _BOXES_ -#define _BOXES_ - -/************************************************************************ - ************************************************************************ - FAUST compiler - Copyright (C) 2003-2004 GRAME, Centre National de Creation Musicale - --------------------------------------------------------------------- - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - ************************************************************************ - ************************************************************************/ - - - -/***************************************************************************** -****************************************************************************** - FAUST BOX ALGEBRA - Y. Orlarey, (c) Grame 2002 ------------------------------------------------------------------------------- -box ::= i | f | p0 | p1 | p3 - | _ | ! | a:b | a<:b | a,b | a:>b | a~b - - History : - --------- - 2002-06-06 : First version - -****************************************************************************** -*****************************************************************************/ - -#include "tlib.hh" -#include "signals.hh" - -struct Automaton; - -/***************************************************************************** -****************************************************************************** - - The Box Language - -****************************************************************************** -*****************************************************************************/ - - -/***************************************************************************** - Identifiers -*****************************************************************************/ - -Tree boxIdent(const char* name); -bool isBoxIdent(Tree t); -bool isBoxIdent(Tree t, const char** name); - - -/***************************************************************************** - Numbers -*****************************************************************************/ - -Tree boxInt(int n); -Tree boxReal(double n); - -bool isBoxInt(Tree t); -bool isBoxReal(Tree t); - -bool isBoxInt(Tree t, int* i); -bool isBoxReal(Tree t, double* r); - - -/***************************************************************************** - Wire and Cut -*****************************************************************************/ - -Tree boxWire(); -Tree boxCut(); - -bool isBoxWire(Tree t); -bool isBoxCut(Tree t); - - -/***************************************************************************** - Symbolic Boxes with symbolic slots -*****************************************************************************/ - -Tree boxSlot(int id); -Tree boxSymbolic(Tree slot, Tree body); - -bool isBoxSlot(Tree t); -bool isBoxSymbolic(Tree t); - -bool isBoxSlot(Tree t, int* id); -bool isBoxSymbolic(Tree t, Tree& slot, Tree& body); - - -/***************************************************************************** - Composition of Boxes -*****************************************************************************/ - -Tree boxSeq (Tree x, Tree y); -Tree boxPar (Tree x, Tree y); -Tree boxRec (Tree x, Tree y); -Tree boxSplit (Tree x, Tree y); -Tree boxMerge (Tree x, Tree y); - -bool isBoxSeq (Tree t, Tree& x, Tree& y); -bool isBoxPar (Tree t, Tree& x, Tree& y); -bool isBoxRec (Tree t, Tree& x, Tree& y); -bool isBoxSplit (Tree t, Tree& x, Tree& y); -bool isBoxMerge (Tree t, Tree& x, Tree& y); - -/***************************************************************************** - Algorithmic Composition of Boxes -*****************************************************************************/ - -Tree boxIPar(Tree x, Tree y, Tree z); -Tree boxISeq(Tree x, Tree y, Tree z); -Tree boxISum(Tree x, Tree y, Tree z); -Tree boxIProd(Tree x, Tree y, Tree z); - -bool isBoxIPar(Tree t, Tree& x, Tree& y, Tree& z); -bool isBoxISeq(Tree t, Tree& x, Tree& y, Tree& z); -bool isBoxISum(Tree t, Tree& x, Tree& y, Tree& z); -bool isBoxIProd(Tree t, Tree& x, Tree& y, Tree& z); - - -/***************************************************************************** - Lambda-Calculus of Boxes -*****************************************************************************/ - -Tree buildBoxAbstr (Tree x, Tree y); -Tree buildBoxAppl (Tree x, Tree y); - -Tree boxAbstr (Tree x, Tree y); -Tree boxAppl (Tree x, Tree y); - -bool isBoxAbstr (Tree t); -bool isBoxAppl (Tree t); - -bool isBoxAbstr (Tree t, Tree& x, Tree& y); -bool isBoxAppl (Tree t, Tree& x, Tree& y); - -Tree closure (Tree abstr, Tree genv, Tree vis, Tree lenv); - -bool isClosure (Tree t, Tree& abstr, Tree& genv, Tree& vis, Tree& lenv); - -// for foo(x,y).faa expressions -Tree boxAccess (Tree exp, Tree id); -bool isBoxAccess(Tree t, Tree& exp, Tree& id); - - -/***************************************************************************** - Boxes with local definitions -*****************************************************************************/ - -Tree boxWithLocalDef (Tree body, Tree ldef); -bool isBoxWithLocalDef (Tree t, Tree& body, Tree& ldef); - - -/***************************************************************************** - Modification of local definitions -*****************************************************************************/ - -Tree boxModifLocalDef (Tree body, Tree ldef); -bool isBoxModifLocalDef (Tree t, Tree& body, Tree& ldef); - - -/***************************************************************************** - Error Boxe -*****************************************************************************/ - -Tree boxError(); -bool isBoxError(Tree t); - -/***************************************************************************** - Primitive Boxes (n -> 1) -*****************************************************************************/ - -typedef Tree (*prim0)(); -typedef Tree (*prim1)(Tree x); -typedef Tree (*prim2)(Tree x, Tree y); -typedef Tree (*prim3)(Tree x, Tree y, Tree z); -typedef Tree (*prim4)(Tree w, Tree x, Tree y, Tree z); -typedef Tree (*prim5)(Tree v, Tree w, Tree x, Tree y, Tree z); - -Tree boxPrim0 (prim0 foo); -Tree boxPrim1 (prim1 foo); -Tree boxPrim2 (prim2 foo); -Tree boxPrim3 (prim3 foo); -Tree boxPrim4 (prim4 foo); -Tree boxPrim5 (prim5 foo); - -bool isBoxPrim0 (Tree s); -bool isBoxPrim1 (Tree s); -bool isBoxPrim2 (Tree s); -bool isBoxPrim3 (Tree s); -bool isBoxPrim4 (Tree s); -bool isBoxPrim5 (Tree s); - -bool isBoxPrim0 (Tree s, prim0* p); -bool isBoxPrim1 (Tree s, prim1* p); -bool isBoxPrim2 (Tree s, prim2* p); -bool isBoxPrim3 (Tree s, prim3* p); -bool isBoxPrim4 (Tree s, prim4* p); -bool isBoxPrim5 (Tree s, prim5* p); - - -/***************************************************************************** - Foreign Functions -*****************************************************************************/ - -Tree boxFFun (Tree ff); -bool isBoxFFun (Tree s); -bool isBoxFFun (Tree s, Tree& ff); - - -Tree boxFConst (Tree type, Tree name, Tree file); -bool isBoxFConst (Tree s); -bool isBoxFConst (Tree s, Tree& type, Tree& name, Tree& file); - - -Tree boxFVar (Tree type, Tree name, Tree file); -bool isBoxFVar (Tree s); -bool isBoxFVar (Tree s, Tree& type, Tree& name, Tree& file); - - -/***************************************************************************** - Modules -*****************************************************************************/ - -Tree boxEnvironment(); -bool isBoxEnvironment (Tree s); - -Tree boxComponent (Tree filename); -bool isBoxComponent (Tree s, Tree& filename); - -Tree boxLibrary (Tree filename); -bool isBoxLibrary (Tree s, Tree& filename); - -Tree importFile(Tree filename); -bool isImportFile(Tree s, Tree& filename); - - -/***************************************************************************** - User Interface Elements -*****************************************************************************/ - -Tree boxButton (Tree label); -bool isBoxButton (Tree s); -bool isBoxButton (Tree s, Tree& label); - -Tree boxCheckbox (Tree label); -bool isBoxCheckbox (Tree s); -bool isBoxCheckbox (Tree s, Tree& label); - -Tree boxVSlider (Tree label, Tree cur, Tree min, Tree max, Tree step); -bool isBoxVSlider (Tree s); -bool isBoxVSlider (Tree s, Tree& label, Tree& cur, Tree& min, Tree& max, Tree& step); - -Tree boxHSlider (Tree label, Tree cur, Tree min, Tree max, Tree step); -bool isBoxHSlider (Tree s); -bool isBoxHSlider (Tree s, Tree& label, Tree& cur, Tree& min, Tree& max, Tree& step); - -Tree boxNumEntry (Tree label, Tree cur, Tree min, Tree max, Tree step); -bool isBoxNumEntry (Tree s); -bool isBoxNumEntry (Tree s, Tree& label, Tree& cur, Tree& min, Tree& max, Tree& step); - -Tree boxVGroup (Tree label, Tree x); -bool isBoxVGroup (Tree s); -bool isBoxVGroup (Tree s, Tree& label, Tree& x); - -Tree boxHGroup (Tree label, Tree x); -bool isBoxHGroup (Tree s); -bool isBoxHGroup (Tree s, Tree& label, Tree& x); - -Tree boxTGroup (Tree label, Tree x); -bool isBoxTGroup (Tree s); -bool isBoxTGroup (Tree s, Tree& label, Tree& x); - -// GUI outputs -Tree boxVBargraph (Tree label, Tree min, Tree max); -bool isBoxVBargraph (Tree s); -bool isBoxVBargraph (Tree s, Tree& label, Tree& min, Tree& max); - -Tree boxHBargraph (Tree label, Tree min, Tree max); -bool isBoxHBargraph (Tree s); -bool isBoxHBargraph (Tree s, Tree& label, Tree& min, Tree& max); - - -/***************************************************************************** - case (pattern matching) -*****************************************************************************/ -Tree boxCase (Tree rules); -bool isBoxCase (Tree s); -bool isBoxCase (Tree s, Tree& rules); - -Tree boxPatternMatcher (Automaton* a, int state, Tree env, Tree origRules, Tree revParamList); -bool isBoxPatternMatcher (Tree s); -bool isBoxPatternMatcher (Tree s, Automaton*& a, int& state, Tree& env, Tree& origRules, Tree& revParamList); - -// wrap an id into a pattern variable -Tree boxPatternVar (Tree id); -bool isBoxPatternVar(Tree s, Tree& id); - - -/***************************************************************************** -****************************************************************************** - - Box Algorithms - -****************************************************************************** -*****************************************************************************/ - -// return the number of input -bool getBoxType (Tree box, int* inum, int* onum); - - -#endif