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