25 #if defined(MUPARSER_DLL) 28 #define WIN32_LEAN_AND_MEAN 44 catch (muError_t &e) \ 46 ParserTag *pTag = static_cast<ParserTag*>(a_hParser); \ 48 pTag->bError = true; \ 49 if (pTag->errHandler) \ 50 (pTag->errHandler)(a_hParser); \ 54 ParserTag *pTag = static_cast<ParserTag*>(a_hParser); \ 55 pTag->exc = muError_t(mu::ecINTERNAL_ERROR); \ 56 pTag->bError = true; \ 57 if (pTag->errHandler) \ 58 (pTag->errHandler)(a_hParser); \ 82 , m_nParserType(nType)
96 ParserTag(
const ParserTag &ref);
97 ParserTag& operator=(
const ParserTag &ref);
115 return static_cast<ParserTag*
>(a_hParser)->pParser;
121 return static_cast<ParserTag*
>(a_hParser);
126 #define _CRT_SECURE_NO_DEPRECATE 128 BOOL APIENTRY DllMain(HANDLE ,
129 DWORD ul_reason_for_call,
132 switch (ul_reason_for_call)
134 case DLL_PROCESS_ATTACH:
137 case DLL_THREAD_ATTACH:
138 case DLL_THREAD_DETACH:
139 case DLL_PROCESS_DETACH:
159 muParser_t* p(AsParser(a_hParser));
173 default:
return NULL;
183 ParserTag* p =
static_cast<ParserTag*
>(a_hParser);
192 muParser_t*
const p(AsParser(a_hParser));
195 sprintf(s_tmpOutBuf,
"%s", p->GetVersion().c_str());
197 wsprintf(s_tmpOutBuf,
_T(
"%s"), p->GetVersion().c_str());
212 muParser_t*
const p(AsParser(a_hParser));
223 assert(
nNum != NULL);
225 muParser_t*
const p(AsParser(a_hParser));
226 return p->Eval(*
nNum);
236 muParser_t* p(AsParser(a_hParser));
237 p->Eval(a_res,
nSize);
245 muParser_t*
const p(AsParser(a_hParser));
254 muParser_t*
const p(AsParser(a_hParser));
266 muParser_t*
const p(AsParser(a_hParser));
278 muParser_t*
const p(AsParser(a_hParser));
290 muParser_t*
const p(AsParser(a_hParser));
299 muParser_t*
const p(AsParser(a_hParser));
311 muParser_t*
const p(AsParser(a_hParser));
323 muParser_t*
const p(AsParser(a_hParser));
335 muParser_t*
const p(AsParser(a_hParser));
347 muParser_t*
const p(AsParser(a_hParser));
359 muParser_t*
const p(AsParser(a_hParser));
371 muParser_t*
const p(AsParser(a_hParser));
383 muParser_t*
const p(AsParser(a_hParser));
395 muParser_t*
const p(AsParser(a_hParser));
407 muParser_t*
const p(AsParser(a_hParser));
419 muParser_t*
const p(AsParser(a_hParser));
431 muParser_t*
const p(AsParser(a_hParser));
442 muParser_t*
const p(AsParser(a_hParser));
453 muParser_t*
const p(AsParser(a_hParser));
464 muParser_t*
const p(AsParser(a_hParser));
475 muParser_t*
const p(AsParser(a_hParser));
486 muParser_t*
const p(AsParser(a_hParser));
497 muParser_t*
const p(AsParser(a_hParser));
508 muParser_t*
const p(AsParser(a_hParser));
519 muParser_t*
const p(AsParser(a_hParser));
530 muParser_t*
const p(AsParser(a_hParser));
541 muParser_t*
const p(AsParser(a_hParser));
552 muParser_t*
const p(AsParser(a_hParser));
563 muParser_t*
const p(AsParser(a_hParser));
574 muParser_t*
const p(AsParser(a_hParser));
585 muParser_t*
const p(AsParser(a_hParser));
597 muParser_t*
const p(AsParser(a_hParser));
611 muParser_t*
const p(AsParser(a_hParser));
626 muParser_t*
const p(AsParser(a_hParser));
637 muParser_t*
const p(AsParser(a_hParser));
648 muParser_t*
const p(AsParser(a_hParser));
659 muParser_t*
const p(AsParser(a_hParser));
660 p->DefineStrConst(
a_szName, a_szVal);
668 muParser_t*
const p(AsParser(a_hParser));
673 sprintf(s_tmpOutBuf,
"%s", p->GetExpr().c_str());
675 wsprintf(s_tmpOutBuf,
_T(
"%s"), p->GetExpr().c_str());
692 muParser_t*
const p(AsParser(a_hParser));
704 muParser_t*
const p(AsParser(a_hParser));
714 muParser_t*
const p(AsParser(a_hParser));
722 muParser_t*
const p(AsParser(a_hParser));
730 muParser_t*
const p(AsParser(a_hParser));
743 muParser_t*
const p(AsParser(a_hParser));
745 return (
int)VarMap.size();
777 muParser_t*
const p(AsParser(a_hParser));
780 if (
a_iVar >= VarMap.size())
786 mu::varmap_type::const_iterator item;
788 item = VarMap.begin();
789 for (
unsigned i = 0; i <
a_iVar; ++i)
793 strncpy(szName, item->first.c_str(),
sizeof(szName));
795 wcsncpy(szName, item->first.c_str(),
sizeof(szName));
798 szName[
sizeof(szName)-1] = 0;
819 muParser_t*
const p(AsParser(a_hParser));
821 return (
int)VarMap.size();
854 muParser_t*
const p(AsParser(a_hParser));
857 if (
a_iVar >= VarMap.size())
863 mu::varmap_type::const_iterator item;
865 item = VarMap.begin();
866 for (
unsigned i = 0; i <
a_iVar; ++i)
870 strncpy(szName, item->first.c_str(),
sizeof(szName));
872 wcsncpy(szName, item->first.c_str(),
sizeof(szName));
875 szName[
sizeof(szName)-1] = 0;
892 muParser_t*
const p(AsParser(a_hParser));
894 return (
int)ValMap.size();
904 muParser_t*
const p(AsParser(a_hParser));
913 muParser_t*
const p(AsParser(a_hParser));
922 muParser_t*
const p(AsParser(a_hParser));
923 p->SetDecSep(cDecSep);
931 muParser_t*
const p(AsParser(a_hParser));
932 p->SetThousandsSep(cThousandsSep);
953 muParser_t*
const p(AsParser(a_hParser));
956 if (
a_iVar >= ValMap.size())
963 mu::valmap_type::const_iterator item;
964 item = ValMap.begin();
965 for (
unsigned i = 0; i <
a_iVar; ++i)
969 strncpy(szName, item->first.c_str(),
sizeof(szName));
971 wcsncpy(szName, item->first.c_str(),
sizeof(szName));
974 szName[
sizeof(szName)-1] = 0;
993 muParser_t* p(AsParser(a_hParser));
1006 bool bError(AsParserTag(a_hParser)->bError);
1007 AsParserTag(a_hParser)->bError =
false;
1016 AsParserTag(a_hParser)->bError =
false;
1022 AsParserTag(a_hParser)->errHandler = a_pHandler;
1030 ParserTag*
const p(AsParserTag(a_hParser));
1031 const muChar_t *pMsg = p->exc.GetMsg().c_str();
1036 sprintf(s_tmpOutBuf,
"%s", pMsg);
1038 wsprintf(s_tmpOutBuf,
_T(
"%s"), pMsg);
1049 ParserTag*
const p(AsParserTag(a_hParser));
1050 const muChar_t *pToken = p->exc.GetToken().c_str();
1055 sprintf(s_tmpOutBuf,
"%s", pToken);
1057 wsprintf(s_tmpOutBuf,
_T(
"%s"), pToken);
1068 return AsParserTag(a_hParser)->exc.GetCode();
1075 return (
int)AsParserTag(a_hParser)->exc.GetPos();
1096 #endif // MUPARSER_DLL