olegskl/rpn-calculator

View on GitHub
rpn.js

Summary

Maintainability
A
0 mins
Test Coverage
/*jslint node:true */
'use strict';

var parse = require('./lib/parser'),
    operators = require('./lib/operators'),
    tokenize = require('./lib/tokenizer'),
    calculate = require('./lib/calculator');

/**
 * Evaluates an expression written in reverse Polish notation.
 *
 * @example
 *    var calc = require('rpn');
 *    calc('1 2 +'); // 3
 *    calc('1 2 + 3 -'); // 0
 *
 * @param  {String|Array} input Arithmetic expression in RPN.
 * @return {Number}             Result.
 */
module.exports = function (input) {
    return calculate(tokenize(parse(input), operators));
};