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