Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

infix-rpn-eval

taxnuke261MIT1.0.0TypeScript support: included

Convert math expressions between postfix (RPN) and infix notations and evaluate them

infix, postfix, dijkstra, shunting, yard, calculator, rpn

readme

infix-rpn-eval

master npm version GitHub forks GitHub issues GitHub license Maintainability Test Coverage

A JavaScript Implementation of Edsger Dijkstra's Shunting-yard algorithm. Works in Node.js and web browsers.

Installation

$ npm install infix-rpn-eval

Usage

Tokens must be space-separated! Unary - goes with its operand, e.g. -4

var infixRpnEval = require("infix-rpn-eval");

infixRpnEval.toPostfix('2 + 3 * 3');       // '2 3 3 * +'
infixRpnEval.toInfix('2 3 3 * +');         // '2 + 3 * 3'
infixRpnEval.evaluatePostfix('2 3 3 * +'); // 11
infixRpnEval.evaluateInfix('2 + 2 * 2');   // 6

infixRpnEval.evaluateInfix('a + b', {
  evaluateMathConstants: {
    // default
    pi: Math.PI,
    tau: Math.PI * 2,
    e: Math.E,
    // custom
    a: 100,
    b: 150
  }
}); // 250