class RDoc::Markdown

def _CodeFence

CodeFence = &{ github? } Ticks3 (@Sp StrChunk:format)? Spnl < ((!"`" Nonspacechar)+ | !Ticks3 /`+/ | Spacechar | @Newline)+ > Ticks3 @Sp @Newline* { verbatim = RDoc::Markup::Verbatim.new text verbatim.format = format.intern if format.instance_of?(String) verbatim }
def _CodeFence
  _save = self.pos
  while true # sequence
    _save1 = self.pos
    _tmp = begin;  github? ; end
    self.pos = _save1
    unless _tmp
      self.pos = _save
      break
    end
    _tmp = apply(:_Ticks3)
    unless _tmp
      self.pos = _save
      break
    end
    _save2 = self.pos
    _save3 = self.pos
    while true # sequence
      _tmp = _Sp()
      unless _tmp
        self.pos = _save3
        break
      end
      _tmp = apply(:_StrChunk)
      format = @result
      unless _tmp
        self.pos = _save3
      end
      break
    end # end sequence
    unless _tmp
      _tmp = true
      self.pos = _save2
    end
    unless _tmp
      self.pos = _save
      break
    end
    _tmp = apply(:_Spnl)
    unless _tmp
      self.pos = _save
      break
    end
    _text_start = self.pos
    _save4 = self.pos
    _save5 = self.pos
    while true # choice
      _save6 = self.pos
      _save7 = self.pos
      while true # sequence
        _save8 = self.pos
        _tmp = match_string("`")
        _tmp = _tmp ? nil : true
        self.pos = _save8
        unless _tmp
          self.pos = _save7
          break
        end
        _tmp = apply(:_Nonspacechar)
        unless _tmp
          self.pos = _save7
        end
        break
      end # end sequence
      if _tmp
        while true
          _save9 = self.pos
          while true # sequence
            _save10 = self.pos
            _tmp = match_string("`")
            _tmp = _tmp ? nil : true
            self.pos = _save10
            unless _tmp
              self.pos = _save9
              break
            end
            _tmp = apply(:_Nonspacechar)
            unless _tmp
              self.pos = _save9
            end
            break
          end # end sequence
          break unless _tmp
        end
        _tmp = true
      else
        self.pos = _save6
      end
      break if _tmp
      self.pos = _save5
      _save11 = self.pos
      while true # sequence
        _save12 = self.pos
        _tmp = apply(:_Ticks3)
        _tmp = _tmp ? nil : true
        self.pos = _save12
        unless _tmp
          self.pos = _save11
          break
        end
        _tmp = scan(/\G(?-mix:`+)/)
        unless _tmp
          self.pos = _save11
        end
        break
      end # end sequence
      break if _tmp
      self.pos = _save5
      _tmp = apply(:_Spacechar)
      break if _tmp
      self.pos = _save5
      _tmp = _Newline()
      break if _tmp
      self.pos = _save5
      break
    end # end choice
    if _tmp
      while true
        _save13 = self.pos
        while true # choice
          _save14 = self.pos
          _save15 = self.pos
          while true # sequence
            _save16 = self.pos
            _tmp = match_string("`")
            _tmp = _tmp ? nil : true
            self.pos = _save16
            unless _tmp
              self.pos = _save15
              break
            end
            _tmp = apply(:_Nonspacechar)
            unless _tmp
              self.pos = _save15
            end
            break
          end # end sequence
          if _tmp
            while true
              _save17 = self.pos
              while true # sequence
                _save18 = self.pos
                _tmp = match_string("`")
                _tmp = _tmp ? nil : true
                self.pos = _save18
                unless _tmp
                  self.pos = _save17
                  break
                end
                _tmp = apply(:_Nonspacechar)
                unless _tmp
                  self.pos = _save17
                end
                break
              end # end sequence
              break unless _tmp
            end
            _tmp = true
          else
            self.pos = _save14
          end
          break if _tmp
          self.pos = _save13
          _save19 = self.pos
          while true # sequence
            _save20 = self.pos
            _tmp = apply(:_Ticks3)
            _tmp = _tmp ? nil : true
            self.pos = _save20
            unless _tmp
              self.pos = _save19
              break
            end
            _tmp = scan(/\G(?-mix:`+)/)
            unless _tmp
              self.pos = _save19
            end
            break
          end # end sequence
          break if _tmp
          self.pos = _save13
          _tmp = apply(:_Spacechar)
          break if _tmp
          self.pos = _save13
          _tmp = _Newline()
          break if _tmp
          self.pos = _save13
          break
        end # end choice
        break unless _tmp
      end
      _tmp = true
    else
      self.pos = _save4
    end
    if _tmp
      text = get_text(_text_start)
    end
    unless _tmp
      self.pos = _save
      break
    end
    _tmp = apply(:_Ticks3)
    unless _tmp
      self.pos = _save
      break
    end
    _tmp = _Sp()
    unless _tmp
      self.pos = _save
      break
    end
    while true
      _tmp = _Newline()
      break unless _tmp
    end
    _tmp = true
    unless _tmp
      self.pos = _save
      break
    end
    @result = begin;  verbatim = RDoc::Markup::Verbatim.new text
            verbatim.format = format.intern if format.instance_of?(String)
            verbatim
          ; end
    _tmp = true
    unless _tmp
      self.pos = _save
    end
    break
  end # end sequence
  set_failed_rule :_CodeFence unless _tmp
  return _tmp
end