module Sass::Constant

def parenthesize(value, return_after_expr = false)

def parenthesize(value, return_after_expr = false)
  to_return = []
  while (token = value.shift) && token != :close
    case token
    when :open
      to_return << parenthesize(value)
    when :neg
      # This is never actually reached, but we'll leave it in just in case.
      raise Sass::SyntaxError.new("Unterminated unary minus.") if value.first.nil?
      to_return << [:neg, parenthesize(value, true)]
    when :const
      raise Sass::SyntaxError.new("Unterminated constant.") if value.first.nil?
      raise Sass::SyntaxError.new("Invalid constant.") unless value.first.is_a?(::String)
      to_return << [:const, value.first]
      value.shift
    else
      to_return << token
    end
    return to_return.first if return_after_expr
  end
  return to_return
end