A Swift-framework to solve (mathematical) expressions.
-
Support of following types:
Int,Float,Double,Decimal,String,DateandBool. -
Support of additonal types:
Measurement. -
Support for structs, classes and tupels.
-
Support for arrays.
-
Support for variables and const-values.
-
Out-of the box Operators and Functions for mathematical, logarithmic, trigonometry and string-operations.
-
Docc-documentation is included.
let expression: String = "CSTR(var1)"
// Provide configuration
let config: ExpressionConfiguration = ExpressionConfiguration.createDefault()
let result: Result<MMExpression, ExpressionError> = MMExpression.build(
expression: expression,
configuration: config
)
// Provide context
let context: ExpressionEvaluationContextImpl = ExpressionEvaluationContextImpl(configuration: config)
context.variables.storeVariable(identifier: "var1", value: ExpressionValue.of(100))
// Evaluate expression
let evalResult: Result<ExpressionValue, ExpressionError> = result.valueSuccess!.evaluate(context: context)
let evalValue: ExpressionValue = evalResult.valueSuccess!
print("evalValue: \(evalValue)")
#expect(evalValue.isStringValue)
#expect(evalValue.asString()! == "100")