You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mxe/src/muparserx-test.cpp

48 lines
1.0 KiB

/*
* This file is part of MXE. See LICENSE.md for licensing information.
*
* based on:
* https://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";
}
}