Method: RDoc::Markdown#_CodeFence

Defined in:
lib/rdoc/markdown.rb

#_CodeFenceObject

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 }



15595
15596
15597
15598
15599
15600
15601
15602
15603
15604
15605
15606
15607
15608
15609
15610
15611
15612
15613
15614
15615
15616
15617
15618
15619
15620
15621
15622
15623
15624
15625
15626
15627
15628
15629
15630
15631
15632
15633
15634
15635
15636
15637
15638
15639
15640
15641
15642
15643
15644
15645
15646
15647
15648
15649
15650
15651
15652
15653
15654
15655
15656
15657
15658
15659
15660
15661
15662
15663
15664
15665
15666
15667
15668
15669
15670
15671
15672
15673
15674
15675
15676
15677
15678
15679
15680
15681
15682
15683
15684
15685
15686
15687
15688
15689
15690
15691
15692
15693
15694
15695
15696
15697
15698
15699
15700
15701
15702
15703
15704
15705
15706
15707
15708
15709
15710
15711
15712
15713
15714
15715
15716
15717
15718
15719
15720
15721
15722
15723
15724
15725
15726
15727
15728
15729
15730
15731
15732
15733
15734
15735
15736
15737
15738
15739
15740
15741
15742
15743
15744
15745
15746
15747
15748
15749
15750
15751
15752
15753
15754
15755
15756
15757
15758
15759
15760
15761
15762
15763
15764
15765
15766
15767
15768
15769
15770
15771
15772
15773
15774
15775
15776
15777
15778
15779
15780
15781
15782
15783
15784
15785
15786
15787
15788
15789
15790
15791
15792
15793
15794
15795
15796
15797
15798
15799
15800
15801
15802
15803
15804
15805
15806
15807
15808
15809
15810
15811
15812
15813
15814
15815
15816
15817
15818
15819
15820
15821
15822
15823
15824
15825
15826
15827
15828
15829
15830
15831
15832
15833
15834
15835
15836
15837
15838
15839
15840
15841
15842
15843
15844
15845
15846
15847
15848
# File 'lib/rdoc/markdown.rb', line 15595

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(/\A(?-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(/\A(?-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