class Sass::Engine

def parse_variable(line)

def parse_variable(line)
  name, op, value, default = line.text.scan(Script::MATCH)[0]
  guarded = op =~ /^\|\|/
  raise SyntaxError.new("Illegal nesting: Nothing may be nested beneath variable declarations.",
    :line => @line + 1) unless line.children.empty?
  raise SyntaxError.new("Invalid variable: \"#{line.text}\".",
    :line => @line) unless name && value
  Script.var_warning(name, @line, line.offset + 1, @options[:filename]) if line.text[0] == ?!
  expr = parse_script(value, :offset => line.offset + line.text.index(value))
  if op =~ /=$/
    expr.context = :equals
    type = guarded ? "variable defaults" : "variables"
    Script.equals_warning(type, "$#{name}", expr.to_sass,
      guarded, @line, line.offset + 1, @options[:filename])
  end
  Tree::VariableNode.new(name, expr, default || guarded)
end