class SimpleLogic::PrecedenceTable::Operator

Attributes

associativity[RW]
precedence[RW]
symbol[RW]

Public Class Methods

new(precedence, associativity, symbol) click to toggle source
# File lib/simple_logic/precedence_table.rb, line 5
def initialize(precedence, associativity, symbol)
  @precedence = precedence
  @associativity = associativity
  @symbol = symbol
end

Public Instance Methods

apply(l, r) click to toggle source
# File lib/simple_logic/precedence_table.rb, line 15
def apply(l, r)
  if @symbol == "&&"
    l && r
  elsif @symbol == "||"
    l || r
  else
    raise "Invalid operator: #{@symbol}"
  end
end
left_associative?() click to toggle source
# File lib/simple_logic/precedence_table.rb, line 11
def left_associative?
  @associativity == :left
end