class ShuntingYard::Parser

Attributes

interpreter[RW]
lexer[RW]

Public Class Methods

new(lexer: nil, interpreter: nil) click to toggle source
# File lib/shunting_yard/parser.rb, line 10
def initialize(lexer: nil, interpreter: nil)
  @lexer = lexer || Lexer.new
  @interpreter = interpreter || Interpreter.new
end

Public Instance Methods

evaluate(input) click to toggle source
# File lib/shunting_yard/parser.rb, line 18
def evaluate(input)
  rpn_tokens = to_rpn(input)
  interpreter.evaluate(rpn_tokens)
end
to_rpn(input) click to toggle source
# File lib/shunting_yard/parser.rb, line 23
def to_rpn(input)
  tokens = tokenize(input)
  interpreter.to_rpn(tokens)
end