Module: Crapshoot

Defined in:
lib/crapshoot.rb,
lib/crapshoot/scanner.rb,
lib/crapshoot/version.rb,
lib/crapshoot/evaluator.rb,
lib/crapshoot/postfixer.rb,
lib/crapshoot/parser/scan.rb,
lib/crapshoot/tokens/base.rb,
lib/crapshoot/tokens/series.rb,
lib/crapshoot/tokens/constant.rb,
lib/crapshoot/tokens/arithmetic.rb

Defined Under Namespace

Modules: Parser, Tokens Classes: Evaluator, Postfixer, Scanner

Constant Summary collapse

VERSION =
'0.2.0'

Class Method Summary collapse

Class Method Details

.roll(expression) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/crapshoot.rb', line 7

def self.roll(expression)
  scanner = Scanner.new
  postfixer = Postfixer.new
  evaluator = Evaluator.new

  tokens = scanner.parse expression
  postfix_tokens = postfixer.postfixify tokens
  result = evaluator.evaluate postfix_tokens

  return result
end