class Haml::Parser

def silent_script(line)

def silent_script(line)
  raise SyntaxError.new(Error.message(:no_end), line.index) if line.text[1..-1].strip == 'end'
  line = handle_ruby_multiline(line)
  keyword = block_keyword(line.text)
  check_push_script_stack(keyword)
  if ["else", "elsif", "when"].include?(keyword)
    if @script_level_stack.empty?
      raise Haml::SyntaxError.new(Error.message(:missing_if, keyword), @line.index)
    end
    if keyword == 'when' and !@script_level_stack.last[2]
      if @script_level_stack.last[1] + 1 == @line.tabs
        @script_level_stack.last[1] += 1
      end
      @script_level_stack.last[2] = true
    end
    if @script_level_stack.last[1] != @line.tabs
      message = Error.message(:bad_script_indent, keyword, @script_level_stack.last[1], @line.tabs)
      raise Haml::SyntaxError.new(message, @line.index)
    end
  end
  ParseNode.new(:silent_script, @line.index + 1,
    :text => line.text[1..-1], :keyword => keyword)
end