diff options
Diffstat (limited to 'src/muparserx-test.cpp')
-rw-r--r-- | src/muparserx-test.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/muparserx-test.cpp b/src/muparserx-test.cpp new file mode 100644 index 0000000..ebc6770 --- /dev/null +++ b/src/muparserx-test.cpp @@ -0,0 +1,48 @@ +/* + * This file is part of MXE. + * See index.html for further information. + * + * based on: + * http://articles.beltoforion.de/article.php?a=muparserx&hl=en&p=using&s=idInclude#idEval + */ + +#include "mpParser.h" + +using namespace mup; + +int main(int argc, char *argv[]) +{ + (void)argc; + (void)argv; + + // Create the parser instance + ParserX p; + + // Create an array of mixed type + Value arr(3, 0); + arr.At(0) = 2.0; + arr.At(1) = "this is a string"; + + // Create some basic values + Value cVal(cmplx_type(1, 1)); + Value sVal("Hello World"); + Value fVal(1.1); + + // Now add the variable to muParser + p.DefineVar("va", Variable(&arr)); + p.DefineVar("a", Variable(&cVal)); + p.DefineVar("b", Variable(&sVal)); + p.DefineVar("c", Variable(&fVal)); + + p.SetExpr("va[0]+a*strlen(b)-c"); + for (int i=0; i<<10; ++i) + { + // evaluate the expression and change the value of + // the variable c in each turn + cVal = 1.1 * i; + Value result = p.Eval(); + + // print the result + console() << result << "\n"; + } +} |