class RDoc::Markdown

def _EmphUl

EmphUl = "_" !@Whitespace @StartList:a (!"_" Inline:b { a << b } | StrongUl:b { a << b })+ "_" { emphasis a.join }
def _EmphUl
  _save = self.pos
  while true # sequence
    _tmp = match_string("_")
    unless _tmp
      self.pos = _save
      break
    end
    _save1 = self.pos
    _tmp = _Whitespace()
    _tmp = _tmp ? nil : true
    self.pos = _save1
    unless _tmp
      self.pos = _save
      break
    end
    _tmp = _StartList()
    a = @result
    unless _tmp
      self.pos = _save
      break
    end
    _save2 = self.pos
    _save3 = self.pos
    while true # choice
      _save4 = self.pos
      while true # sequence
        _save5 = self.pos
        _tmp = match_string("_")
        _tmp = _tmp ? nil : true
        self.pos = _save5
        unless _tmp
          self.pos = _save4
          break
        end
        _tmp = apply(:_Inline)
        b = @result
        unless _tmp
          self.pos = _save4
          break
        end
        @result = begin;  a << b ; end
        _tmp = true
        unless _tmp
          self.pos = _save4
        end
        break
      end # end sequence
      break if _tmp
      self.pos = _save3
      _save6 = self.pos
      while true # sequence
        _tmp = apply(:_StrongUl)
        b = @result
        unless _tmp
          self.pos = _save6
          break
        end
        @result = begin;  a << b ; end
        _tmp = true
        unless _tmp
          self.pos = _save6
        end
        break
      end # end sequence
      break if _tmp
      self.pos = _save3
      break
    end # end choice
    if _tmp
      while true
        _save7 = self.pos
        while true # choice
          _save8 = self.pos
          while true # sequence
            _save9 = self.pos
            _tmp = match_string("_")
            _tmp = _tmp ? nil : true
            self.pos = _save9
            unless _tmp
              self.pos = _save8
              break
            end
            _tmp = apply(:_Inline)
            b = @result
            unless _tmp
              self.pos = _save8
              break
            end
            @result = begin;  a << b ; end
            _tmp = true
            unless _tmp
              self.pos = _save8
            end
            break
          end # end sequence
          break if _tmp
          self.pos = _save7
          _save10 = self.pos
          while true # sequence
            _tmp = apply(:_StrongUl)
            b = @result
            unless _tmp
              self.pos = _save10
              break
            end
            @result = begin;  a << b ; end
            _tmp = true
            unless _tmp
              self.pos = _save10
            end
            break
          end # end sequence
          break if _tmp
          self.pos = _save7
          break
        end # end choice
        break unless _tmp
      end
      _tmp = true
    else
      self.pos = _save2
    end
    unless _tmp
      self.pos = _save
      break
    end
    _tmp = match_string("_")
    unless _tmp
      self.pos = _save
      break
    end
    @result = begin;  emphasis a.join ; end
    _tmp = true
    unless _tmp
      self.pos = _save
    end
    break
  end # end sequence
  set_failed_rule :_EmphUl unless _tmp
  return _tmp
end