1 /* 2 GUIDO Library 3 Copyright (C) 2006-2008 Grame 4 5 This library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 This library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with this library; if not, write to the Free Software 17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 19 Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France 20 research@grame.fr 21 22 */ 23 24 #ifndef __guidoExpTypes__ 25 #define __guidoExpTypes__ 26 27 #include "guidoExprEnum.h" 28 #include "gar_smartpointer.h" 29 30 namespace guidolang 31 { 32 33 class guidoexpression; 34 class guidoScoreExpr; 35 class guidoNamedExpr; 36 template<int T> class guidonode; 37 38 typedef guido::SMARTP<guidoexpression> Sguidoexpression; 39 typedef guido::SMARTP<guidonode<kAbstract> > SguidoAbstractExpr; 40 typedef guido::SMARTP<guidonode<kApply> > SguidoApplyExpr; 41 typedef guido::SMARTP<guidonode<kTransp> > SguidoTranspExpr; 42 typedef guido::SMARTP<guidonode<kStretch> > SguidoStretchExpr; 43 typedef guido::SMARTP<guidonode<kSeqOp> > SguidoSeqExpr; 44 typedef guido::SMARTP<guidonode<kParOp> > SguidoParExpr; 45 typedef guido::SMARTP<guidonode<kHeadOp> > SguidoHeadExpr; 46 typedef guido::SMARTP<guidonode<kTailOp> > SguidoTailExpr; 47 typedef guido::SMARTP<guidonode<kTopOp> > SguidoTopExpr; 48 typedef guido::SMARTP<guidonode<kBottomOp> > SguidoBottomExpr; 49 typedef guido::SMARTP<guidonode<kIdent> > SguidoIdentExpr; 50 typedef guido::SMARTP<guidonode<kGrouped> > SguidoGroupedExpr; 51 52 typedef guido::SMARTP<guidoScoreExpr> SguidoScoreExpr; 53 typedef guido::SMARTP<guidoNamedExpr> SguidoNamedExpr; 54 55 class guidoEnv; 56 typedef guido::SMARTP<guidoEnv> SguidoEnv; 57 class guidovalue; 58 typedef guido::SMARTP<guidovalue> Sguidovalue; 59 60 61 } // namespace 62 63 #endif 64