blob: 10dcbdd084bc29e9533f75c1860ca4c94a4f3ce7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
/*
* This file is part of MXE. See LICENSE.md for licensing 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";
}
}
|