C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
my_usr_ext< T > Struct Template Reference
Inheritance diagram for my_usr_ext< T >:
[legend]
Collaboration diagram for my_usr_ext< T >:
[legend]

Public Types

typedef exprtk::symbol_table< T > symbol_table_t
typedef exprtk::parser< T >::unknown_symbol_resolver usr_t
typedef exprtk::symbol_table< T > symbol_table_t
typedef exprtk::parser< T >::unknown_symbol_resolver usr_t
typedef exprtk::symbol_table< T > symbol_table_t
typedef exprtk::parser< T >::unknown_symbol_resolver usr_t
Public Types inherited from exprtk::parser< T >::unknown_symbol_resolver
enum  usr_symbol_type { e_usr_unknown_type = 0 , e_usr_variable_type = 1 , e_usr_constant_type = 2 }
enum  usr_mode { e_usrmode_default = 0 , e_usrmode_extended = 1 }

Public Member Functions

 my_usr_ext ()
bool process (const std::string &unknown_symbol, symbol_table_t &symbol_table, std::string &error_message)
 my_usr_ext ()
bool process (const std::string &unknown_symbol, symbol_table_t &symbol_table, std::string &error_message)
 my_usr_ext ()
bool process (const std::string &unknown_symbol, symbol_table_t &symbol_table, std::string &error_message)
virtual bool process (const std::string &, usr_symbol_type &st, T &default_value, std::string &error_message)
Public Member Functions inherited from exprtk::parser< T >::unknown_symbol_resolver
 unknown_symbol_resolver (const usr_mode m=e_usrmode_default)
virtual ~unknown_symbol_resolver ()

Additional Inherited Members

Public Attributes inherited from exprtk::parser< T >::unknown_symbol_resolver
usr_mode mode

Detailed Description

template<typename T>
struct my_usr_ext< T >

Definition at line 9901 of file exprtk_mpfr_test.cpp.

Member Typedef Documentation

◆ symbol_table_t [1/3]

template<typename T>
typedef exprtk::symbol_table<T> my_usr_ext< T >::symbol_table_t

Definition at line 9903 of file exprtk_mpfr_test.cpp.

◆ symbol_table_t [2/3]

template<typename T>
typedef exprtk::symbol_table<T> my_usr_ext< T >::symbol_table_t

Definition at line 9900 of file exprtk_real_test.cpp.

◆ symbol_table_t [3/3]

template<typename T>
typedef exprtk::symbol_table<T> my_usr_ext< T >::symbol_table_t

Definition at line 9920 of file exprtk_test.cpp.

◆ usr_t [1/3]

template<typename T>
typedef exprtk::parser<T>::unknown_symbol_resolver my_usr_ext< T >::usr_t

Definition at line 9904 of file exprtk_mpfr_test.cpp.

◆ usr_t [2/3]

template<typename T>
typedef exprtk::parser<T>::unknown_symbol_resolver my_usr_ext< T >::usr_t

Definition at line 9901 of file exprtk_real_test.cpp.

◆ usr_t [3/3]

template<typename T>
typedef exprtk::parser<T>::unknown_symbol_resolver my_usr_ext< T >::usr_t

Definition at line 9921 of file exprtk_test.cpp.

Constructor & Destructor Documentation

◆ my_usr_ext() [1/3]

template<typename T>
my_usr_ext< T >::my_usr_ext ( )
inline

◆ my_usr_ext() [2/3]

template<typename T>
my_usr_ext< T >::my_usr_ext ( )
inline

◆ my_usr_ext() [3/3]

template<typename T>
my_usr_ext< T >::my_usr_ext ( )
inline

Member Function Documentation

◆ process() [1/4]

template<typename T>
virtual bool exprtk::parser< T >::unknown_symbol_resolver::process ( const std::string & ,
usr_symbol_type & st,
T & default_value,
std::string & error_message )
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 23822 of file exprtk.hpp.

23826 {
23827 if (e_usrmode_default != mode)
23828 return false;
23829
23831 default_value = T(0);
23832 error_message.clear();
23833
23834 return true;
23835 }

◆ process() [2/4]

template<typename T>
bool my_usr_ext< T >::process ( const std::string & unknown_symbol,
symbol_table_t & symbol_table,
std::string & error_message )
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 9912 of file exprtk_mpfr_test.cpp.

9915 {
9916 bool result = false;
9917
9918 if (unknown_symbol[0] == 'v')
9919 {
9920 static T var_default_value = 1.0;
9921
9922 if ((result = symbol_table.create_variable(unknown_symbol, var_default_value++)) == false)
9923 {
9924 error_message = "Failed to create variable(" + unknown_symbol + ") in primary symbol table";
9925 }
9926 }
9927 else if (unknown_symbol[0] == 'c')
9928 {
9929 static T cvar_default_value = 1.0;
9930
9931 if ((result = symbol_table.add_constant(unknown_symbol, cvar_default_value++)) == false)
9932 {
9933 error_message = "Failed to create const variable(" + unknown_symbol + ") in primary symbol table";
9934 }
9935 }
9936 else if (0 == unknown_symbol.find("foo"))
9937 {
9938 //functions of form: fooXX
9939 if (4 >= unknown_symbol.size())
9940 {
9941 switch(unknown_symbol[3])
9942 {
9943 case '1' : result = symbol_table.add_function(unknown_symbol,foo1);
9944 break;
9945
9946 case '2' : result = symbol_table.add_function(unknown_symbol,foo2);
9947 break;
9948
9949 case '3' : result = symbol_table.add_function(unknown_symbol,foo3);
9950 break;
9951
9952 case '4' : result = symbol_table.add_function(unknown_symbol,foo4);
9953 break;
9954
9955 case '5' : result = symbol_table.add_function(unknown_symbol,foo5);
9956 break;
9957
9958 case '6' : result = symbol_table.add_function(unknown_symbol,foo6);
9959 break;
9960 }
9961 }
9962
9963 if (!result)
9964 {
9965 error_message = "Failed to add function(" + unknown_symbol + ") in primary symbol table";
9966 }
9967 }
9968 else
9969 error_message = "Indeterminable symbol type.";
9970
9971 return result;
9972 }

