rdoc 7.2.0 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +4 -7
  3. data/LICENSE.rdoc +4 -0
  4. data/README.md +43 -2
  5. data/RI.md +75 -75
  6. data/doc/markup_reference/markdown.md +104 -3
  7. data/exe/rdoc +2 -2
  8. data/lib/rdoc/code_object/alias.rb +70 -74
  9. data/lib/rdoc/code_object/any_method.rb +305 -298
  10. data/lib/rdoc/code_object/attr.rb +150 -143
  11. data/lib/rdoc/code_object/class_module.rb +801 -765
  12. data/lib/rdoc/code_object/constant.rb +178 -150
  13. data/lib/rdoc/code_object/context/section.rb +133 -160
  14. data/lib/rdoc/code_object/context.rb +925 -952
  15. data/lib/rdoc/code_object/extend.rb +7 -5
  16. data/lib/rdoc/code_object/include.rb +7 -5
  17. data/lib/rdoc/code_object/method_attr.rb +325 -324
  18. data/lib/rdoc/code_object/mixin.rb +97 -95
  19. data/lib/rdoc/code_object/normal_class.rb +77 -78
  20. data/lib/rdoc/code_object/normal_module.rb +61 -59
  21. data/lib/rdoc/code_object/require.rb +23 -39
  22. data/lib/rdoc/code_object/single_class.rb +21 -19
  23. data/lib/rdoc/code_object/top_level.rb +212 -213
  24. data/lib/rdoc/code_object.rb +305 -305
  25. data/lib/rdoc/comment.rb +274 -337
  26. data/lib/rdoc/cross_reference.rb +194 -212
  27. data/lib/rdoc/encoding.rb +105 -103
  28. data/lib/rdoc/erb_partial.rb +13 -11
  29. data/lib/rdoc/erbio.rb +29 -27
  30. data/lib/rdoc/generator/aliki.rb +165 -140
  31. data/lib/rdoc/generator/darkfish.rb +647 -631
  32. data/lib/rdoc/generator/json_index.rb +233 -229
  33. data/lib/rdoc/generator/markup.rb +165 -122
  34. data/lib/rdoc/generator/pot/message_extractor.rb +57 -51
  35. data/lib/rdoc/generator/pot/po.rb +52 -51
  36. data/lib/rdoc/generator/pot/po_entry.rb +138 -132
  37. data/lib/rdoc/generator/pot.rb +85 -81
  38. data/lib/rdoc/generator/ri.rb +23 -19
  39. data/lib/rdoc/generator/template/aliki/DESIGN.md +538 -0
  40. data/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +1 -1
  41. data/lib/rdoc/generator/template/aliki/_footer.rhtml +1 -1
  42. data/lib/rdoc/generator/template/aliki/_head.rhtml +11 -11
  43. data/lib/rdoc/generator/template/aliki/_header.rhtml +29 -44
  44. data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +8 -6
  45. data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +8 -6
  46. data/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +1 -1
  47. data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +2 -2
  48. data/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +4 -4
  49. data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +1 -1
  50. data/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +1 -1
  51. data/lib/rdoc/generator/template/aliki/class.rhtml +56 -46
  52. data/lib/rdoc/generator/template/aliki/css/rdoc.css +538 -283
  53. data/lib/rdoc/generator/template/aliki/index.rhtml +1 -1
  54. data/lib/rdoc/generator/template/aliki/js/aliki.js +80 -102
  55. data/lib/rdoc/generator/template/aliki/page.rhtml +1 -1
  56. data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +1 -1
  57. data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +2 -2
  58. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +1 -1
  59. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +8 -6
  60. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +8 -6
  61. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +1 -1
  62. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +1 -1
  63. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +1 -1
  64. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +5 -5
  65. data/lib/rdoc/generator/template/darkfish/class.rhtml +18 -21
  66. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +0 -1
  67. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +3 -3
  68. data/lib/rdoc/generator.rb +48 -46
  69. data/lib/rdoc/i18n/locale.rb +99 -95
  70. data/lib/rdoc/i18n/text.rb +109 -105
  71. data/lib/rdoc/i18n.rb +7 -5
  72. data/lib/rdoc/markdown/byte_runtime.rb +80 -0
  73. data/lib/rdoc/markdown.kpeg +30 -21
  74. data/lib/rdoc/markdown.rb +329 -151
  75. data/lib/rdoc/markup/block_quote.rb +12 -8
  76. data/lib/rdoc/markup/document.rb +127 -123
  77. data/lib/rdoc/markup/formatter.rb +215 -221
  78. data/lib/rdoc/markup/heading.rb +1 -4
  79. data/lib/rdoc/markup/include.rb +33 -29
  80. data/lib/rdoc/markup/indented_paragraph.rb +37 -33
  81. data/lib/rdoc/markup/inline_parser.rb +281 -277
  82. data/lib/rdoc/markup/list.rb +80 -88
  83. data/lib/rdoc/markup/list_item.rb +73 -85
  84. data/lib/rdoc/markup/paragraph.rb +23 -19
  85. data/lib/rdoc/markup/parser.rb +501 -497
  86. data/lib/rdoc/markup/pre_process.rb +284 -305
  87. data/lib/rdoc/markup/raw.rb +2 -2
  88. data/lib/rdoc/markup/rule.rb +16 -12
  89. data/lib/rdoc/markup/to_ansi.rb +143 -139
  90. data/lib/rdoc/markup/to_bs.rb +72 -68
  91. data/lib/rdoc/markup/to_html.rb +600 -493
  92. data/lib/rdoc/markup/to_html_crossref.rb +221 -191
  93. data/lib/rdoc/markup/to_html_snippet.rb +232 -227
  94. data/lib/rdoc/markup/to_joined_paragraph.rb +40 -41
  95. data/lib/rdoc/markup/to_label.rb +63 -59
  96. data/lib/rdoc/markup/to_markdown.rb +212 -208
  97. data/lib/rdoc/markup/to_rdoc.rb +336 -332
  98. data/lib/rdoc/markup/to_table_of_contents.rb +66 -62
  99. data/lib/rdoc/markup/to_test.rb +60 -56
  100. data/lib/rdoc/markup/to_tt_only.rb +83 -86
  101. data/lib/rdoc/markup/verbatim.rb +62 -58
  102. data/lib/rdoc/markup.rb +198 -196
  103. data/lib/rdoc/options.rb +1063 -1076
  104. data/lib/rdoc/parser/c.rb +1039 -1036
  105. data/lib/rdoc/parser/changelog.rb +319 -315
  106. data/lib/rdoc/parser/markdown.rb +17 -13
  107. data/lib/rdoc/parser/rbs.rb +279 -0
  108. data/lib/rdoc/parser/rd.rb +17 -13
  109. data/lib/rdoc/parser/ruby.rb +1231 -2222
  110. data/lib/rdoc/parser/ruby_colorizer.rb +303 -0
  111. data/lib/rdoc/parser/simple.rb +31 -27
  112. data/lib/rdoc/parser/text.rb +12 -8
  113. data/lib/rdoc/parser.rb +230 -221
  114. data/lib/rdoc/rbs_helper.rb +186 -0
  115. data/lib/rdoc/rd/inline.rb +57 -53
  116. data/lib/rdoc/rd.rb +90 -88
  117. data/lib/rdoc/rdoc.rb +547 -366
  118. data/lib/rdoc/ri/driver.rb +1141 -1130
  119. data/lib/rdoc/ri/formatter.rb +7 -3
  120. data/lib/rdoc/ri/paths.rb +140 -136
  121. data/lib/rdoc/ri/servlet.rb +456 -0
  122. data/lib/rdoc/ri/store.rb +4 -2
  123. data/lib/rdoc/ri/task.rb +55 -51
  124. data/lib/rdoc/ri.rb +14 -11
  125. data/lib/rdoc/rubygems_hook.rb +194 -192
  126. data/lib/rdoc/server.rb +462 -0
  127. data/lib/rdoc/stats/normal.rb +46 -42
  128. data/lib/rdoc/stats/quiet.rb +39 -35
  129. data/lib/rdoc/stats/verbose.rb +35 -31
  130. data/lib/rdoc/stats.rb +363 -338
  131. data/lib/rdoc/store.rb +919 -725
  132. data/lib/rdoc/task.rb +260 -255
  133. data/lib/rdoc/text.rb +130 -245
  134. data/lib/rdoc/token_stream.rb +101 -115
  135. data/lib/rdoc/tom_doc.rb +203 -201
  136. data/lib/rdoc/version.rb +1 -1
  137. data/lib/rdoc.rb +35 -7
  138. data/lib/rubygems_plugin.rb +2 -11
  139. data/rdoc-logo.svg +43 -0
  140. data/rdoc.gemspec +6 -4
  141. metadata +36 -20
  142. data/lib/rdoc/code_object/anon_class.rb +0 -10
  143. data/lib/rdoc/code_object/ghost_method.rb +0 -6
  144. data/lib/rdoc/code_object/meta_method.rb +0 -6
  145. data/lib/rdoc/markdown/literals.kpeg +0 -21
  146. data/lib/rdoc/markdown/literals.rb +0 -454
  147. data/lib/rdoc/parser/prism_ruby.rb +0 -1112
  148. data/lib/rdoc/parser/ripper_state_lex.rb +0 -302
  149. data/lib/rdoc/parser/ruby_tools.rb +0 -163
  150. data/lib/rdoc/servlet.rb +0 -452
