class Haml::Parser

def close_silent_script(node)

def close_silent_script(node)
  @script_level_stack.pop if ["if", "case", "unless"].include? node.value[:keyword]
  # Post-process case statements to normalize the nesting of "when" clauses
  return unless node.value[:keyword] == "case"
  return unless first = node.children.first
  return unless first.type == :silent_script && first.value[:keyword] == "when"
  return if first.children.empty?
  # If the case node has a "when" child with children, it's the
  # only child. Then we want to put everything nested beneath it
  # beneath the case itself (just like "if").
  node.children = [first, *first.children]
  first.children = []
end