class RDoc::Markdown

def _Block

Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Table | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)
def _Block
  _save = self.pos
  while true # sequence
    while true
      _tmp = _BlankLine()
      break unless _tmp
    end
    _tmp = true
    unless _tmp
      self.pos = _save
      break
    end
    _save2 = self.pos
    while true # choice
      _tmp = apply(:_BlockQuote)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_Verbatim)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_CodeFence)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_Table)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_Note)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_Reference)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_HorizontalRule)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_Heading)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_OrderedList)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_BulletList)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_DefinitionList)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_HtmlBlock)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_StyleBlock)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_Para)
      break if _tmp
      self.pos = _save2
      _tmp = apply(:_Plain)
      break if _tmp
      self.pos = _save2
      break
    end # end choice
    unless _tmp
      self.pos = _save
    end
    break
  end # end sequence
  set_failed_rule :_Block unless _tmp
  return _tmp
end