data/lib/rdoc/markdown.rb CHANGED
@@ -576,7 +576,9 @@ class RDoc::Markdown
576
576
  require_relative 'markup/to_joined_paragraph'
577
577
  require_relative 'markdown/entities'
578
578
 
579
- require_relative 'markdown/literals'
579
+ require_relative 'markdown/byte_runtime'
580
+
581
+ prepend ByteRuntime
580
582
 
581
583
  ##
582
584
  # Supported extensions
@@ -788,6 +790,8 @@ class RDoc::Markdown
788
790
  # the note order list for proper display at the end of the document.
789
791
 
790
792
  def note_for ref
793
+ return unless @note_order
794
+
791
795
  @note_order << ref
792
796
 
793
797
  label = @note_order.length
@@ -831,8 +835,12 @@ class RDoc::Markdown
831
835
  if notes? then
832
836
  @footnotes = {}
833
837
 
834
- setup_parser markdown, @debug
835
- peg_parse 'Notes'
838
+ # A note definition must contain "[^", so documents without one
839
+ # have nothing for the collecting pass to find
840
+ if markdown.include? '[^' then
841
+ setup_parser markdown, @debug
842
+ peg_parse 'Notes'
843
+ end
836
844
 
837
845
  # using note_order on the first pass would be a bug
838
846
  @note_order = []
@@ -945,9 +953,7 @@ class RDoc::Markdown
945
953
 
946
954
 
947
955
  # :stopdoc:
948
- def setup_foreign_grammar
949
- @_grammar_literals = RDoc::Markdown::Literals.new(nil)
950
- end
956
+ def setup_foreign_grammar; end
951
957
 
952
958
  # root = Doc
953
959
  def _root
@@ -956,21 +962,11 @@ class RDoc::Markdown
956
962
  return _tmp
957
963
  end
958
964
 
959
- # Doc = BOM? Block*:a { RDoc::Markup::Document.new(*a.compact) }
965
+ # Doc = Block*:a { RDoc::Markup::Document.new(*a.compact) }
960
966
  def _Doc
961
967
 
962
968
  _save = self.pos
963
969
  while true # sequence
964
- _save1 = self.pos
965
- _tmp = apply(:_BOM)
966
- unless _tmp
967
- _tmp = true
968
- self.pos = _save1
969
- end
970
- unless _tmp
971
- self.pos = _save
972
- break
973
- end
974
970
  _ary = []
975
971
  while true
976
972
  _tmp = apply(:_Block)
@@ -1656,7 +1652,7 @@ class RDoc::Markdown
1656
1652
  return _tmp
1657
1653
  end
1658
1654
 
1659
- # BlockQuoteRaw = @StartList:a (">" " "? Line:l { a << l } (!">" !@BlankLine Line:c { a << c })* (@BlankLine:n { a << n })*)+ { inner_parse a.join }
1655
+ # BlockQuoteRaw = @StartList:a (">" " "? Line:l { a << l } (!">" !@BlankLine !(AtxStart @Spacechar) !Bullet !Enumerator !(&{ github? } Ticks3) Line:c { a << c })* (">" @BlankLine:n { a << n })*)+ { inner_parse a.join }
1660
1656
  def _BlockQuoteRaw
1661
1657
 
1662
1658
  _save = self.pos
@@ -1718,6 +1714,68 @@ class RDoc::Markdown
1718
1714
  self.pos = _save5
1719
1715
  break
1720
1716
  end
1717
+ _save8 = self.pos
1718
+
1719
+ _save9 = self.pos
1720
+ while true # sequence
1721
+ _tmp = apply(:_AtxStart)
1722
+ unless _tmp
1723
+ self.pos = _save9
1724
+ break
1725
+ end
1726
+ _tmp = _Spacechar()
1727
+ unless _tmp
1728
+ self.pos = _save9
1729
+ end
1730
+ break
1731
+ end # end sequence
1732
+
1733
+ _tmp = _tmp ? nil : true
1734
+ self.pos = _save8
1735
+ unless _tmp
1736
+ self.pos = _save5
1737
+ break
1738
+ end
1739
+ _save10 = self.pos
1740
+ _tmp = apply(:_Bullet)
1741
+ _tmp = _tmp ? nil : true
1742
+ self.pos = _save10
1743
+ unless _tmp
1744
+ self.pos = _save5
1745
+ break
1746
+ end
1747
+ _save11 = self.pos
1748
+ _tmp = apply(:_Enumerator)
1749
+ _tmp = _tmp ? nil : true
1750
+ self.pos = _save11
1751
+ unless _tmp
1752
+ self.pos = _save5
1753
+ break
1754
+ end
1755
+ _save12 = self.pos
1756
+
1757
+ _save13 = self.pos
1758
+ while true # sequence
1759
+ _save14 = self.pos
1760
+ _tmp = begin; github? ; end
1761
+ self.pos = _save14
1762
+ unless _tmp
1763
+ self.pos = _save13
1764
+ break
1765
+ end
1766
+ _tmp = apply(:_Ticks3)
1767
+ unless _tmp
1768
+ self.pos = _save13
1769
+ end
1770
+ break
1771
+ end # end sequence
1772
+
1773
+ _tmp = _tmp ? nil : true
1774
+ self.pos = _save12
1775
+ unless _tmp
1776
+ self.pos = _save5
1777
+ break
1778
+ end
1721
1779
  _tmp = apply(:_Line)
