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