Awesome
zExpression
A library to parse and evalate math expression with functions and variables.
Example:
ActionScript 3:
var c:Number = 1
var expSet:ExpressionSet = new ExpressionSet
// Step 1: Parse expression strings.
expSet.putExp('b', '1 + c + 100 * min(a, 100) / 2')
expSet.putExp('a', 'min(1, 10)')
// Step 2: Set variables and functions
expSet.setVariable('c', c)
expSet.setFunction('min', Math.min) // min() is built-in actually, example only.
// Step 3: Get the result. Step 2, 3 could be done repeatly.
trace('b = ', expSet.getValue('b'))
Optional i18n variables support, by replacing the letterValidator, you can make it support any language:
var expSet:ExpressionSet = new ExpressionSet
// Set a custom letter validator
expSet.letterValidator = CnUtils.isLetterOrCnChar
expSet.putExp('面包', '面粉 * 水')
expSet.putExp('家庭', '爱情 + 面包')
expSet.setVariable('爱情', 99)
expSet.setVariable('面粉', 1)
expSet.setVariable('水', 1)
trace('家庭 = ', expSet.getValue('家庭'))
Supported languages:
- ActionScript 3
TODO:
- C# support.
- C++ support.
- More test cases.