References exprtk_test_override, foo1(), foo2(), foo3(), foo4(), foo5(), and foo6().

Here is the call graph for this function:

◆ process() [3/4]

template<typename T>
bool my_usr_ext< T >::process ( const std::string & unknown_symbol,
symbol_table_t & symbol_table,
std::string & error_message )
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 9909 of file exprtk_real_test.cpp.

9912 {
9913 bool result = false;
9914
9915 if (unknown_symbol[0] == 'v')
9916 {
9917 static T var_default_value = 1.0;
9918
9919 if ((result = symbol_table.create_variable(unknown_symbol, var_default_value++)) == false)
9920 {
9921 error_message = "Failed to create variable(" + unknown_symbol + ") in primary symbol table";
9922 }
9923 }
9924 else if (unknown_symbol[0] == 'c')
9925 {
9926 static T cvar_default_value = 1.0;
9927
9928 if ((result = symbol_table.add_constant(unknown_symbol, cvar_default_value++)) == false)
9929 {
9930 error_message = "Failed to create const variable(" + unknown_symbol + ") in primary symbol table";
9931 }
9932 }
9933 else if (0 == unknown_symbol.find("foo"))
9934 {
9935 //functions of form: fooXX
9936 if (4 >= unknown_symbol.size())
9937 {
9938 switch(unknown_symbol[3])
9939 {
9940 case '1' : result = symbol_table.add_function(unknown_symbol,foo1);
9941 break;
9942
9943 case '2' : result = symbol_table.add_function(unknown_symbol,foo2);
9944 break;
9945
9946 case '3' : result = symbol_table.add_function(unknown_symbol,foo3);
9947 break;
9948
9949 case '4' : result = symbol_table.add_function(unknown_symbol,foo4);
9950 break;
9951
9952 case '5' : result = symbol_table.add_function(unknown_symbol,foo5);
9953 break;
9954
9955 case '6' : result = symbol_table.add_function(unknown_symbol,foo6);
9956 break;
9957 }
9958 }
9959
9960 if (!result)
9961 {
9962 error_message = "Failed to add function(" + unknown_symbol + ") in primary symbol table";
9963 }
9964 }
9965 else
9966 error_message = "Indeterminable symbol type.";
9967
9968 return result;
9969 }

References exprtk_test_override, foo1(), foo2(), foo3(), foo4(), foo5(), and foo6().

Here is the call graph for this function:

◆ process() [4/4]

template<typename T>
bool my_usr_ext< T >::process ( const std::string & unknown_symbol,
symbol_table_t & symbol_table,
std::string & error_message )
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 9929 of file exprtk_test.cpp.

9932 {
9933 bool result = false;
9934
9935 if (unknown_symbol[0] == 'v')
9936 {
9937 static T var_default_value = 1.0;
9938
9939 if ((result = symbol_table.create_variable(unknown_symbol, var_default_value++)) == false)
9940 {
9941 error_message = "Failed to create variable(" + unknown_symbol + ") in primary symbol table";
9942 }
9943 }
9944 else if (unknown_symbol[0] == 'c')
9945 {
9946 static T cvar_default_value = 1.0;
9947
9948 if ((result = symbol_table.add_constant(unknown_symbol, cvar_default_value++)) == false)
9949 {
9950 error_message = "Failed to create const variable(" + unknown_symbol + ") in primary symbol table";
9951 }
9952 }
9953 else if (0 == unknown_symbol.find("foo"))
9954 {
9955 //functions of form: fooXX
9956 if (4 >= unknown_symbol.size())
9957 {
9958 switch(unknown_symbol[3])
9959 {
9960 case '1' : result = symbol_table.add_function(unknown_symbol,foo1);
9961 break;
9962
9963 case '2' : result = symbol_table.add_function(unknown_symbol,foo2);
9964 break;
9965
9966 case '3' : result = symbol_table.add_function(unknown_symbol,foo3);
9967 break;
9968
9969 case '4' : result = symbol_table.add_function(unknown_symbol,foo4);
9970 break;
9971
9972 case '5' : result = symbol_table.add_function(unknown_symbol,foo5);
9973 break;
9974
9975 case '6' : result = symbol_table.add_function(unknown_symbol,foo6);
9976 break;
9977 }
9978 }
9979
9980 if (!result)
9981 {
9982 error_message = "Failed to add function(" + unknown_symbol + ") in primary symbol table";
9983 }
9984 }
9985 else
9986 error_message = "Indeterminable symbol type.";
9987
9988 return result;
9989 }

References exprtk_test_override, foo1(), foo2(), foo3(), foo4(), foo5(), and foo6().

Here is the call graph for this function:

The documentation for this struct was generated from the following files: