class Sass::Engine
def parse_line(parent, line, root)
def parse_line(parent, line, root) case line.text[0] when PROPERTY_CHAR if line.text[1] == PROPERTY_CHAR || (@options[:property_syntax] == :new && line.text =~ PROPERTY_OLD && $3.empty?) # Support CSS3-style pseudo-elements, # which begin with ::, # as well as pseudo-classes # if we're using the new property syntax Tree::RuleNode.new(parse_interp(line.text)) else name, eq, value = line.text.scan(PROPERTY_OLD)[0] raise SyntaxError.new("Invalid property: \"#{line.text}\".", :line => @line) if name.nil? || value.nil? parse_property(name, parse_interp(name), eq, value, :old, line) end when ?!, ?$ parse_variable(line) when COMMENT_CHAR parse_comment(line.text) when DIRECTIVE_CHAR parse_directive(parent, line, root) when ESCAPE_CHAR Tree::RuleNode.new(parse_interp(line.text[1..-1])) when MIXIN_DEFINITION_CHAR parse_mixin_definition(line) when MIXIN_INCLUDE_CHAR if line.text[1].nil? || line.text[1] == ?\s Tree::RuleNode.new(parse_interp(line.text)) else parse_mixin_include(line, root) end else parse_property_or_rule(line) end end