1722
1780
  c = @result
1723
1781
  unless _tmp
@@ -1741,18 +1799,23 @@ class RDoc::Markdown
1741
1799
  end
1742
1800
  while true
1743
1801
 
1744
- _save9 = self.pos
1802
+ _save16 = self.pos
1745
1803
  while true # sequence
1804
+ _tmp = match_string(">")
1805
+ unless _tmp
1806
+ self.pos = _save16
1807
+ break
1808
+ end
1746
1809
  _tmp = _BlankLine()
1747
1810
  n = @result
1748
1811
  unless _tmp
1749
- self.pos = _save9
1812
+ self.pos = _save16
1750
1813
  break
1751
1814
  end
1752
1815
  @result = begin; a << n ; end
1753
1816
  _tmp = true
1754
1817
  unless _tmp
1755
- self.pos = _save9
1818
+ self.pos = _save16
1756
1819
  end
1757
1820
  break
1758
1821
  end # end sequence
@@ -1769,65 +1832,127 @@ class RDoc::Markdown
1769
1832
  if _tmp
1770
1833
  while true
1771
1834
 
1772
- _save10 = self.pos
1835
+ _save17 = self.pos
1773
1836
  while true # sequence
1774
1837
  _tmp = match_string(">")
1775
1838
  unless _tmp
1776
- self.pos = _save10
1839
+ self.pos = _save17
1777
1840
  break
1778
1841
  end
1779
- _save11 = self.pos
1842
+ _save18 = self.pos
1780
1843
  _tmp = match_string(" ")
1781
1844
  unless _tmp
1782
1845
  _tmp = true
1783
- self.pos = _save11
1846
+ self.pos = _save18
1784
1847
  end
1785
1848
  unless _tmp
1786
- self.pos = _save10
1849
+ self.pos = _save17
1787
1850
  break
1788
1851
  end
1789
1852
  _tmp = apply(:_Line)
1790
1853
  l = @result
1791
1854
  unless _tmp
1792
- self.pos = _save10
1855
+ self.pos = _save17
1793
1856
  break
1794
1857
  end
1795
1858
  @result = begin; a << l ; end
1796
1859
  _tmp = true
1797
1860
  unless _tmp
1798
- self.pos = _save10
1861
+ self.pos = _save17
1799
1862
  break
1800
1863
  end
1801
1864
  while true
1802
1865
 
1803
- _save13 = self.pos
1866
+ _save20 = self.pos
1804
1867
  while true # sequence
1805
- _save14 = self.pos
1868
+ _save21 = self.pos
1806
1869
  _tmp = match_string(">")
1807
1870
  _tmp = _tmp ? nil : true
1808
- self.pos = _save14
1871
+ self.pos = _save21
1809
1872
  unless _tmp
1810
- self.pos = _save13
1873
+ self.pos = _save20
1811
1874
  break
1812
1875
  end
1813
- _save15 = self.pos
1876
+ _save22 = self.pos
1814
1877
  _tmp = _BlankLine()
1815
1878
  _tmp = _tmp ? nil : true
1816
- self.pos = _save15
1879
+ self.pos = _save22
1880
+ unless _tmp
1881
+ self.pos = _save20
1882
+ break
1883
+ end
1884
+ _save23 = self.pos
1885
+
1886
+ _save24 = self.pos
1887
+ while true # sequence
1888
+ _tmp = apply(:_AtxStart)
1889
+ unless _tmp
1890
+ self.pos = _save24
1891
+ break
1892
+ end
1893
+ _tmp = _Spacechar()
1894
+ unless _tmp
1895
+ self.pos = _save24
1896
+ end
1897
+ break
1898
+ end # end sequence
1899
+
1900
+ _tmp = _tmp ? nil : true
1901
+ self.pos = _save23
1902
+ unless _tmp
1903
+ self.pos = _save20
1904
+ break
1905
+ end
1906
+ _save25 = self.pos
1907
+ _tmp = apply(:_Bullet)
1908
+ _tmp = _tmp ? nil : true
1909
+ self.pos = _save25
1910
+ unless _tmp
1911
+ self.pos = _save20
1912
+ break
1913
+ end
1914
+ _save26 = self.pos
1915
+ _tmp = apply(:_Enumerator)
1916
+ _tmp = _tmp ? nil : true
1917
+ self.pos = _save26
1918
+ unless _tmp
1919
+ self.pos = _save20
1920
+ break
1921
+ end
1922
+ _save27 = self.pos
1923
+
1924
+ _save28 = self.pos
1925
+ while true # sequence
1926
+ _save29 = self.pos
1927
+ _tmp = begin; github? ; end
1928
+ self.pos = _save29
1929
+ unless _tmp
1930
+ self.pos = _save28
1931
+ break
1932
+ end
1933
+ _tmp = apply(:_Ticks3)
1934
+ unless _tmp
1935
+ self.pos = _save28
1936
+ end
1937
+ break
1938
+ end # end sequence
1939
+
1940
+ _tmp = _tmp ? nil : true
1941
+ self.pos = _save27
1817
1942
  unless _tmp
1818
- self.pos = _save13
1943
+ self.pos = _save20
1819
1944
  break
1820
1945
  end
1821
1946
  _tmp = apply(:_Line)
1822
1947
  c = @result
1823
1948
  unless _tmp
1824
- self.pos = _save13
1949
+ self.pos = _save20
1825
1950
  break
1826
1951
  end
1827
1952
  @result = begin; a << c ; end
1828
1953
  _tmp = true
1829
1954
  unless _tmp
1830
- self.pos = _save13
1955
+ self.pos = _save20
1831
1956
  end
1832
1957
  break
1833
1958
  end # end sequence
@@ -1836,23 +1961,28 @@ class RDoc::Markdown
1836
1961
  end
1837
1962
  _tmp = true
1838
1963
  unless _tmp
1839
- self.pos = _save10
1964
+ self.pos = _save17
1840
1965
  break
1841
1966
  end
1842
1967
  while true
1843
1968
 
1844
- _save17 = self.pos
1969
+ _save31 = self.pos
1845
1970
  while true # sequence
1971
+ _tmp = match_string(">")
1972
+ unless _tmp
1973
+ self.pos = _save31
1974
+ break
1975
+ end
1846
1976
  _tmp = _BlankLine()
1847
1977
  n = @result
1848
1978
  unless _tmp
1849
- self.pos = _save17
1979
+ self.pos = _save31
1850
1980
  break
1851
1981
  end
1852
1982
  @result = begin; a << n ; end
1853
1983
  _tmp = true
1854
1984
  unless _tmp
1855
- self.pos = _save17
1985
+ self.pos = _save31
1856
1986
  end
1857
1987
  break
1858
1988
  end # end sequence
@@ -1861,7 +1991,7 @@ class RDoc::Markdown
1861
1991
  end
1862
1992
  _tmp = true
1863
1993
  unless _tmp
1864
- self.pos = _save10
1994
+ self.pos = _save17
1865
1995
  end
1866
1996
  break
1867
1997
  end # end sequence
@@ -8835,27 +8965,34 @@ class RDoc::Markdown
8835
8965
  return _tmp
8836
8966
  end
8837
8967
 
8838
- # HtmlBlock = < (HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) > @BlankLine+ { if html? then RDoc::Markup::Raw.new text end }
8968
+ # HtmlBlock = &"<" < (HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) > @BlankLine+ { if html? then RDoc::Markup::Raw.new text end }
8839
8969
  def _HtmlBlock
8840
8970
 
8841
8971
  _save = self.pos
8842
8972
  while true # sequence
8973
+ _save1 = self.pos
8974
+ _tmp = match_string("<")
8975
+ self.pos = _save1
8976
+ unless _tmp
8977
+ self.pos = _save
8978
+ break
8979
+ end
8843
8980
  _text_start = self.pos
8844
8981
 
8845
- _save1 = self.pos
8982
+ _save2 = self.pos
8846
8983
  while true # choice
8847
8984
  _tmp = apply(:_HtmlBlockInTags)
8848
8985
  break if _tmp
8849
- self.pos = _save1
8986
+ self.pos = _save2
8850
8987
  _tmp = apply(:_HtmlComment)
8851
8988
  break if _tmp
8852
- self.pos = _save1
8989
+ self.pos = _save2
8853
8990
  _tmp = apply(:_HtmlBlockSelfClosing)
8854
8991
  break if _tmp
8855
- self.pos = _save1
8992
+ self.pos = _save2
8856
8993
  _tmp = apply(:_HtmlUnclosed)
8857
8994
  break if _tmp
8858
- self.pos = _save1
8995
+ self.pos = _save2
8859
8996
  break
8860
8997
  end # end choice
8861
8998
 
@@ -8866,7 +9003,7 @@ class RDoc::Markdown
8866
9003
  self.pos = _save
8867
9004
  break
8868
9005
  end
8869
- _save2 = self.pos
9006
+ _save3 = self.pos
8870
9007
  _tmp = _BlankLine()
8871
9008
  if _tmp
8872
9009
  while true
@@ -8875,7 +9012,7 @@ class RDoc::Markdown
8875
9012
  end
8876
9013
  _tmp = true
8877
9014
  else
8878
- self.pos = _save2
9015
+ self.pos = _save3
8879
9016
  end
8880
9017
  unless _tmp
8881
9018
  self.pos = _save
@@ -9653,7 +9790,7 @@ class RDoc::Markdown
9653
9790
  return _tmp
9654
9791
  end
9655
9792
 
9656
- # Inline = (Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)
9793
+ # Inline = (Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | StrippedComment | Entity | EscapedChar | Symbol)
9657
9794
  def _Inline
9658
9795
 
9659
9796
  _save = self.pos
@@ -9697,6 +9834,9 @@ class RDoc::Markdown
9697
9834
  _tmp = apply(:_RawHtml)
9698
9835
  break if _tmp
9699
9836
  self.pos = _save
9837
+ _tmp = apply(:_StrippedComment)
9838
+ break if _tmp
9839
+ self.pos = _save
9700
9840
  _tmp = apply(:_Entity)
9701
9841
  break if _tmp
9702
9842
  self.pos = _save
@@ -13997,7 +14137,7 @@ class RDoc::Markdown
13997
14137
  return _tmp
13998
14138
  end
13999
14139
 
14000
- # RawHtml = < (HtmlComment | HtmlBlockScript | HtmlTag) > { if html? then text else '' end }
14140
+ # RawHtml = < (HtmlBlockScript | HtmlTag) > { html? ? text : '' }
14001
14141
  def _RawHtml
14002
14142
 
14003
14143
  _save = self.pos
@@ -14006,9 +14146,6 @@ class RDoc::Markdown
14006
14146
 
14007
14147
  _save1 = self.pos
14008
14148
  while true # choice
14009
- _tmp = apply(:_HtmlComment)
14010
- break if _tmp
14011
- self.pos = _save1
14012
14149
  _tmp = apply(:_HtmlBlockScript)
14013
14150
  break if _tmp
14014
14151
  self.pos = _save1
@@ -14025,7 +14162,7 @@ class RDoc::Markdown
14025
14162
  self.pos = _save
14026
14163
  break
14027
14164
  end
14028
- @result = begin; if html? then text else '' end ; end
14165
+ @result = begin; html? ? text : '' ; end
14029
14166
  _tmp = true
14030
14167
  unless _tmp
14031
14168
  self.pos = _save
@@ -14037,6 +14174,28 @@ class RDoc::Markdown
14037
14174
  return _tmp
14038
14175
  end
14039
14176
 
14177
+ # StrippedComment = HtmlComment { '' }
14178
+ def _StrippedComment
14179
+
14180
+ _save = self.pos
14181
+ while true # sequence
14182
+ _tmp = apply(:_HtmlComment)
14183
+ unless _tmp
14184
+ self.pos = _save
14185
+ break
14186
+ end
14187
+ @result = begin; '' ; end
14188
+ _tmp = true
14189
+ unless _tmp
14190
+ self.pos = _save
14191
+ end
14192
+ break
14193
+ end # end sequence
14194
+
14195
+ set_failed_rule :_StrippedComment unless _tmp
14196
+ return _tmp
14197
+ end
14198
+
14040
14199
  # BlankLine = @Sp @Newline { "\n" }
14041
14200
  def _BlankLine
14042
14201
 
@@ -14594,37 +14753,30 @@ class RDoc::Markdown
14594
14753
  return _tmp
14595
14754
  end
14596
14755
 
14597
- # Alphanumeric = %literals.Alphanumeric
14756
+ # Alphanumeric = /\p{Word}/
14598
14757
  def _Alphanumeric
14599
- _tmp = @_grammar_literals.external_invoke(self, :_Alphanumeric)
14758
+ _tmp = scan(/\G(?-mix:\p{Word})/)
14600
14759
  set_failed_rule :_Alphanumeric unless _tmp
14601
14760
  return _tmp
14602
14761
  end
14603
14762
 
14604
- # AlphanumericAscii = %literals.AlphanumericAscii
14763
+ # AlphanumericAscii = /[A-Za-z0-9]/
14605
14764
  def _AlphanumericAscii
14606
- _tmp = @_grammar_literals.external_invoke(self, :_AlphanumericAscii)
14765
+ _tmp = scan(/\G(?-mix:[A-Za-z0-9])/)
14607
14766
  set_failed_rule :_AlphanumericAscii unless _tmp
14608
14767
  return _tmp
14609
14768
  end
14610
14769
 
14611
- # BOM = %literals.BOM
14612
- def _BOM
14613
- _tmp = @_grammar_literals.external_invoke(self, :_BOM)
14614
- set_failed_rule :_BOM unless _tmp
14615
- return _tmp
14616
- end
14617
-
14618
- # Newline = %literals.Newline
14770
+ # Newline = /\n|\r\n?|\p{Zl}|\p{Zp}/
14619
14771
  def _Newline
