41template <
typename Allocator,
42 template <
typename,
typename>
class Sequence>
44 Sequence<std::string,Allocator>& sequence)
46 std::ifstream stream(file_name.c_str());
47 if (!stream)
return 0;
50 std::size_t line_count = 0;
51 while (std::getline(stream,buffer))
55 else if (
'#' == buffer[0])
58 sequence.push_back(buffer);
65inline bool test_gen(
const std::string& expr_file)
106 expression_t expression;
107 expression.register_symbol_table(symbol_table);
111 std::deque<std::string> expr_str_list;
120 bool load_success =
true;
122 for (std::size_t i = 0; i < expr_str_list.size(); ++i)
128 if (!parser.
compile(expr_str_list[i],current_expression))
130 load_success =
false;
131 printf(
"test_gen() - Error: %s Expression: %s\n",
132 parser.
error().c_str(),
133 expr_str_list[i].c_str());
146 printf(
"equal((%050.30f),(%s))\n",
148 expr_str_list[i].c_str());
154int main(
int argc,
char* argv[])
158 printf(
"usage: exprtk_testgen <file name>\n");
162 const std::string file_name = argv[1];
163 test_gen<double>(file_name);
bool register_symbol_table(symbol_table< T > &st)
bool compile(const std::string &expression_string, expression< T > &expr)
std::string error() const
bool add_function(const std::string &function_name, function_t &function)
bool add_variable(const std::string &variable_name, T &t, const bool is_constant=false)
static const std::string expression_list[]
bool test_gen(const std::string &expr_file)
std::size_t load_expressions(const std::string &file_name, Sequence< std::string, Allocator > &sequence)