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