14620
- _tmp = @_grammar_literals.external_invoke(self, :_Newline)
14772
+ _tmp = scan(/\G(?-mix:\n|\r\n?|\p{Zl}|\p{Zp})/)
14621
14773
  set_failed_rule :_Newline unless _tmp
14622
14774
  return _tmp
14623
14775
  end
14624
14776
 
14625
- # Spacechar = %literals.Spacechar
14777
+ # Spacechar = /\t|\p{Zs}/
14626
14778
  def _Spacechar
14627
- _tmp = @_grammar_literals.external_invoke(self, :_Spacechar)
14779
+ _tmp = scan(/\G(?-mix:\t|\p{Zs})/)
14628
14780
  set_failed_rule :_Spacechar unless _tmp
14629
14781
  return _tmp
14630
14782
  end
@@ -15320,7 +15472,7 @@ class RDoc::Markdown
15320
15472
  return _tmp
15321
15473
  end
15322
15474
 
15323
- # InlineNote = &{ notes? } "^[" @StartList:a (!"]" Inline:l { a << l })+ "]" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref }
15475
+ # InlineNote = &{ notes? } "^[" @StartList:a (!"]" Inline:l { a << l })+ "]" { if @note_order ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref end }
15324
15476
  def _InlineNote
15325
15477
 
15326
15478
  _save = self.pos
@@ -15411,10 +15563,12 @@ class RDoc::Markdown
15411
15563
  self.pos = _save
15412
15564
  break
15413
15565
  end
15414
- @result = begin; ref = [:inline, @note_order.length]
15415
- @footnotes[ref] = paragraph a
15566
+ @result = begin; if @note_order
15567
+ ref = [:inline, @note_order.length]
15568
+ @footnotes[ref] = paragraph a
15416
15569
 
15417
- note_for ref
15570
+ note_for ref
15571
+ end
15418
15572
  ; end
15419
15573
  _tmp = true
15420
15574
  unless _tmp
@@ -15570,7 +15724,7 @@ class RDoc::Markdown
15570
15724
  return _tmp
15571
15725
  end
15572
15726
 
15573
- # 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 }
15727
+ # CodeFence = &{ github? } Ticks3 (@Sp StrChunk:format)? @Sp @Newline? < ((!"`" Nonspacechar)+ | !Ticks3 /`+/ | Spacechar | @Newline)+ > Ticks3 @Sp @Newline* { verbatim = RDoc::Markup::Verbatim.new text verbatim.format = format.intern if format.instance_of?(String) verbatim }
15574
15728
  def _CodeFence
15575
15729
 
15576
15730
  _save = self.pos
@@ -15612,31 +15766,41 @@ class RDoc::Markdown
15612
15766
  self.pos = _save
15613
15767
  break
15614
15768
  end
15615
- _tmp = apply(:_Spnl)
15769
+ _tmp = _Sp()
15616
15770
  unless _tmp
15617
15771
  self.pos = _save
15618
15772
  break
15619
15773
  end
15620
- _text_start = self.pos
15621
15774
  _save4 = self.pos
15622
-
15775
+ _tmp = _Newline()
15776
+ unless _tmp
15777
+ _tmp = true
15778
+ self.pos = _save4
15779
+ end
15780
+ unless _tmp
15781
+ self.pos = _save
15782
+ break
15783
+ end
15784
+ _text_start = self.pos
15623
15785
  _save5 = self.pos
15624
- while true # choice
15625
- _save6 = self.pos
15626
15786
 
15787
+ _save6 = self.pos
15788
+ while true # choice
15627
15789
  _save7 = self.pos
15790
+
15791
+ _save8 = self.pos
15628
15792
  while true # sequence
15629
- _save8 = self.pos
15793
+ _save9 = self.pos
15630
15794
  _tmp = match_string("`")
15631
15795
  _tmp = _tmp ? nil : true
15632
- self.pos = _save8
15796
+ self.pos = _save9
15633
15797
  unless _tmp
15634
- self.pos = _save7
15798
+ self.pos = _save8
15635
15799
  break
15636
15800
  end
15637
15801
  _tmp = apply(:_Nonspacechar)
15638
15802
  unless _tmp
15639
- self.pos = _save7
15803
+ self.pos = _save8
15640
15804
  end
15641
15805
  break
15642
15806
  end # end sequence
@@ -15644,19 +15808,19 @@ class RDoc::Markdown
15644
15808
  if _tmp
15645
15809
  while true
15646
15810
 
15647
- _save9 = self.pos
15811
+ _save10 = self.pos
15648
15812
  while true # sequence
15649
- _save10 = self.pos
15813
+ _save11 = self.pos
15650
15814
  _tmp = match_string("`")
15651
15815
  _tmp = _tmp ? nil : true
15652
- self.pos = _save10
15816
+ self.pos = _save11
15653
15817
  unless _tmp
15654
- self.pos = _save9
15818
+ self.pos = _save10
15655
15819
  break
15656
15820
  end
15657
15821
  _tmp = apply(:_Nonspacechar)
15658
15822
  unless _tmp
15659
- self.pos = _save9
15823
+ self.pos = _save10
15660
15824
  end
15661
15825
  break
15662
15826
  end # end sequence
@@ -15665,59 +15829,59 @@ class RDoc::Markdown
15665
15829
  end
15666
15830
  _tmp = true
15667
15831
  else
15668
- self.pos = _save6
15832
+ self.pos = _save7
15669
15833
  end
15670
15834
  break if _tmp
15671
- self.pos = _save5
15835
+ self.pos = _save6
15672
15836
 
15673
- _save11 = self.pos
15837
+ _save12 = self.pos
15674
15838
  while true # sequence
15675
- _save12 = self.pos
15839
+ _save13 = self.pos
15676
15840
  _tmp = apply(:_Ticks3)
15677
15841
  _tmp = _tmp ? nil : true
15678
- self.pos = _save12
15842
+ self.pos = _save13
15679
15843
  unless _tmp
15680
- self.pos = _save11
15844
+ self.pos = _save12
15681
15845
  break
15682
15846
  end
