15 |
|
|
16 |
#include "../common/global.h" |
#include "../common/global.h" |
17 |
#include "common.h" |
#include "common.h" |
|
#include "CoreVMFunctions.h" |
|
18 |
|
|
19 |
namespace LinuxSampler { |
namespace LinuxSampler { |
20 |
|
|
66 |
* parser errors, you may pass the VMParserContext object to method |
* parser errors, you may pass the VMParserContext object to method |
67 |
* exec() for actually executing the script. |
* exec() for actually executing the script. |
68 |
* |
* |
69 |
|
* It is your responsibility to free the returned VMParserContext |
70 |
|
* object once you don't need it anymore. |
71 |
|
* |
72 |
* @param s - entire source code of the script to be loaded |
* @param s - entire source code of the script to be loaded |
73 |
* @returns parsed representation of the script |
* @returns parsed representation of the script |
74 |
*/ |
*/ |
85 |
VMParserContext* loadScript(std::istream* is); |
VMParserContext* loadScript(std::istream* is); |
86 |
|
|
87 |
/** |
/** |
88 |
|
* Parses a script's source code (passed as argument @a s to this |
89 |
|
* method), splits that input up in its individual tokens (i.e. |
90 |
|
* keyword, variable name, event name, etc.) and returns all those |
91 |
|
* tokens, for the purpose that the caller can provide syntax syntax |
92 |
|
* highlighting for the passed script. |
93 |
|
* |
94 |
|
* This method is actually not used by the sampler at all, it is rather |
95 |
|
* provided for external script editor applications, to provide them a |
96 |
|
* convenient backend for parsing scripts and providing syntax |
97 |
|
* highlighting. |
98 |
|
* |
99 |
|
* @returns recognized tokens of passed script's source code |
100 |
|
*/ |
101 |
|
std::vector<VMSourceToken> syntaxHighlighting(const String& s); |
102 |
|
|
103 |
|
/** |
104 |
|
* Same as above's syntaxHighlighting() method, but this one reads the |
105 |
|
* script's source code from an input stream object (i.e. stdin or a |
106 |
|
* file). |
107 |
|
* |
108 |
|
* @param is - input stream from which the entire source code of the |
109 |
|
* script is to be read and loaded from |
110 |
|
* @returns recognized tokens of passed script's source code |
111 |
|
*/ |
112 |
|
std::vector<VMSourceToken> syntaxHighlighting(std::istream* is); |
113 |
|
|
114 |
|
/** |
115 |
* Dumps the translated tree of the already parsed script, given by |
* Dumps the translated tree of the already parsed script, given by |
116 |
* argument @a context, to stdout. This method is for debugging purposes |
* argument @a context, to stdout. This method is for debugging purposes |
117 |
* only. |
* only. |
210 |
*/ |
*/ |
211 |
std::map<String,int> builtInConstIntVariables() OVERRIDE; |
std::map<String,int> builtInConstIntVariables() OVERRIDE; |
212 |
|
|
213 |
|
/** |
214 |
|
* Returns all built-in dynamic variables. This method returns a STL |
215 |
|
* map, where the map's key is the dynamic variable's name and the |
216 |
|
* map's value is the pointer to the actual object implementing the |
217 |
|
* behavior which is actually generating the content of the dynamic |
218 |
|
* variable. |
219 |
|
* |
220 |
|
* This method is re-implemented by deriving classes to add more use |
221 |
|
* case specific built-in dynamic variables. |
222 |
|
*/ |
223 |
|
std::map<String,VMDynVar*> builtInDynamicVariables() OVERRIDE; |
224 |
|
|
225 |
VMEventHandler* currentVMEventHandler(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions) |
VMEventHandler* currentVMEventHandler(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions) |
226 |
VMParserContext* currentVMParserContext(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions) |
VMParserContext* currentVMParserContext(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions) |
227 |
VMExecContext* currentVMExecContext(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions) |
VMExecContext* currentVMExecContext(); //TODO: should be protected (only usable during exec() calls, intended only for VMFunctions) |
229 |
protected: |
protected: |
230 |
VMEventHandler* m_eventHandler; |
VMEventHandler* m_eventHandler; |
231 |
ParserContext* m_parserContext; |
ParserContext* m_parserContext; |
232 |
CoreVMFunction_message fnMessage; |
class CoreVMFunction_message* m_fnMessage; |
233 |
CoreVMFunction_exit fnExit; |
class CoreVMFunction_exit* m_fnExit; |
234 |
CoreVMFunction_wait fnWait; |
class CoreVMFunction_wait* m_fnWait; |
235 |
CoreVMFunction_abs fnAbs; |
class CoreVMFunction_abs* m_fnAbs; |
236 |
CoreVMFunction_random fnRandom; |
class CoreVMFunction_random* m_fnRandom; |
237 |
CoreVMFunction_num_elements fnNumElements; |
class CoreVMFunction_num_elements* m_fnNumElements; |
238 |
|
class CoreVMDynVar_NKSP_REAL_TIMER* m_varRealTimer; |
239 |
|
class CoreVMDynVar_NKSP_PERF_TIMER* m_varPerfTimer; |
240 |
}; |
}; |
241 |
|
|
242 |
} // namespace LinuxSampler |
} // namespace LinuxSampler |