diff --git a/exprtk_simple_example_18.cpp b/exprtk_simple_example_18.cpp new file mode 100644 index 0000000..afdd674 --- /dev/null +++ b/exprtk_simple_example_18.cpp @@ -0,0 +1,79 @@ +/* + ************************************************************** + * C++ Mathematical Expression Toolkit Library * + * * + * Simple Example 18 * + * Author: Arash Partow (1999-2016) * + * URL: http://www.partow.net/programming/exprtk/index.html * + * * + * Copyright notice: * + * Free use of the Mathematical Expression Toolkit Library is * + * permitted under the guidelines and in accordance with the * + * most current version of the Common Public License. * + * http://www.opensource.org/licenses/cpl1.0.php * + * * + ************************************************************** +*/ + + +#include +#include + +#include "exprtk.hpp" + + +template +void file_io() +{ + typedef exprtk::symbol_table symbol_table_t; + typedef exprtk::expression expression_t; + typedef exprtk::parser parser_t; + + std::string fileio_program = + " var file_name := 'file.txt'; " + " var stream := null; " + " " + " if (stream := open('file.txt','w')) " + " println('Successfully opened file: ' + file_name); " + " else " + " { " + " println('Failed to open file: ' + file_name); " + " return [false]; " + " } " + " " + " var s := 'Hello world...\n'; " + " " + " for (var i := 0; i < 10; i += 1) " + " { " + " write(stream,s); " + " } " + " " + " if (close(stream)) " + " println('Sucessfully closed file: ' + file_name); " + " else " + " { " + " println('Failed to close file: ' + file_name); " + " return [false]; " + " } "; + + exprtk::rtl::io::println println; + exprtk::rtl::io::file::package package; + + symbol_table_t symbol_table; + symbol_table.add_function("println",println); + symbol_table.add_package (package); + + expression_t expression; + expression.register_symbol_table(symbol_table); + + parser_t parser; + parser.compile(fileio_program,expression); + + printf("Result %10.3f\n",expression.value()); +} + +int main() +{ + file_io(); + return 0; +}