15683
15847
  _tmp = scan(/\G(?-mix:`+)/)
15684
15848
  unless _tmp
15685
- self.pos = _save11
15849
+ self.pos = _save12
15686
15850
  end
15687
15851
  break
15688
15852
  end # end sequence
15689
15853
 
15690
15854
  break if _tmp
15691
- self.pos = _save5
15855
+ self.pos = _save6
15692
15856
  _tmp = apply(:_Spacechar)
15693
15857
  break if _tmp
15694
- self.pos = _save5
15858
+ self.pos = _save6
15695
15859
  _tmp = _Newline()
15696
15860
  break if _tmp
15697
- self.pos = _save5
15861
+ self.pos = _save6
15698
15862
  break
15699
15863
  end # end choice
15700
15864
 
15701
15865
  if _tmp
15702
15866
  while true
15703
15867
 
15704
- _save13 = self.pos
15868
+ _save14 = self.pos
15705
15869
  while true # choice
15706
- _save14 = self.pos
15707
-
15708
15870
  _save15 = self.pos
15871
+
15872
+ _save16 = self.pos
15709
15873
  while true # sequence
15710
- _save16 = self.pos
15874
+ _save17 = self.pos
15711
15875
  _tmp = match_string("`")
15712
15876
  _tmp = _tmp ? nil : true
15713
- self.pos = _save16
15877
+ self.pos = _save17
15714
15878
  unless _tmp
15715
- self.pos = _save15
15879
+ self.pos = _save16
15716
15880
  break
15717
15881
  end
15718
15882
  _tmp = apply(:_Nonspacechar)
15719
15883
  unless _tmp
15720
- self.pos = _save15
15884
+ self.pos = _save16
15721
15885
  end
15722
15886
  break
15723
15887
  end # end sequence
@@ -15725,19 +15889,19 @@ class RDoc::Markdown
15725
15889
  if _tmp
15726
15890
  while true
15727
15891
 
15728
- _save17 = self.pos
15892
+ _save18 = self.pos
15729
15893
  while true # sequence
15730
- _save18 = self.pos
15894
+ _save19 = self.pos
15731
15895
  _tmp = match_string("`")
15732
15896
  _tmp = _tmp ? nil : true
15733
- self.pos = _save18
15897
+ self.pos = _save19
15734
15898
  unless _tmp
15735
- self.pos = _save17
15899
+ self.pos = _save18
15736
15900
  break
15737
15901
  end
15738
15902
  _tmp = apply(:_Nonspacechar)
15739
15903
  unless _tmp
15740
- self.pos = _save17
15904
+ self.pos = _save18
15741
15905
  end
15742
15906
  break
15743
15907
  end # end sequence
@@ -15746,36 +15910,36 @@ class RDoc::Markdown
15746
15910
  end
15747
15911
  _tmp = true
15748
15912
  else
15749
- self.pos = _save14
15913
+ self.pos = _save15
15750
15914
  end
15751
15915
  break if _tmp
15752
- self.pos = _save13
15916
+ self.pos = _save14
15753
15917
 
15754
- _save19 = self.pos
15918
+ _save20 = self.pos
15755
15919
  while true # sequence
15756
- _save20 = self.pos
15920
+ _save21 = self.pos
15757
15921
  _tmp = apply(:_Ticks3)
15758
15922
  _tmp = _tmp ? nil : true
15759
- self.pos = _save20
15923
+ self.pos = _save21
15760
15924
  unless _tmp
15761
- self.pos = _save19
15925
+ self.pos = _save20
15762
15926
  break
15763
15927
  end
15764
15928
  _tmp = scan(/\G(?-mix:`+)/)
15765
15929
  unless _tmp
15766
- self.pos = _save19
15930
+ self.pos = _save20
15767
15931
  end
15768
15932
  break
15769
15933
  end # end sequence
15770
15934
 
15771
15935
  break if _tmp
15772
- self.pos = _save13
15936
+ self.pos = _save14
15773
15937
  _tmp = apply(:_Spacechar)
15774
15938
  break if _tmp
15775
- self.pos = _save13
15939
+ self.pos = _save14
15776
15940
  _tmp = _Newline()
15777
15941
  break if _tmp
15778
- self.pos = _save13
15942
+ self.pos = _save14
15779
15943
  break
15780
15944
  end # end choice
15781
15945
 
@@ -15783,7 +15947,7 @@ class RDoc::Markdown
15783
15947
  end
15784
15948
  _tmp = true
15785
15949
  else
15786
- self.pos = _save4
15950
+ self.pos = _save5
15787
15951
  end
15788
15952
  if _tmp
15789
15953
  text = get_text(_text_start)
@@ -15937,7 +16101,7 @@ class RDoc::Markdown
15937
16101
  return _tmp
15938
16102
  end
15939
16103
 
15940
- # TableRow = ((TableItem:item1 TableItem2*:items { [item1, *items] }):row | TableItem2+:row) "|"? @Newline { row }
16104
+ # TableRow = ((TableItem:item1 TableItem2+:items { [item1, *items] }):row | TableItem2+:row) "|"? @Newline { row }
15941
16105
  def _TableRow
15942
16106
 
15943
16107
  _save = self.pos
@@ -15954,14 +16118,21 @@ class RDoc::Markdown
15954
16118
  self.pos = _save2
15955
16119
  break
15956
16120
  end
16121
+ _save3 = self.pos
15957
16122
  _ary = []
15958
- while true
15959
- _tmp = apply(:_TableItem2)
15960
- _ary << @result if _tmp
15961
- break unless _tmp
16123
+ _tmp = apply(:_TableItem2)
16124
+ if _tmp
16125
+ _ary << @result
16126
+ while true
16127
+ _tmp = apply(:_TableItem2)
16128
+ _ary << @result if _tmp
16129
+ break unless _tmp
16130
+ end
16131
+ _tmp = true
16132
+ @result = _ary
16133
+ else
16134
+ self.pos = _save3
15962
16135
  end
15963
- _tmp = true
15964
- @result = _ary
15965
16136
  items = @result
15966
16137
  unless _tmp
15967
16138
  self.pos = _save2
@@ -16077,7 +16248,7 @@ class RDoc::Markdown
16077
16248
  return _tmp
16078
16249
  end
16079
16250
 
16080
- # TableLine = ((TableAlign:align1 TableAlign2*:aligns {[align1, *aligns] }):line | TableAlign2+:line) "|"? @Newline { line }
16251
+ # TableLine = ((TableAlign:align1 TableAlign2+:aligns {[align1, *aligns] }):line | TableAlign2+:line) "|"? @Newline { line }
16081
16252
  def _TableLine
16082
16253
 
16083
16254
  _save = self.pos
@@ -16094,14 +16265,21 @@ class RDoc::Markdown
16094
16265
  self.pos = _save2
16095
16266
  break
16096
16267
  end
16268
+ _save3 = self.pos
16097
16269
  _ary = []
16098
- while true
16099
- _tmp = apply(:_TableAlign2)
16100
- _ary << @result if _tmp
16101
- break unless _tmp
16270
+ _tmp = apply(:_TableAlign2)
16271
+ if _tmp
16272
+ _ary << @result
16273
+ while true
16274
+ _tmp = apply(:_TableAlign2)
16275
+ _ary << @result if _tmp
16276
+ break unless _tmp
16277
+ end
16278
+ _tmp = true
16279
+ @result = _ary
16280
+ else
16281
+ self.pos = _save3
16102
16282
  end
16103
- _tmp = true
16104
- @result = _ary
16105
16283
  aligns = @result
16106
16284
  unless _tmp
16107
16285
  self.pos = _save2
@@ -16429,7 +16607,7 @@ class RDoc::Markdown
16429
16607
 
16430
16608
  Rules = {}
16431
16609
  Rules[:_root] = rule_info("root", "Doc")
16432
- Rules[:_Doc] = rule_info("Doc", "BOM? Block*:a { RDoc::Markup::Document.new(*a.compact) }")
16610
+ Rules[:_Doc] = rule_info("Doc", "Block*:a { RDoc::Markup::Document.new(*a.compact) }")
16433
16611
  Rules[:_Block] = rule_info("Block", "@BlankLine* (BlockQuote | Verbatim | CodeFence | Table | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)")
16434
16612
  Rules[:_Para] = rule_info("Para", "@NonindentSpace Inlines:a @BlankLine+ { paragraph a }")
16435
16613
  Rules[:_Plain] = rule_info("Plain", "Inlines:a { paragraph a }")
@@ -16443,7 +16621,7 @@ class RDoc::Markdown
16443
16621
  Rules[:_SetextHeading2] = rule_info("SetextHeading2", "&(@RawLine SetextBottom2) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom2 { RDoc::Markup::Heading.new(2, a.join) }")
16444
16622
  Rules[:_Heading] = rule_info("Heading", "(SetextHeading | AtxHeading)")
16445
16623
  Rules[:_BlockQuote] = rule_info("BlockQuote", "BlockQuoteRaw:a { RDoc::Markup::BlockQuote.new(*a) }")
16446
- Rules[:_BlockQuoteRaw] = rule_info("BlockQuoteRaw", "@StartList:a (\">\" \" \"? Line:l { a << l } (!\">\" !@BlankLine Line:c { a << c })* (@BlankLine:n { a << n })*)+ { inner_parse a.join }")
16624
+ Rules[:_BlockQuoteRaw] = rule_info("BlockQuoteRaw", "@StartList:a (\">\" \" \"? Line:l { a << l } (!\">\" !@BlankLine !(AtxStart @Spacechar) !Bullet !Enumerator !(&{ github? } Ticks3) Line:c { a << c })* (\">\" @BlankLine:n { a << n })*)+ { inner_parse a.join }")
16447
16625
  Rules[:_NonblankIndentedLine] = rule_info("NonblankIndentedLine", "!@BlankLine IndentedLine")
16448
16626
  Rules[:_VerbatimChunk] = rule_info("VerbatimChunk", "@BlankLine*:a NonblankIndentedLine+:b { a.concat b }")
16449
16627
  Rules[:_Verbatim] = rule_info("Verbatim", "VerbatimChunk+:a { RDoc::Markup::Verbatim.new(*a.flatten) }")
@@ -16565,7 +16743,7 @@ class RDoc::Markdown
16565
16743
  Rules[:_HtmlBlockCloseHead] = rule_info("HtmlBlockCloseHead", "\"<\" Spnl \"/\" (\"head\" | \"HEAD\") Spnl \">\"")
16566
16744
  Rules[:_HtmlBlockHead] = rule_info("HtmlBlockHead", "HtmlBlockOpenHead (!HtmlBlockCloseHead .)* HtmlBlockCloseHead")
16567
16745
  Rules[:_HtmlBlockInTags] = rule_info("HtmlBlockInTags", "(HtmlAnchor | HtmlBlockAddress | HtmlBlockBlockquote | HtmlBlockCenter | HtmlBlockDir | HtmlBlockDiv | HtmlBlockDl | HtmlBlockFieldset | HtmlBlockForm | HtmlBlockH1 | HtmlBlockH2 | HtmlBlockH3 | HtmlBlockH4 | HtmlBlockH5 | HtmlBlockH6 | HtmlBlockMenu | HtmlBlockNoframes | HtmlBlockNoscript | HtmlBlockOl | HtmlBlockP | HtmlBlockPre | HtmlBlockTable | HtmlBlockUl | HtmlBlockDd | HtmlBlockDt | HtmlBlockFrameset | HtmlBlockLi | HtmlBlockTbody | HtmlBlockTd | HtmlBlockTfoot | HtmlBlockTh | HtmlBlockThead | HtmlBlockTr | HtmlBlockScript | HtmlBlockHead)")
16568
- Rules[:_HtmlBlock] = rule_info("HtmlBlock", "< (HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) > @BlankLine+ { if html? then RDoc::Markup::Raw.new text end }")
16746
+ Rules[:_HtmlBlock] = rule_info("HtmlBlock", "&\"<\" < (HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) > @BlankLine+ { if html? then RDoc::Markup::Raw.new text end }")
16569
16747
  Rules[:_HtmlUnclosed] = rule_info("HtmlUnclosed", "\"<\" Spnl HtmlUnclosedType Spnl HtmlAttribute* Spnl \">\"")
16570
16748
  Rules[:_HtmlUnclosedType] = rule_info("HtmlUnclosedType", "(\"HR\" | \"hr\")")
16571
16749
  Rules[:_HtmlBlockSelfClosing] = rule_info("HtmlBlockSelfClosing", "\"<\" Spnl HtmlBlockType Spnl HtmlAttribute* \"/\" Spnl \">\"")
@@ -16575,7 +16753,7 @@ class RDoc::Markdown
16575
16753
  Rules[:_InStyleTags] = rule_info("InStyleTags", "StyleOpen (!StyleClose .)* StyleClose")
16576
16754
  Rules[:_StyleBlock] = rule_info("StyleBlock", "< InStyleTags > @BlankLine* { if css? then RDoc::Markup::Raw.new text end }")
16577
16755
  Rules[:_Inlines] = rule_info("Inlines", "(!@Endline Inline:i { i } | @Endline:c !(&{ github? } Ticks3 /[^`\\n]*$/) &Inline { c })+:chunks @Endline? { chunks }")
16578
- Rules[:_Inline] = rule_info("Inline", "(Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)")
16756
+ Rules[:_Inline] = rule_info("Inline", "(Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | StrippedComment | Entity | EscapedChar | Symbol)")
16579
16757
  Rules[:_Space] = rule_info("Space", "@Spacechar+ { \" \" }")
16580
16758
  Rules[:_Str] = rule_info("Str", "@StartList:a < @NormalChar+ > { a = text } (StrChunk:c { a << c })* { rdoc_escape(a) }")
16581
16759
  Rules[:_StrChunk] = rule_info("StrChunk", "< (@NormalChar | /_+/ &Alphanumeric)+ > { text }")
@@ -16627,7 +16805,8 @@ class RDoc::Markdown
16627
16805
  Rules[:_Ticks4] = rule_info("Ticks4", "\"````\" !\"`\"")
16628
16806
  Rules[:_Ticks5] = rule_info("Ticks5", "\"`````\" !\"`\"")
16629
16807
  Rules[:_Code] = rule_info("Code", "(Ticks1 < ((!\"`\" Nonspacechar)+ | !Ticks1 /`+/ | !Ticks1 (@Spacechar | @Newline !@BlankLine))+ > Ticks1 | Ticks2 < ((!\"`\" Nonspacechar)+ | !Ticks2 /`+/ | !Ticks2 (@Spacechar | @Newline !@BlankLine))+ > Ticks2 | Ticks3 < ((!\"`\" Nonspacechar)+ | !Ticks3 /`+/ | !Ticks3 (@Spacechar | @Newline !@BlankLine))+ > Ticks3 | Ticks4 < ((!\"`\" Nonspacechar)+ | !Ticks4 /`+/ | !Ticks4 (@Spacechar | @Newline !@BlankLine))+ > Ticks4 | Ticks5 < ((!\"`\" Nonspacechar)+ | !Ticks5 /`+/ | !Ticks5 (@Spacechar | @Newline !@BlankLine))+ > Ticks5) { code text }")
16630
- Rules[:_RawHtml] = rule_info("RawHtml", "< (HtmlComment | HtmlBlockScript | HtmlTag) > { if html? then text else '' end }")
16808
+ Rules[:_RawHtml] = rule_info("RawHtml", "< (HtmlBlockScript | HtmlTag) > { html? ? text : '' }")
16809
+ Rules[:_StrippedComment] = rule_info("StrippedComment", "HtmlComment { '' }")
16631
16810
  Rules[:_BlankLine] = rule_info("BlankLine", "@Sp @Newline { \"\\n\" }")
16632
16811
  Rules[:_Quoted] = rule_info("Quoted", "(\"\\\"\" (!\"\\\"\" .)* \"\\\"\" | \"'\" (!\"'\" .)* \"'\")")
16633
16812
  Rules[:_HtmlAttribute] = rule_info("HtmlAttribute", "(AlphanumericAscii | \"-\")+ Spnl (\"=\" Spnl (Quoted | (!\">\" Nonspacechar)+))? Spnl")
@@ -16640,11 +16819,10 @@ class RDoc::Markdown
16640
16819
  Rules[:_SpecialChar] = rule_info("SpecialChar", "(/[~*_`&\\[\\]()<!\#\\\\'\"]/ | @ExtendedSpecialChar)")
16641
16820
  Rules[:_NormalChar] = rule_info("NormalChar", "!(@SpecialChar | @Spacechar | @Newline) .")
16642
16821
  Rules[:_Digit] = rule_info("Digit", "[0-9]")
16643
- Rules[:_Alphanumeric] = rule_info("Alphanumeric", "%literals.Alphanumeric")
16644
- Rules[:_AlphanumericAscii] = rule_info("AlphanumericAscii", "%literals.AlphanumericAscii")
16645
- Rules[:_BOM] = rule_info("BOM", "%literals.BOM")
16646
- Rules[:_Newline] = rule_info("Newline", "%literals.Newline")
16647
- Rules[:_Spacechar] = rule_info("Spacechar", "%literals.Spacechar")
16822
+ Rules[:_Alphanumeric] = rule_info("Alphanumeric", "/\\p{Word}/")
16823
+ Rules[:_AlphanumericAscii] = rule_info("AlphanumericAscii", "/[A-Za-z0-9]/")
16824
+ Rules[:_Newline] = rule_info("Newline", "/\\n|\\r\\n?|\\p{Zl}|\\p{Zp}/")
16825
+ Rules[:_Spacechar] = rule_info("Spacechar", "/\\t|\\p{Zs}/")
16648
16826
  Rules[:_HexEntity] = rule_info("HexEntity", "/&\#x/i < /[0-9a-fA-F]+/ > \";\" { rdoc_escape([text.to_i(16)].pack('U')) }")
16649
16827
  Rules[:_DecEntity] = rule_info("DecEntity", "\"&\#\" < /[0-9]+/ > \";\" { rdoc_escape([text.to_i].pack('U')) }")
16650
16828
  Rules[:_CharEntity] = rule_info("CharEntity", "\"&\" < /[A-Za-z0-9]+/ > \";\" { if entity = HTML_ENTITIES[text] then rdoc_escape(entity.pack('U*')) else \"&\#{text};\" end }")
@@ -16660,16 +16838,16 @@ class RDoc::Markdown
16660
16838
  Rules[:_NoteReference] = rule_info("NoteReference", "&{ notes? } RawNoteReference:ref { note_for ref }")
16661
16839
  Rules[:_RawNoteReference] = rule_info("RawNoteReference", "\"[^\" < (!@Newline !\"]\" .)+ > \"]\" { text }")
16662
16840
  Rules[:_Note] = rule_info("Note", "&{ notes? } @NonindentSpace RawNoteReference:ref \":\" @Sp @StartList:a RawNoteBlock:i { a.concat i } (&Indent RawNoteBlock:i { a.concat i })* { @footnotes[ref] = paragraph a nil }")
16663
- Rules[:_InlineNote] = rule_info("InlineNote", "&{ notes? } \"^[\" @StartList:a (!\"]\" Inline:l { a << l })+ \"]\" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref }")
16841
+ Rules[:_InlineNote] = rule_info("InlineNote", "&{ notes? } \"^[\" @StartList:a (!\"]\" Inline:l { a << l })+ \"]\" { if @note_order ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref end }")
16664
16842
  Rules[:_Notes] = rule_info("Notes", "(Note | SkipBlock)*")
16665
16843
  Rules[:_RawNoteBlock] = rule_info("RawNoteBlock", "@StartList:a (!@BlankLine !RawNoteReference OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }")
16666
- Rules[:_CodeFence] = rule_info("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 }")
16844
+ Rules[:_CodeFence] = rule_info("CodeFence", "&{ github? } Ticks3 (@Sp StrChunk:format)? @Sp @Newline? < ((!\"`\" Nonspacechar)+ | !Ticks3 /`+/ | Spacechar | @Newline)+ > Ticks3 @Sp @Newline* { verbatim = RDoc::Markup::Verbatim.new text verbatim.format = format.intern if format.instance_of?(String) verbatim }")
16667
16845
  Rules[:_Table] = rule_info("Table", "&{ github? } TableHead:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) parse_table_cells(table) }")
16668
16846
  Rules[:_TableHead] = rule_info("TableHead", "TableItem2+:items \"|\"? @Newline { items }")
16669
- Rules[:_TableRow] = rule_info("TableRow", "((TableItem:item1 TableItem2*:items { [item1, *items] }):row | TableItem2+:row) \"|\"? @Newline { row }")
16847
+ Rules[:_TableRow] = rule_info("TableRow", "((TableItem:item1 TableItem2+:items { [item1, *items] }):row | TableItem2+:row) \"|\"? @Newline { row }")
16670
16848
  Rules[:_TableItem2] = rule_info("TableItem2", "\"|\" TableItem")
16671
16849
  Rules[:_TableItem] = rule_info("TableItem", "< /(?:\\\\.|[^|\\n])+/ > { text.strip.gsub(/\\\\([|])/, '\\1') }")
16672
- Rules[:_TableLine] = rule_info("TableLine", "((TableAlign:align1 TableAlign2*:aligns {[align1, *aligns] }):line | TableAlign2+:line) \"|\"? @Newline { line }")
16850
+ Rules[:_TableLine] = rule_info("TableLine", "((TableAlign:align1 TableAlign2+:aligns {[align1, *aligns] }):line | TableAlign2+:line) \"|\"? @Newline { line }")
16673
16851
  Rules[:_TableAlign2] = rule_info("TableAlign2", "\"|\" @Sp TableAlign")
16674
16852
  Rules[:_TableAlign] = rule_info("TableAlign", "< /:?-+:?/ > @Sp { text.start_with?(\":\") ? (text.end_with?(\":\") ? :center : :left) : (text.end_with?(\":\") ? :right : nil) }")
16675
16853
  Rules[:_DefinitionList] = rule_info("DefinitionList", "&{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }")