21 #ifdef A2DEDITORMAKINGDLL
22 #define A2DCANVASDLLEXP WXEXPORT
23 #define A2DCANVASDLLEXP_DATA(type) WXEXPORT type
24 #define A2DCANVASDLLEXP_CTORFN
25 #elif defined(WXART2D_USINGDLL)
26 #define A2DCANVASDLLEXP WXIMPORT
27 #define A2DCANVASDLLEXP_DATA(type) WXIMPORT type
28 #define A2DCANVASDLLEXP_CTORFN
29 #else // not making nor using DLL
30 #define A2DCANVASDLLEXP
31 #define A2DCANVASDLLEXP_DATA(type) type
32 #define A2DCANVASDLLEXP_CTORFN
36 #define TYPENUMBER double
53 a2dEvalVar(
const wxString& name, TYPENUMBER value )
72 typedef TYPENUMBER ( *fArgX )( ... );
77 typedef TYPENUMBER ( *fArg1 )( TYPENUMBER );
78 typedef TYPENUMBER ( *fArg2 )( TYPENUMBER, TYPENUMBER );
85 m_func = ( fArgX )func;
92 m_func = ( fArgX )func;
100 #include <wx/listimpl.cpp>
101 WX_DECLARE_LIST_WITH_DECL(
a2dEvalFunction, a2dFunctionList,
class A2DCANVASDLLEXP );
102 WX_DECLARE_LIST_WITH_DECL(
a2dEvalVar, a2dVariableList,
class A2DCANVASDLLEXP );
106 #define iswhite(c) (c == _T(' ') || c == _T('\t'))
107 #define isnumer(c) ((c >= _T('0') && c <= _T('9')) || c == _T('.'))
108 #define isalphaeval(c) ((c >= _T('a') && c <= _T('z')) || (c >= _T('0') && c <= _T('9')) \
110 #define isdelim(c) (c == _T('+') || c == _T('-') || c == _T('*') || c == _T('/') || c == _T('%') \
111 || c == _T('^') || c == _T('(') || c == _T(')') || c == _T(',') || c == _T('='))
152 void SetEvalString(
const wxString& toEval ) { m_eval = toEval; }
154 bool GetSymbol(
const wxString& envname, TYPENUMBER* envValue );
158 bool ClearVar(
const wxString& name );
160 int Evaluate( TYPENUMBER* result,
int* a );
164 bool GetValue(
const wxString& name, TYPENUMBER* value );
166 bool SetValue(
const wxString& name, TYPENUMBER value );
168 a2dFunctionList m_functions;
169 a2dVariableList m_vars;
170 a2dVariableList m_const;
174 int Level1( TYPENUMBER* r );
175 void Level2( TYPENUMBER* r );
176 void Level3( TYPENUMBER* r );
177 void Level4( TYPENUMBER* r );
178 void Level5( TYPENUMBER* r );
179 void Level6( TYPENUMBER* r );
187 const wxStringCharType* m_expression;
189 const wxStringCharType* m_token;
191 wxChar* m_expression;
194 #endif // wxUSE_UNICODE
201 #if !wxUSE_EXCEPTIONS
holds a function in an evaluation string for a2dEval
holds a variable in an evaluation string for a2dEval
expression(s) evaluation based on a string.
a2dEvalFunction(const wxString &name, fArg1 func)
name, nr args, function to call