diff options
author | Tony Theodore <tonyt@logyst.com> | 2015-11-21 05:26:30 (GMT) |
---|---|---|
committer | Tony Theodore <tonyt@logyst.com> | 2015-11-21 05:26:30 (GMT) |
commit | f939f4a9b785277a24556584d302aa251e9e932c (patch) | |
tree | bcb8fafb02e36bd91ead6b1430f9399c6ce97248 /src | |
parent | 3465e4db8a5004569c0bfe9f58b82a3c34234eb0 (diff) | |
download | mxe-f939f4a9b785277a24556584d302aa251e9e932c.zip mxe-f939f4a9b785277a24556584d302aa251e9e932c.tar.gz mxe-f939f4a9b785277a24556584d302aa251e9e932c.tar.bz2 |
add package muparserx
Diffstat (limited to 'src')
-rw-r--r-- | src/muparserx-test.cpp | 48 | ||||
-rw-r--r-- | src/muparserx.mk | 26 |
2 files changed, 74 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"; + } +} diff --git a/src/muparserx.mk b/src/muparserx.mk new file mode 100644 index 0000000..34f22b1 --- /dev/null +++ b/src/muparserx.mk @@ -0,0 +1,26 @@ +# This file is part of MXE. +# See index.html for further information. + +PKG := muparserx +$(PKG)_IGNORE := +$(PKG)_VERSION := 4.0.4 +$(PKG)_CHECKSUM := d7ebcab8cb1de88e6dcba21651db8f6055b3e904c45afc387b06b5f4218dda40 +$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION) +$(PKG)_FILE := $($(PKG)_SUBDIR).tar.gz +$(PKG)_URL := https://github.com/beltoforion/$(PKG)/archive/v$($(PKG)_VERSION).tar.gz +$(PKG)_DEPS := gcc + +define $(PKG)_UPDATE + $(call MXE_GET_GITHUB_TAGS, beltoforion/muparserx, v) +endef + +define $(PKG)_BUILD + cd '$(1)' && '$(TARGET)-cmake' \ + -DBUILD_EXAMPLES=OFF + $(MAKE) -C '$(1)' -j '$(JOBS)' install + + '$(TARGET)-g++' \ + -W -Wall -Werror -ansi -pedantic \ + '$(2).cpp' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \ + `'$(TARGET)-pkg-config' $(PKG) --cflags --libs` +endef |