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);
70 typedef muFloat_t(*muBulkFun0_t)(int, int);
71 typedef muFloat_t(*muBulkFun1_t)(int, int, muFloat_t);
72 typedef muFloat_t(*muBulkFun2_t)(int, int, muFloat_t, muFloat_t);
73 typedef muFloat_t(*muBulkFun3_t)(int, int, muFloat_t, muFloat_t, muFloat_t);
74 typedef muFloat_t(*muBulkFun4_t)(int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
75 typedef muFloat_t(*muBulkFun5_t)(int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
76 typedef muFloat_t(*muBulkFun6_t)(int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
77 typedef muFloat_t(*muBulkFun7_t)(int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
78 typedef muFloat_t(*muBulkFun8_t)(int, int, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t, muFloat_t);
79 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);
80 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);
82 typedef muFloat_t(*muMultFun_t)(
const muFloat_t*, muInt_t);
83 typedef muFloat_t(*muStrFun1_t)(
const muChar_t*);
84 typedef muFloat_t(*muStrFun2_t)(
const muChar_t*, muFloat_t);
85 typedef muFloat_t(*muStrFun3_t)(
const muChar_t*, muFloat_t, muFloat_t);
88 typedef void (*muErrorHandler_t)(muParserHandle_t a_hParser);
89 typedef muFloat_t* (*muFacFun_t)(
const muChar_t*,
void*);
90 typedef muInt_t(*muIdentFun_t)(
const muChar_t*, muInt_t*, muFloat_t*);
94 static const int muOPRT_ASCT_LEFT = 0;
95 static const int muOPRT_ASCT_RIGHT = 1;
97 static const int muBASETYPE_FLOAT = 0;
98 static const int muBASETYPE_INT = 1;
110 API_EXPORT(muParserHandle_t) mupCreate(
int nBaseType);
111 API_EXPORT(
void) mupRelease(muParserHandle_t a_hParser);
112 API_EXPORT(const muChar_t*) mupGetExpr(muParserHandle_t a_hParser);
113 API_EXPORT(
void) mupSetExpr(muParserHandle_t a_hParser, const muChar_t* a_szExpr);
114 API_EXPORT(
void) mupSetVarFactory(muParserHandle_t a_hParser, muFacFun_t a_pFactory,
void* pUserData);
115 API_EXPORT(const muChar_t*) mupGetVersion(muParserHandle_t a_hParser);
116 API_EXPORT(muFloat_t) mupEval(muParserHandle_t a_hParser);
117 API_EXPORT(muFloat_t*) mupEvalMulti(muParserHandle_t a_hParser,
int* nNum);
118 API_EXPORT(
void) mupEvalBulk(muParserHandle_t a_hParser, muFloat_t* a_fResult,
int nSize);
121 API_EXPORT(
void) mupDefineFun0(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun0_t a_pFun, muBool_t a_bOptimize);
122 API_EXPORT(
void) mupDefineFun1(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun1_t a_pFun, muBool_t a_bOptimize);
123 API_EXPORT(
void) mupDefineFun2(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun2_t a_pFun, muBool_t a_bOptimize);
124 API_EXPORT(
void) mupDefineFun3(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun3_t a_pFun, muBool_t a_bOptimize);
125 API_EXPORT(
void) mupDefineFun4(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun4_t a_pFun, muBool_t a_bOptimize);
126 API_EXPORT(
void) mupDefineFun5(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun5_t a_pFun, muBool_t a_bOptimize);
127 API_EXPORT(
void) mupDefineFun6(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun6_t a_pFun, muBool_t a_bOptimize);
128 API_EXPORT(
void) mupDefineFun7(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun7_t a_pFun, muBool_t a_bOptimize);
129 API_EXPORT(
void) mupDefineFun8(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun8_t a_pFun, muBool_t a_bOptimize);
130 API_EXPORT(
void) mupDefineFun9(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun9_t a_pFun, muBool_t a_bOptimize);
131 API_EXPORT(
void) mupDefineFun10(muParserHandle_t a_hParser, const muChar_t* a_szName, muFun10_t a_pFun, muBool_t a_bOptimize);
134 API_EXPORT(
void) mupDefineBulkFun0(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun0_t a_pFun);
135 API_EXPORT(
void) mupDefineBulkFun1(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun1_t a_pFun);
136 API_EXPORT(
void) mupDefineBulkFun2(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun2_t a_pFun);
137 API_EXPORT(
void) mupDefineBulkFun3(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun3_t a_pFun);
138 API_EXPORT(
void) mupDefineBulkFun4(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun4_t a_pFun);
139 API_EXPORT(
void) mupDefineBulkFun5(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun5_t a_pFun);
140 API_EXPORT(
void) mupDefineBulkFun6(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun6_t a_pFun);
141 API_EXPORT(
void) mupDefineBulkFun7(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun7_t a_pFun);
142 API_EXPORT(
void) mupDefineBulkFun8(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun8_t a_pFun);
143 API_EXPORT(
void) mupDefineBulkFun9(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun9_t a_pFun);
144 API_EXPORT(
void) mupDefineBulkFun10(muParserHandle_t a_hParser, const muChar_t* a_szName, muBulkFun10_t a_pFun);
147 API_EXPORT(
void) mupDefineStrFun1(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFun1_t a_pFun);
148 API_EXPORT(
void) mupDefineStrFun2(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFun2_t a_pFun);
149 API_EXPORT(
void) mupDefineStrFun3(muParserHandle_t a_hParser, const muChar_t* a_szName, muStrFun3_t a_pFun);
151 API_EXPORT(
void) mupDefineMultFun(muParserHandle_t a_hParser,
152 const muChar_t* a_szName,
154 muBool_t a_bOptimize);
156 API_EXPORT(
void) mupDefineOprt(muParserHandle_t a_hParser,
157 const muChar_t* a_szName,
161 muBool_t a_bOptimize);
163 API_EXPORT(
void) mupDefineConst(muParserHandle_t a_hParser,
164 const muChar_t* a_szName,
167 API_EXPORT(
void) mupDefineStrConst(muParserHandle_t a_hParser,
168 const muChar_t* a_szName,
169 const muChar_t* a_sVal);
171 API_EXPORT(
void) mupDefineVar(muParserHandle_t a_hParser,
172 const muChar_t* a_szName,
175 API_EXPORT(
void) mupDefineBulkVar(muParserHandle_t a_hParser,
176 const muChar_t* a_szName,
179 API_EXPORT(
void) mupDefinePostfixOprt(muParserHandle_t a_hParser,
180 const muChar_t* a_szName,
182 muBool_t a_bOptimize);
185 API_EXPORT(
void) mupDefineInfixOprt(muParserHandle_t a_hParser,
186 const muChar_t* a_szName,
188 muBool_t a_bOptimize);
191 API_EXPORT(
void) mupDefineNameChars(muParserHandle_t a_hParser, const muChar_t* a_szCharset);
192 API_EXPORT(
void) mupDefineOprtChars(muParserHandle_t a_hParser, const muChar_t* a_szCharset);
193 API_EXPORT(
void) mupDefineInfixOprtChars(muParserHandle_t a_hParser, const muChar_t* a_szCharset);
196 API_EXPORT(
void) mupRemoveVar(muParserHandle_t a_hParser, const muChar_t* a_szName);
197 API_EXPORT(
void) mupClearVar(muParserHandle_t a_hParser);
198 API_EXPORT(
void) mupClearConst(muParserHandle_t a_hParser);
199 API_EXPORT(
void) mupClearOprt(muParserHandle_t a_hParser);
200 API_EXPORT(
void) mupClearFun(muParserHandle_t a_hParser);
203 API_EXPORT(
int) mupGetExprVarNum(muParserHandle_t a_hParser);
204 API_EXPORT(
int) mupGetVarNum(muParserHandle_t a_hParser);
205 API_EXPORT(
int) mupGetConstNum(muParserHandle_t a_hParser);
206 API_EXPORT(
void) mupGetExprVar(muParserHandle_t a_hParser,
unsigned a_iVar, const muChar_t** a_pszName, muFloat_t** a_pVar);
207 API_EXPORT(
void) mupGetVar(muParserHandle_t a_hParser,
unsigned a_iVar, const muChar_t** a_pszName, muFloat_t** a_pVar);
208 API_EXPORT(
void) mupGetConst(muParserHandle_t a_hParser,
unsigned a_iVar, const muChar_t** a_pszName, muFloat_t* a_pVar);
209 API_EXPORT(
void) mupSetArgSep(muParserHandle_t a_hParser, const muChar_t cArgSep);
210 API_EXPORT(
void) mupSetDecSep(muParserHandle_t a_hParser, const muChar_t cArgSep);
211 API_EXPORT(
void) mupSetThousandsSep(muParserHandle_t a_hParser, const muChar_t cArgSep);
212 API_EXPORT(
void) mupResetLocale(muParserHandle_t a_hParser);
215 API_EXPORT(
void) mupAddValIdent(muParserHandle_t a_hParser, muIdentFun_t);
218 API_EXPORT(muBool_t) mupError(muParserHandle_t a_hParser);
219 API_EXPORT(
void) mupErrorReset(muParserHandle_t a_hParser);
220 API_EXPORT(
void) mupSetErrorHandler(muParserHandle_t a_hParser, muErrorHandler_t a_pErrHandler);
221 API_EXPORT(const muChar_t*) mupGetErrorMsg(muParserHandle_t a_hParser);
222 API_EXPORT(muInt_t) mupGetErrorCode(muParserHandle_t a_hParser);
223 API_EXPORT(muInt_t) mupGetErrorPos(muParserHandle_t a_hParser);
224 API_EXPORT(const muChar_t*) mupGetErrorToken(muParserHandle_t a_hParser);
229 API_EXPORT(muFloat_t*) mupCreateVar(
void);
230 API_EXPORT(
void) mupReleaseVar(muFloat_t*);
236 #endif // include guard
This file contains compatibility fixes for some platforms.