node/lib/metasm/metasm/main.rb
def bind(binding = {})
		if binding[self]
			return binding[self].dup
		end

		l = @lexpr
		r = @rexpr
		if l and binding[l]
			raise "internal error - bound #{l.inspect}" if l.kind_of?(::Numeric)
			l = binding[l]
		elsif l.kind_of? ExpressionType
			l = l.bind(binding)
		end
		if r and binding[r]
			raise "internal error - bound #{r.inspect}" if r.kind_of?(::Numeric)
			r = binding[r]
		elsif r.kind_of? ExpressionType
			r = r.bind(binding)
		end
		Expression.new(@op, r, l)
	end
# returns a new Expression with all variables found in the binding replaced with their value
# does not check the binding's key class except for numeric
# calls lexpr/rexpr #bind if they respond_to? it
returns a new Expression with all variables found in the binding replaced with their value
does not check the binding's key class except for numeric
calls lexpr/rexpr #bind if they respond_to. it
returns a new Expression with all variables found in the binding replaced with their value does not check the binding ' s key class except for numeric calls lexpr / rexpr #bind if they respond_to . it
def bind(binding = {})
		if binding[self]
			return binding[self].dup
		end
		l = @lexpr
		r = @rexpr
		if l and binding[l]
			raise "internal error - bound #{l.inspect}" if l.kind_of?(::Numeric)
			l = binding[l]
		elsif l.kind_of? ExpressionType
			l = l.bind(binding)
		end
		if r and binding[r]
			raise "internal error - bound #{r.inspect}" if r.kind_of?(::Numeric)
			r = binding[r]
		elsif r.kind_of? ExpressionType
			r = r.bind(binding)
		end
		Expression.new(@op, r, l)
	end
def bind ( binding = { } ) if binding [ self ] return binding [ self ] . dup end l = @lexpr r = @rexpr if l and binding [ l ] raise "internal error - bound #{l.inspect}" if l . kind_of? ( :: Numeric ) l = binding [ l ] elsif l . kind_of? ExpressionType l = l . bind ( binding ) end if r and binding [ r ] raise "internal error - bound #{r.inspect}" if r . kind_of? ( :: Numeric ) r = binding [ r ] elsif r . kind_of? ExpressionType r = r . bind ( binding ) end Expression . new ( @op , r , l ) end
returns a new Expression with all variables found in the binding replaced with their value
does not check the binding's key class except for numeric
calls lexpr/rexpr #bind if they respond_to?
returns a new Expression with all variables found in the binding replaced with their value does not check the binding ' s key class except for numeric calls lexpr / rexpr #bind if they respond_to?
binding