infix-rpn-eval
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

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

Package Sidebar

Install

npm i infix-rpn-eval

Weekly Downloads

11

Version

1.0.0

License

MIT

Unpacked Size

13.7 kB

Total Files

17

Last publish

Collaborators

  • semyonf