Skip to content

MarcusMiss/MMExpressionSolver

Repository files navigation

Swift

MMExpressionSolver

A Swift-framework to solve (mathematical) expressions.

  • Support of following types: Int, Float, Double, Decimal, String, Date and Bool.

  • 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.

Integration sample

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")

About

A Swift-framework to solve (mathematical) expressions.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors