29 #ifndef MU_PARSER_DLL_H
30 #define MU_PARSER_DLL_H
44 typedef void* muParserHandle_t;
47 typedef char muChar_t;
49 typedef wchar_t muChar_t;
54 typedef double muFloat_t;
57 typedef muFloat_t(*muFun0_t)(void);
58 typedef muFloat_t(*muFun1_t)(muFloat_t);
59 typedef muFloat_t(*muFun2_t)(muFloat_t, muFloat_t);
60 typedef muFloat_t(*muFun3_t)(muFloat_t, muFloat_t, muFloat_t);
61 typedef muFloat_t(*muFun4_t)(muFloat_t, muFloat_t, muFloat_t, muFloat_t);
62 typedef muFloat_t(*muFun5_t)(muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
63 typedef muFloat_t(*muFun6_t)(muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
64 typedef muFloat_t(*muFun7_t)(muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
65 typedef muFloat_t(*muFun8_t)(muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
66 typedef muFloat_t(*muFun9_t)(muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
67 typedef muFloat_t(*muFun10_t)(muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
69 typedef muFloat_t(*muFunUserData0_t)(
void*);
70 typedef muFloat_t(*muFunUserData1_t)(
void*, muFloat_t);
71 typedef muFloat_t(*muFunUserData2_t)(
void*, muFloat_t, muFloat_t);
72 typedef muFloat_t(*muFunUserData3_t)(
void*, muFloat_t, muFloat_t, muFloat_t);
73 typedef muFloat_t(*muFunUserData4_t)(
void*, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
74 typedef muFloat_t(*muFunUserData5_t)(
void*, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
75 typedef muFloat_t(*muFunUserData6_t)(
void*, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
76 typedef muFloat_t(*muFunUserData7_t)(
void*, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
77 typedef muFloat_t(*muFunUserData8_t)(
void*, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
78 typedef muFloat_t(*muFunUserData9_t)(
void*, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
79 typedef muFloat_t(*muFunUserData10_t)(
void*, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
82 typedef muFloat_t(*muBulkFun0_t)(int, int);
83 typedef muFloat_t(*muBulkFun1_t)(int, int, muFloat_t);
84 typedef muFloat_t(*muBulkFun2_t)(int, int, muFloat_t, muFloat_t);
85 typedef muFloat_t(*muBulkFun3_t)(int, int, muFloat_t, muFloat_t, muFloat_t);
86 typedef muFloat_t(*muBulkFun4_t)(int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
87 typedef muFloat_t(*muBulkFun5_t)(int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
88 typedef muFloat_t(*muBulkFun6_t)(int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
89 typedef muFloat_t(*muBulkFun7_t)(int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
90 typedef muFloat_t(*muBulkFun8_t)(int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
91 typedef muFloat_t(*muBulkFun9_t)(int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
92 typedef muFloat_t(*muBulkFun10_t)(int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
94 typedef muFloat_t(*muBulkFunUserData0_t)(
void*, int, int);
95 typedef muFloat_t(*muBulkFunUserData1_t)(
void*, int, int, muFloat_t);
96 typedef muFloat_t(*muBulkFunUserData2_t)(
void*, int, int, muFloat_t, muFloat_t);
97 typedef muFloat_t(*muBulkFunUserData3_t)(
void*, int, int, muFloat_t, muFloat_t, muFloat_t);
98 typedef muFloat_t(*muBulkFunUserData4_t)(
void*, int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
99 typedef muFloat_t(*muBulkFunUserData5_t)(
void*, int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
100 typedef muFloat_t(*muBulkFunUserData6_t)(
void*, int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
101 typedef muFloat_t(*muBulkFunUserData7_t)(
void*, int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
102 typedef muFloat_t(*muBulkFunUserData8_t)(
void*, int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
103 typedef muFloat_t(*muBulkFunUserData9_t)(
void*, int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
104 typedef muFloat_t(*muBulkFunUserData10_t)(
void*, int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
106 typedef muFloat_t(*muMultFun_t)(
const muFloat_t*, muInt_t);
107 typedef muFloat_t(*muMultFunUserData_t)(
void*,
const muFloat_t*, muInt_t);
109 typedef muFloat_t(*muStrFun1_t)(
const muChar_t*);
110 typedef muFloat_t(*muStrFun2_t)(
const muChar_t*, muFloat_t);
111 typedef muFloat_t(*muStrFun3_t)(
const muChar_t*, muFloat_t, muFloat_t);
112 typedef muFloat_t(*muStrFun4_t)(
const muChar_t*, muFloat_t, muFloat_t, muFloat_t);
113 typedef muFloat_t(*muStrFun5_t)(
const muChar_t*, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
115 typedef muFloat_t(*muStrFunUserData1_t)(
void*,
const muChar_t*);
116 typedef muFloat_t(*muStrFunUserData2_t)(
void*,
const muChar_t*, muFloat_t);
117 typedef muFloat_t(*muStrFunUserData3_t)(
void*,
const muChar_t*, muFloat_t, muFloat_t);
118 typedef muFloat_t(*muStrFunUserData4_t)(
void*,
const muChar_t*, muFloat_t, muFloat_t, muFloat_t);
119 typedef muFloat_t(*muStrFunUserData5_t)(
void*,
const muChar_t*, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
122 typedef void (*muErrorHandler_t)(muParserHandle_t a_hParser);
123 typedef muFloat_t* (*muFacFun_t)(
const muChar_t*,
void*);
124 typedef muInt_t(*muIdentFun_t)(
const muChar_t*, muInt_t*, muFloat_t*);
128 static const int muOPRT_ASCT_LEFT = 0;
129 static const int muOPRT_ASCT_RIGHT = 1;
131 static const int muBASETYPE_FLOAT = 0;
132 static const int muBASETYPE_INT = 1;
144 API_EXPORT(muParserHandle_t) mupCreate(
int nBaseType);
145 API_EXPORT(
void) mupRelease(muParserHandle_t a_hParser);
146 API_EXPORT(const muChar_t*) mupGetExpr(muParserHandle_t a_hParser);
147 API_EXPORT(
void) mupSetExpr(muParserHandle_t a_hParser, const muChar_t* a_szExpr);
148 API_EXPORT(
void) mupSetVarFactory(muParserHandle_t a_hParser, muFacFun_t a_pFactory,
void* pUserData);
149 API_EXPORT(const muChar_t*) mupGetVersion(muParserHandle_t a_hParser);
150 API_EXPORT(muFloat_t) mupEval(muParserHandle_t a_hParser);
151 API_EXPORT(muFloat_t*) mupEvalMulti(muParserHandle_t a_hParser,
int* nNum);
152 API_EXPORT(
void) mupEvalBulk(muParserHandle_t a_hParser, muFloat_t* a_fResult,
int nSize);
155 API_EXPORT(
void) mupDefineFun0(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun0_t a_pFun, muBool_t a_bOptimize);
156 API_EXPORT(
void) mupDefineFun1(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun1_t a_pFun, muBool_t a_bOptimize);
157 API_EXPORT(
void) mupDefineFun2(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun2_t a_pFun, muBool_t a_bOptimize);
158 API_EXPORT(
void) mupDefineFun3(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun3_t a_pFun, muBool_t a_bOptimize);
159 API_EXPORT(
void) mupDefineFun4(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun4_t a_pFun, muBool_t a_bOptimize);
160 API_EXPORT(
void) mupDefineFun5(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun5_t a_pFun, muBool_t a_bOptimize);
161 API_EXPORT(
void) mupDefineFun6(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun6_t a_pFun, muBool_t a_bOptimize);
162 API_EXPORT(
void) mupDefineFun7(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun7_t a_pFun, muBool_t a_bOptimize);
163 API_EXPORT(
void) mupDefineFun8(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun8_t a_pFun, muBool_t a_bOptimize);
164 API_EXPORT(
void) mupDefineFun9(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun9_t a_pFun, muBool_t a_bOptimize);
165 API_EXPORT(
void) mupDefineFun10(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun10_t a_pFun, muBool_t a_bOptimize);
167 API_EXPORT(
void) mupDefineFunUserData0(muParserHandle_t a_hParser, const muChar_t* a_szName, muFunUserData0_t a_pFun,
void* a_pUserData, muBool_t a_bOptimize);
168 API_EXPORT(
void) mupDefineFunUserData1(muParserHandle_t a_hParser, const muChar_t* a_szName, muFunUserData1_t a_pFun,
void* a_pUserData, muBool_t a_bOptimize);
169 API_EXPORT(
void) mupDefineFunUserData2(muParserHandle_t a_hParser, const muChar_t* a_szName, muFunUserData2_t a_pFun,
void* a_pUserData, muBool_t a_bOptimize);
170 API_EXPORT(
void) mupDefineFunUserData3(muParserHandle_t a_hParser, const muChar_t* a_szName, muFunUserData3_t a_pFun,
void* a_pUserData, muBool_t a_bOptimize);
171 API_EXPORT(
void) mupDefineFunUserData4(muParserHandle_t a_hParser, const muChar_t* a_szName, muFunUserData4_t a_pFun,
void* a_pUserData, muBool_t a_bOptimize);
172 API_EXPORT(
void) mupDefineFunUserData5(muParserHandle_t a_hParser, const muChar_t* a_szName, muFunUserData5_t a_pFun,
void* a_pUserData, muBool_t a_bOptimize);
173 API_EXPORT(
void) mupDefineFunUserData6(muParserHandle_t a_hParser, const muChar_t* a_szName, muFunUserData6_t a_pFun,
void* a_pUserData, muBool_t a_bOptimize);
174 API_EXPORT(
void) mupDefineFunUserData7(muParserHandle_t a_hParser, const muChar_t* a_szName, muFunUserData7_t a_pFun,
void* a_pUserData, muBool_t a_bOptimize);
175 API_EXPORT(
void) mupDefineFunUserData8(muParserHandle_t a_hParser, const muChar_t* a_szName, muFunUserData8_t a_pFun,
void* a_pUserData, muBool_t a_bOptimize);
176 API_EXPORT(
void) mupDefineFunUserData9(muParserHandle_t a_hParser, const muChar_t* a_szName, muFunUserData9_t a_pFun,
void* a_pUserData, muBool_t a_bOptimize);
177 API_EXPORT(
void) mupDefineFunUserData10(muParserHandle_t a_hParser, const muChar_t* a_szName, muFunUserData10_t a_pFun,
void* a_pUserData, muBool_t a_bOptimize);
180 API_EXPORT(
void) mupDefineBulkFun0(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun0_t a_pFun);
181 API_EXPORT(
void) mupDefineBulkFun1(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun1_t a_pFun);
182 API_EXPORT(
void) mupDefineBulkFun2(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun2_t a_pFun);
183 API_EXPORT(
void) mupDefineBulkFun3(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun3_t a_pFun);
184 API_EXPORT(
void) mupDefineBulkFun4(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun4_t a_pFun);
185 API_EXPORT(
void) mupDefineBulkFun5(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun5_t a_pFun);
186 API_EXPORT(
void) mupDefineBulkFun6(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun6_t a_pFun);
187 API_EXPORT(
void) mupDefineBulkFun7(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun7_t a_pFun);
188 API_EXPORT(
void) mupDefineBulkFun8(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun8_t a_pFun);
189 API_EXPORT(
void) mupDefineBulkFun9(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun9_t a_pFun);
190 API_EXPORT(
void) mupDefineBulkFun10(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun10_t a_pFun);
192 API_EXPORT(
void) mupDefineBulkFunUserData0(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFunUserData0_t a_pFun,
void* a_pUserData);
193 API_EXPORT(
void) mupDefineBulkFunUserData1(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFunUserData1_t a_pFun,
void* a_pUserData);
194 API_EXPORT(
void) mupDefineBulkFunUserData2(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFunUserData2_t a_pFun,
void* a_pUserData);
195 API_EXPORT(
void) mupDefineBulkFunUserData3(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFunUserData3_t a_pFun,
void* a_pUserData);
196 API_EXPORT(
void) mupDefineBulkFunUserData4(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFunUserData4_t a_pFun,
void* a_pUserData);
197 API_EXPORT(
void) mupDefineBulkFunUserData5(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFunUserData5_t a_pFun,
void* a_pUserData);
198 API_EXPORT(
void) mupDefineBulkFunUserData6(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFunUserData6_t a_pFun,
void* a_pUserData);
199 API_EXPORT(
void) mupDefineBulkFunUserData7(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFunUserData7_t a_pFun,
void* a_pUserData);
200 API_EXPORT(
void) mupDefineBulkFunUserData8(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFunUserData8_t a_pFun,
void* a_pUserData);
201 API_EXPORT(
void) mupDefineBulkFunUserData9(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFunUserData9_t a_pFun,
void* a_pUserData);
202 API_EXPORT(
void) mupDefineBulkFunUserData10(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFunUserData10_t a_pFun,
void* a_pUserData);
205 API_EXPORT(
void) mupDefineStrFun1(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFun1_t a_pFun);
206 API_EXPORT(
void) mupDefineStrFun2(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFun2_t a_pFun);
207 API_EXPORT(
void) mupDefineStrFun3(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFun3_t a_pFun);
208 API_EXPORT(
void) mupDefineStrFun4(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFun4_t a_pFun);
209 API_EXPORT(
void) mupDefineStrFun5(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFun5_t a_pFun);
211 API_EXPORT(
void) mupDefineStrFunUserData1(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFunUserData1_t a_pFun,
void* a_pUserData);
212 API_EXPORT(
void) mupDefineStrFunUserData2(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFunUserData2_t a_pFun,
void* a_pUserData);
213 API_EXPORT(
void) mupDefineStrFunUserData3(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFunUserData3_t a_pFun,
void* a_pUserData);
214 API_EXPORT(
void) mupDefineStrFunUserData4(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFunUserData4_t a_pFun,
void* a_pUserData);
215 API_EXPORT(
void) mupDefineStrFunUserData5(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFunUserData5_t a_pFun,
void* a_pUserData);
217 API_EXPORT(
void) mupDefineMultFun(muParserHandle_t a_hParser,
218 const muChar_t* a_szName,
220 muBool_t a_bOptimize);
222 API_EXPORT(
void) mupDefineMultFunUserData(muParserHandle_t a_hParser,
223 const muChar_t* a_szName,
224 muMultFunUserData_t a_pFun,
226 muBool_t a_bOptimize);
228 API_EXPORT(
void) mupDefineOprt(muParserHandle_t a_hParser,
229 const muChar_t* a_szName,
233 muBool_t a_bOptimize);
235 API_EXPORT(
void) mupDefineConst(muParserHandle_t a_hParser,
236 const muChar_t* a_szName,
239 API_EXPORT(
void) mupDefineStrConst(muParserHandle_t a_hParser,
240 const muChar_t* a_szName,
241 const muChar_t* a_sVal);
243 API_EXPORT(
void) mupDefineVar(muParserHandle_t a_hParser,
244 const muChar_t* a_szName,
247 API_EXPORT(
void) mupDefineBulkVar(muParserHandle_t a_hParser,
248 const muChar_t* a_szName,
251 API_EXPORT(
void) mupDefinePostfixOprt(muParserHandle_t a_hParser,
252 const muChar_t* a_szName,
254 muBool_t a_bOptimize);
257 API_EXPORT(
void) mupDefineInfixOprt(muParserHandle_t a_hParser,
258 const muChar_t* a_szName,
260 muBool_t a_bOptimize);
263 API_EXPORT(
void) mupDefineNameChars(muParserHandle_t a_hParser, const muChar_t* a_szCharset);
264 API_EXPORT(
void) mupDefineOprtChars(muParserHandle_t a_hParser, const muChar_t* a_szCharset);
265 API_EXPORT(
void) mupDefineInfixOprtChars(muParserHandle_t a_hParser, const muChar_t* a_szCharset);
268 API_EXPORT(
void) mupRemoveVar(muParserHandle_t a_hParser, const muChar_t* a_szName);
269 API_EXPORT(
void) mupClearVar(muParserHandle_t a_hParser);
270 API_EXPORT(
void) mupClearConst(muParserHandle_t a_hParser);
271 API_EXPORT(
void) mupClearOprt(muParserHandle_t a_hParser);
272 API_EXPORT(
void) mupClearFun(muParserHandle_t a_hParser);
275 API_EXPORT(
int) mupGetExprVarNum(muParserHandle_t a_hParser);
276 API_EXPORT(
int) mupGetVarNum(muParserHandle_t a_hParser);
277 API_EXPORT(
int) mupGetConstNum(muParserHandle_t a_hParser);
278 API_EXPORT(
void) mupGetExprVar(muParserHandle_t a_hParser,
unsigned a_iVar, const muChar_t** a_pszName, muFloat_t** a_pVar);
279 API_EXPORT(
void) mupGetVar(muParserHandle_t a_hParser,
unsigned a_iVar, const muChar_t** a_pszName, muFloat_t** a_pVar);
280 API_EXPORT(
void) mupGetConst(muParserHandle_t a_hParser,
unsigned a_iVar, const muChar_t** a_pszName, muFloat_t* a_pVar);
281 API_EXPORT(
void) mupSetArgSep(muParserHandle_t a_hParser, const muChar_t cArgSep);
282 API_EXPORT(
void) mupSetDecSep(muParserHandle_t a_hParser, const muChar_t cArgSep);
283 API_EXPORT(
void) mupSetThousandsSep(muParserHandle_t a_hParser, const muChar_t cArgSep);
284 API_EXPORT(
void) mupResetLocale(muParserHandle_t a_hParser);
287 API_EXPORT(
void) mupAddValIdent(muParserHandle_t a_hParser, muIdentFun_t);
290 API_EXPORT(muBool_t) mupError(muParserHandle_t a_hParser);
291 API_EXPORT(
void) mupErrorReset(muParserHandle_t a_hParser);
292 API_EXPORT(
void) mupSetErrorHandler(muParserHandle_t a_hParser, muErrorHandler_t a_pErrHandler);
293 API_EXPORT(const muChar_t*) mupGetErrorMsg(muParserHandle_t a_hParser);
294 API_EXPORT(muInt_t) mupGetErrorCode(muParserHandle_t a_hParser);
295 API_EXPORT(muInt_t) mupGetErrorPos(muParserHandle_t a_hParser);
296 API_EXPORT(const muChar_t*) mupGetErrorToken(muParserHandle_t a_hParser);
301 API_EXPORT(muFloat_t*) mupCreateVar(
void);
302 API_EXPORT(
void) mupReleaseVar(muFloat_t*);
308 #endif // include guard
This file contains compatibility fixes for some platforms.