class RDoc::Markdown

def _HorizontalRule

HorizontalRule = @NonindentSpace ("*" @Sp "*" @Sp "*" (@Sp "*")* | "-" @Sp "-" @Sp "-" (@Sp "-")* | "_" @Sp "_" @Sp "_" (@Sp "_")*) @Sp @Newline @BlankLine+ { RDoc::Markup::Rule.new 1 }
def _HorizontalRule
  _save = self.pos
  while true # sequence
    _tmp = _NonindentSpace()
    unless _tmp
      self.pos = _save
      break
    end
    _save1 = self.pos
    while true # choice
      _save2 = self.pos
      while true # sequence
        _tmp = match_string("*")
        unless _tmp
          self.pos = _save2
          break
        end
        _tmp = _Sp()
        unless _tmp
          self.pos = _save2
          break
        end
        _tmp = match_string("*")
        unless _tmp
          self.pos = _save2
          break
        end
        _tmp = _Sp()
        unless _tmp
          self.pos = _save2
          break
        end
        _tmp = match_string("*")
        unless _tmp
          self.pos = _save2
          break
        end
        while true
          _save4 = self.pos
          while true # sequence
            _tmp = _Sp()
            unless _tmp
              self.pos = _save4
              break
            end
            _tmp = match_string("*")
            unless _tmp
              self.pos = _save4
            end
            break
          end # end sequence
          break unless _tmp
        end
        _tmp = true
        unless _tmp
          self.pos = _save2
        end
        break
      end # end sequence
      break if _tmp
      self.pos = _save1
      _save5 = self.pos
      while true # sequence
        _tmp = match_string("-")
        unless _tmp
          self.pos = _save5
          break
        end
        _tmp = _Sp()
        unless _tmp
          self.pos = _save5
          break
        end
        _tmp = match_string("-")
        unless _tmp
          self.pos = _save5
          break
        end
        _tmp = _Sp()
        unless _tmp
          self.pos = _save5
          break
        end
        _tmp = match_string("-")
        unless _tmp
          self.pos = _save5
          break
        end
        while true
          _save7 = self.pos
          while true # sequence
            _tmp = _Sp()
            unless _tmp
              self.pos = _save7
              break
            end
            _tmp = match_string("-")
            unless _tmp
              self.pos = _save7
            end
            break
          end # end sequence
          break unless _tmp
        end
        _tmp = true
        unless _tmp
          self.pos = _save5
        end
        break
      end # end sequence
      break if _tmp
      self.pos = _save1
      _save8 = self.pos
      while true # sequence
        _tmp = match_string("_")
        unless _tmp
          self.pos = _save8
          break
        end
        _tmp = _Sp()
        unless _tmp
          self.pos = _save8
          break
        end
        _tmp = match_string("_")
        unless _tmp
          self.pos = _save8
          break
        end
        _tmp = _Sp()
        unless _tmp
          self.pos = _save8
          break
        end
        _tmp = match_string("_")
        unless _tmp
          self.pos = _save8
          break
        end
        while true
          _save10 = self.pos
          while true # sequence
            _tmp = _Sp()
            unless _tmp
              self.pos = _save10
              break
            end
            _tmp = match_string("_")
            unless _tmp
              self.pos = _save10
            end
            break
          end # end sequence
          break unless _tmp
        end
        _tmp = true
        unless _tmp
          self.pos = _save8
        end
        break
      end # end sequence
      break if _tmp
      self.pos = _save1
      break
    end # end choice
    unless _tmp
      self.pos = _save
      break
    end
    _tmp = _Sp()
    unless _tmp
      self.pos = _save
      break
    end
    _tmp = _Newline()
    unless _tmp
      self.pos = _save
      break
    end
    _save11 = self.pos
    _tmp = _BlankLine()
    if _tmp
      while true
        _tmp = _BlankLine()
        break unless _tmp
      end
      _tmp = true
    else
      self.pos = _save11
    end
    unless _tmp
      self.pos = _save
      break
    end
    @result = begin;  RDoc::Markup::Rule.new 1 ; end
    _tmp = true
    unless _tmp
      self.pos = _save
    end
    break
  end # end sequence
  set_failed_rule :_HorizontalRule unless _tmp
  return _tmp
end