class RDoc::Markdown

def _AtxHeading

AtxHeading = AtxStart:s @Spacechar+ AtxInline+:a (@Sp /#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }
def _AtxHeading
  _save = self.pos
  while true # sequence
    _tmp = apply(:_AtxStart)
    s = @result
    unless _tmp
      self.pos = _save
      break
    end
    _save1 = self.pos
    _tmp = _Spacechar()
    if _tmp
      while true
        _tmp = _Spacechar()
        break unless _tmp
      end
      _tmp = true
    else
      self.pos = _save1
    end
    unless _tmp
      self.pos = _save
      break
    end
    _save2 = self.pos
    _ary = []
    _tmp = apply(:_AtxInline)
    if _tmp
      _ary << @result
      while true
        _tmp = apply(:_AtxInline)
        _ary << @result if _tmp
        break unless _tmp
      end
      _tmp = true
      @result = _ary
    else
      self.pos = _save2
    end
    a = @result
    unless _tmp
      self.pos = _save
      break
    end
    _save3 = self.pos
    _save4 = self.pos
    while true # sequence
      _tmp = _Sp()
      unless _tmp
        self.pos = _save4
        break
      end
      _tmp = scan(/\G(?-mix:#*)/)
      unless _tmp
        self.pos = _save4
        break
      end
      _tmp = _Sp()
      unless _tmp
        self.pos = _save4
      end
      break
    end # end sequence
    unless _tmp
      _tmp = true
      self.pos = _save3
    end
    unless _tmp
      self.pos = _save
      break
    end
    _tmp = _Newline()
    unless _tmp
      self.pos = _save
      break
    end
    @result = begin;  RDoc::Markup::Heading.new(s, a.join) ; end
    _tmp = true
    unless _tmp
      self.pos = _save
    end
    break
  end # end sequence
  set_failed_rule :_AtxHeading unless _tmp
  return _tmp
end