class Haml::Precompiler::Line

def tabs

def tabs
  line = self
  @tabs ||= precompiler.instance_eval do
    break 0 if line.text.empty? || !(whitespace = line.full[/^\s+/])
    if @indentation.nil?
      @indentation = whitespace
      if @indentation.include?(?\s) && @indentation.include?(?\t)
        raise SyntaxError.new("Indentation can't use both tabs and spaces.", line.index)
      end
      @flat_spaces = @indentation * @template_tabs if flat?
      break 1
    end
    tabs = whitespace.length / @indentation.length
    break tabs if whitespace == @indentation * tabs
    break @template_tabs if flat? && whitespace =~ /^#{@indentation * @template_tabs}/
    raise SyntaxError.new(<<END.strip.gsub("\n", ' '), line.index)
istent indentation: #{Haml::Shared.human_indentation whitespace, true} used for indentation,
e rest of the document was indented using #{Haml::Shared.human_indentation @indentation}.
  end
end