X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/c7f552fd8888da2f0d8cfb228fe0f28d3df3a12c..b4b6f2ea75b9f0f3ca918f5b84016610bf7a4d4f:/interpretor/preprocessor/faust-0.9.47mr3/compiler/boxes/ppbox.hh diff --git a/interpretor/preprocessor/faust-0.9.47mr3/compiler/boxes/ppbox.hh b/interpretor/preprocessor/faust-0.9.47mr3/compiler/boxes/ppbox.hh new file mode 100644 index 0000000..33eaa14 --- /dev/null +++ b/interpretor/preprocessor/faust-0.9.47mr3/compiler/boxes/ppbox.hh @@ -0,0 +1,84 @@ +/************************************************************************ + ************************************************************************ + 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. + ************************************************************************ + ************************************************************************/ + + + +#ifndef _PPBOX_H +#define _PPBOX_H + +/********************************************************************** + - ppbox.h : pretty print box expressions (projet FAUST) - + + + Historique : + ----------- + 12-07-2002 first implementation (yo) + +***********************************************************************/ + +#include +#include +#include "boxes.hh" + +using namespace std; + +//void fppbox (FILE* fout, Tree box, int priority=0); +//inline void ppbox (Tree box, int priority=0) { fppbox(stdout, box, priority); } + + +const char * prim0name(CTree *(*ptr) ()); +const char * prim1name(CTree *(*ptr) (CTree *)); +const char * prim2name(CTree *(*ptr) (CTree *, CTree *)); +const char * prim3name(CTree *(*ptr) (CTree *, CTree *, CTree *)); +const char * prim4name(CTree *(*ptr) (CTree *, CTree *, CTree *, CTree *)); +const char * prim5name(CTree *(*ptr) (CTree *, CTree *, CTree *, CTree *, CTree *)); + + +// box pretty printer. +// usage : out << boxpp(aBoxExp); + +class boxpp +{ + Tree box; + int priority; +public: + boxpp(Tree b, int p=0) : box(b), priority(p) {} + ostream& print (ostream& fout) const; +}; + +inline ostream& operator << (ostream& file, const boxpp& bpp) { return bpp.print(file); } + + +// box pretty printer. +// usage : out << boxpp(aBoxExp); + +class envpp +{ + Tree fEnv; +public: + envpp(Tree e) : fEnv(e) {} + ostream& print (ostream& fout) const; +}; + +inline ostream& operator << (ostream& file, const envpp& epp) { return epp.print(file); } + + +#endif