class NumRu::Units::ShiftNode

Attributes

lhs[R]
ref[R]
rhs[R]

Public Class Methods

new(lhs, rhs) click to toggle source
# File lib/numru/units.rb, line 2637
def initialize(lhs, rhs)
    @lhs, @rhs = lhs, rhs
end

Public Instance Methods

deref() click to toggle source
# File lib/numru/units.rb, line 2678
def deref
    case @lhs
    when ShiftNode
        @lhs.deref
    else
        @lhs
    end
end
factor() click to toggle source
# File lib/numru/units.rb, line 2691
def factor
    @lhs.factor
end
flatten() click to toggle source
# File lib/numru/units.rb, line 2654
def flatten
    lf = @lhs.flatten
    case lf
    when ShiftNode
        rf = lf.rhs.add_eval(@rhs)
        self.class.new(lf.lhs, rf)
    else
        self.class.new(lf, @rhs.flatten)
    end
end
flatten2() click to toggle source
# File lib/numru/units.rb, line 2653
def flatten2;  @lhs;  end
name() click to toggle source
# File lib/numru/units.rb, line 2687
def name
    @lhs.name
end
sort() click to toggle source
# File lib/numru/units.rb, line 2665
def sort
    self.class.new(@lhs.sort, @rhs.sort)
end
to_s() click to toggle source
# File lib/numru/units.rb, line 2644
def to_s
    "(#{@lhs.to_s} @ #{@rhs.to_s})"
end
trim() click to toggle source
# File lib/numru/units.rb, line 2649
def trim
    self.class.new(@lhs.trim, @rhs.trim2)
end
trim2() click to toggle source
# File lib/numru/units.rb, line 2648
def trim2;  @lhs;  end