Evaluate arbitrary expressions using a Javascript-like syntax.
Supported expressions:
- Arithmetic - evaluates to a number
- String - evaluates to a string
- Logical - evaluates to a boolean
npm install @trs/expression
# or
yarn add @trs/expression
# or
pnpm add @trs/expressionExpression strings can be evaluated to a single value.
import{evaluate}from'@trs/expression';constast=evaluate('1 + 2 == 3');assert(ast===true);Expression strings can be parsed into an expression tree.
import{parse}from'@trs/expression';constast=parse('1 + 2 == 3');assert(ast=={type: "BinaryExpression",
... etc});Expression trees can be evaluated to a single value.
import{evaluate}from'@trs/expression';constresult=evaluate({type: "BinaryExpression",operator: "==",left: {type: "BinaryExpression",operator: "+",left: {type: "Literal",kind: "number",value: "1"},right: {type: "Literal",kind: "number",value: "2"}},right: {type: "Literal",kind: "number",value: "3"}});assert(result===true);