Module: Calculator

Defined in:
lib/linmeric/Calculator.rb

Overview

This file contains a simple expression evaluator to convert math binary operations in a result. It is simply a calculator

Author

Massimiliano Dal Mas ([email protected])

License

Distributed under MIT license

Defined Under Namespace

Classes: Evaluator, Lexer, Token

Constant Summary collapse

OP =
["+","-","*","/","^"]

Class Method Summary collapse

Class Method Details

.solve(exp) ⇒ Object

It solves the expression in string format

  • argument: expression to evaluate

  • returns: result of the expression; nil if an error occourred



232
233
234
235
236
237
238
# File 'lib/linmeric/Calculator.rb', line 232

def self.solve(exp)
  lexer = Lexer.new
  evaluator = Evaluator.new
  stream = lexer.tokenize(exp)
  return nil if stream == nil
  return evaluator.evaluate(stream)
end