class Kramdown::Parser::Kramdown

def parse_block_extensions

location.
Parse one of the block extensions (ALD, block IAL or generic extension) at the current
def parse_block_extensions
  if @src.scan(ALD_START)
    parse_attribute_list(@src[2], @alds[@src[1]] ||= {})
    @tree.children << new_block_el(:eob, :ald)
    true
  elsif @src.check(EXT_BLOCK_START)
    parse_extension_start_tag(:block)
  elsif @src.scan(IAL_BLOCK_START)
    if @tree.children.last && @tree.children.last.type != :blank &&
        (@tree.children.last.type != :eob ||
         [:link_def, :abbrev_def, :footnote_def].include?(@tree.children.last.value))
      parse_attribute_list(@src[1], @tree.children.last.options[:ial] ||= {})
      @tree.children << new_block_el(:eob, :ial) unless @src.check(IAL_BLOCK_START)
    else
      parse_attribute_list(@src[1], @block_ial ||= {})
    end
    true
  else
    false
  end
end