LibMusicXML  3.18
lpsrScheme.h
1 /*
2  MusicXML Library
3  Copyright (C) Grame 2006-2013
4 
5  This Source Code Form is subject to the terms of the Mozilla Public
6  License, v. 2.0. If a copy of the MPL was not distributed with this
7  file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 
9  Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
10  research@grame.fr
11 */
12 
13 #ifndef ___lpsrScheme___
14 #define ___lpsrScheme___
15 
16 #include <string>
17 
18 #include "lpsrElements.h"
19 
20 #include "lpsrOah.h"
21 
22 
23 using namespace std;
24 
25 namespace MusicXML2
26 {
27 
28 //______________________________________________________________________________
30 {
31  public:
32 
33  // data types
34  // ------------------------------------------------------
35 
36  enum lpsrCommentedKind {
37  kCommentedYes, kCommentedNo };
38 
39  static string commentedKindAsString (
40  lpsrCommentedKind commentedKind);
41 
42  enum lpsrEndlKind {
43  kEndlNone, kEndlOnce, kEndlTwice };
44 
45  static string endlKindAsString (
46  lpsrEndlKind endlKind);
47 
48  static string const g_SchemeVariableNoUnit;
49  static string const g_SchemeVariableNoComment;
50 
51  // creation from MusicXML
52  // ------------------------------------------------------
53 
54  static SMARTP<lpsrSchemeVariable> create (
55  int inputLineNumber,
56  lpsrCommentedKind commentedKind,
57  string variableName,
58  string value,
59  string comment,
60  lpsrEndlKind endlKind);
61 
62  protected:
63 
64  // constructors/destructor
65  // ------------------------------------------------------
66 
68  int inputLineNumber,
69  lpsrCommentedKind commentedKind,
70  string variableName,
71  string value,
72  string comment,
73  lpsrEndlKind endlKind);
74 
75  virtual ~lpsrSchemeVariable ();
76 
77  public:
78 
79  // set and get
80  // ------------------------------------------------------
81 
82  string getVariableName () const { return fVariableName; }
83 
84  void setVariableValue (string value)
85  { fVariableValue = value; }
86 
87  string getVariableValue () const { return fVariableValue; }
88 
89  lpsrCommentedKind getCommentedKind () const { return fCommentedKind; }
90 
91  string getComment () const
92  { return fComment; }
93 
94  lpsrEndlKind getEndlKind () const
95  { return fEndlKind; }
96 
97  // services
98  // ------------------------------------------------------
99 
100  public:
101 
102  // visitors
103  // ------------------------------------------------------
104 
105  virtual void acceptIn (basevisitor* v);
106  virtual void acceptOut (basevisitor* v);
107 
108  virtual void browseData (basevisitor* v);
109 
110  public:
111 
112  // print
113  // ------------------------------------------------------
114 
115  virtual void print (ostream& os) const;
116 
117  private:
118 
119  // fields
120  // ------------------------------------------------------
121 
122  lpsrCommentedKind fCommentedKind;
123 
124  string fVariableName;
125  string fVariableValue;
126 
127  string fComment;
128 
129  lpsrEndlKind fEndlKind;
130 
131 };
133 EXP ostream& operator<< (ostream& os, const S_lpsrSchemeVariable& elt);
134 
135 //______________________________________________________________________________
137 {
138  public:
139 
140  // creation from MusicXML
141  // ------------------------------------------------------
142 
143  static SMARTP<lpsrSchemeFunction> create (
144  int inputLineNumber,
145  string functionName,
146  string functionDescription,
147  string functionCode);
148 
149  protected:
150 
151  // constructors/destructor
152  // ------------------------------------------------------
153 
155  int inputLineNumber,
156  string functionName,
157  string functionDescription,
158  string functionCode);
159 
160  virtual ~lpsrSchemeFunction ();
161 
162  public:
163 
164  // set and get
165  // ------------------------------------------------------
166 
167  string getFunctionName () const
168  { return fFunctionName; }
169 
170  string getFunctionDescription () const
171  { return fFunctionDescription; }
172 
173  string getFunctionCode () const
174  { return fFunctionCode; }
175 
176  // services
177  // ------------------------------------------------------
178 
179  public:
180 
181  // visitors
182  // ------------------------------------------------------
183 
184  virtual void acceptIn (basevisitor* v);
185  virtual void acceptOut (basevisitor* v);
186 
187  virtual void browseData (basevisitor* v);
188 
189  public:
190 
191  // print
192  // ------------------------------------------------------
193 
194  virtual void print (ostream& os) const;
195 
196  private:
197 
198  // fields
199  // ------------------------------------------------------
200 
201  string fFunctionName;
202 
203  string fFunctionDescription;
204 
205  string fFunctionCode;
206 };
208 EXP ostream& operator<< (ostream& os, const S_lpsrSchemeFunction& elt);
209 
210 
211 }
212 
213 
214 #endif
MusicXML2::lpsrElement
Definition: lpsrElements.h:24
MusicXML2::lpsrSchemeVariable
Definition: lpsrScheme.h:30
MusicXML2::lpsrSchemeFunction
Definition: lpsrScheme.h:137
MusicXML2::SMARTP< lpsrSchemeVariable >
MusicXML2::basevisitor
Definition: basevisitor.h:25