# File lib/puppet/parser/ast/arithmetic_operator.rb, line 33 def initialize(hash) super raise ArgumentError, "Invalid arithmetic operator #{@operator}" unless %w{+ - * / << >>}.include?(@operator) end
Iterate across all of our children.
# File lib/puppet/parser/ast/arithmetic_operator.rb, line 10 def each [@lval,@rval,@operator].each { |child| yield child } end
Returns a boolean which is the result of the boolean operation of lval and rval operands
# File lib/puppet/parser/ast/arithmetic_operator.rb, line 16 def evaluate(scope) # evaluate the operands, should return a boolean value lval = @lval.safeevaluate(scope) lval = Puppet::Parser::Scope.number?(lval) if lval == nil raise ArgumentError, "left operand of #{@operator} is not a number" end rval = @rval.safeevaluate(scope) rval = Puppet::Parser::Scope.number?(rval) if rval == nil raise ArgumentError, "right operand of #{@operator} is not a number" end # compute result lval.send(@operator, rval) end