# File lib/autobuild/loaders/config-interpolator.rb, line 34
        def interpolate
            case @node
            when Hash
                @defines = (@node[VarDefKey] || {})

                interpolated = Hash.new
                @node.each do |k, v|
                    begin
                        next if k == VarDefKey
                        interpolated[k] = Interpolator.interpolate(v, self)
                    rescue UndefinedVariable => e
                        e.reference.unshift k
                        raise e
                    end
                end

                interpolated

            when Array
                @node.collect { |v| Interpolator.interpolate(v, self) }

            else
                begin
                    each_interpolation(@node) { |varname| value_of(varname) }
                rescue UndefinedVariable => e
                    e.reference.unshift @node.to_str if @node.respond_to?(:to_str)
                    raise e
                end
            end
        end