rdoc 5.0.0 → 6.3.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rdoc might be problematic. Click here for more details.

Files changed (158) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.rdoc +4 -4
  3. data/Gemfile +9 -0
  4. data/History.rdoc +12 -2
  5. data/README.rdoc +5 -6
  6. data/Rakefile +35 -65
  7. data/lib/rdoc/alias.rb +1 -1
  8. data/lib/rdoc/anon_class.rb +1 -1
  9. data/lib/rdoc/any_method.rb +59 -15
  10. data/lib/rdoc/attr.rb +1 -1
  11. data/lib/rdoc/class_module.rb +5 -3
  12. data/lib/rdoc/code_object.rb +2 -9
  13. data/lib/rdoc/code_objects.rb +1 -1
  14. data/lib/rdoc/comment.rb +32 -11
  15. data/lib/rdoc/constant.rb +3 -3
  16. data/lib/rdoc/context/section.rb +1 -14
  17. data/lib/rdoc/context.rb +74 -21
  18. data/lib/rdoc/cross_reference.rb +33 -15
  19. data/lib/rdoc/encoding.rb +58 -30
  20. data/lib/rdoc/erb_partial.rb +2 -2
  21. data/lib/rdoc/erbio.rb +8 -4
  22. data/lib/rdoc/extend.rb +1 -1
  23. data/lib/rdoc/generator/darkfish.rb +60 -29
  24. data/lib/rdoc/generator/json_index.rb +7 -4
  25. data/lib/rdoc/generator/markup.rb +3 -13
  26. data/lib/rdoc/generator/pot/message_extractor.rb +1 -1
  27. data/lib/rdoc/generator/pot/po.rb +3 -3
  28. data/lib/rdoc/generator/pot/po_entry.rb +11 -11
  29. data/lib/rdoc/generator/pot.rb +4 -4
  30. data/lib/rdoc/generator/ri.rb +1 -1
  31. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +2 -2
  32. data/lib/rdoc/generator/template/darkfish/_head.rhtml +9 -7
  33. data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +2 -2
  34. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +2 -2
  35. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
  36. data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +2 -2
  37. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
  38. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
  39. data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +5 -5
  40. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +5 -5
  41. data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +5 -5
  42. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
  43. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +4 -4
  44. data/lib/rdoc/generator/template/darkfish/class.rhtml +45 -47
  45. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +55 -6
  46. data/lib/rdoc/generator/template/darkfish/index.rhtml +3 -4
  47. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +22 -99
  48. data/lib/rdoc/generator/template/darkfish/js/search.js +32 -31
  49. data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +15 -16
  50. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +16 -16
  51. data/lib/rdoc/generator/template/json_index/js/navigation.js +4 -41
  52. data/lib/rdoc/generator/template/json_index/js/searcher.js +6 -6
  53. data/lib/rdoc/generator.rb +1 -1
  54. data/lib/rdoc/ghost_method.rb +1 -1
  55. data/lib/rdoc/i18n/locale.rb +2 -2
  56. data/lib/rdoc/i18n/text.rb +5 -5
  57. data/lib/rdoc/i18n.rb +3 -3
  58. data/lib/rdoc/include.rb +1 -1
  59. data/lib/rdoc/known_classes.rb +1 -1
  60. data/lib/rdoc/markdown/entities.rb +1 -1
  61. data/lib/rdoc/markdown/literals.kpeg +1 -0
  62. data/lib/rdoc/markdown/literals.rb +19 -7
  63. data/lib/rdoc/markdown.kpeg +92 -44
  64. data/lib/rdoc/markdown.rb +1171 -610
  65. data/lib/rdoc/markup/attr_changer.rb +1 -1
  66. data/lib/rdoc/markup/attr_span.rb +9 -3
  67. data/lib/rdoc/markup/attribute_manager.rb +115 -50
  68. data/lib/rdoc/markup/attributes.rb +7 -7
  69. data/lib/rdoc/markup/blank_line.rb +1 -1
  70. data/lib/rdoc/markup/block_quote.rb +1 -1
  71. data/lib/rdoc/markup/document.rb +1 -1
  72. data/lib/rdoc/markup/formatter.rb +25 -24
  73. data/lib/rdoc/markup/hard_break.rb +1 -1
  74. data/lib/rdoc/markup/heading.rb +4 -4
  75. data/lib/rdoc/markup/include.rb +1 -1
  76. data/lib/rdoc/markup/indented_paragraph.rb +1 -1
  77. data/lib/rdoc/markup/list.rb +1 -1
  78. data/lib/rdoc/markup/list_item.rb +1 -1
  79. data/lib/rdoc/markup/paragraph.rb +1 -1
  80. data/lib/rdoc/markup/parser.rb +79 -47
  81. data/lib/rdoc/markup/pre_process.rb +11 -6
  82. data/lib/rdoc/markup/raw.rb +1 -1
  83. data/lib/rdoc/markup/regexp_handling.rb +41 -0
  84. data/lib/rdoc/markup/rule.rb +1 -1
  85. data/lib/rdoc/markup/to_ansi.rb +1 -1
  86. data/lib/rdoc/markup/to_bs.rb +4 -4
  87. data/lib/rdoc/markup/to_html.rb +71 -26
  88. data/lib/rdoc/markup/to_html_crossref.rb +41 -26
  89. data/lib/rdoc/markup/to_html_snippet.rb +10 -10
  90. data/lib/rdoc/markup/to_joined_paragraph.rb +7 -32
  91. data/lib/rdoc/markup/to_label.rb +10 -10
  92. data/lib/rdoc/markup/to_markdown.rb +9 -9
  93. data/lib/rdoc/markup/to_rdoc.rb +35 -7
  94. data/lib/rdoc/markup/to_table_of_contents.rb +2 -1
  95. data/lib/rdoc/markup/to_test.rb +1 -1
  96. data/lib/rdoc/markup/to_tt_only.rb +3 -3
  97. data/lib/rdoc/markup/verbatim.rb +1 -1
  98. data/lib/rdoc/markup.rb +14 -17
  99. data/lib/rdoc/meta_method.rb +1 -1
  100. data/lib/rdoc/method_attr.rb +2 -2
  101. data/lib/rdoc/mixin.rb +1 -1
  102. data/lib/rdoc/normal_class.rb +3 -3
  103. data/lib/rdoc/normal_module.rb +1 -1
  104. data/lib/rdoc/options.rb +79 -21
  105. data/lib/rdoc/parser/c.rb +147 -194
  106. data/lib/rdoc/parser/changelog.rb +150 -19
  107. data/lib/rdoc/parser/markdown.rb +1 -1
  108. data/lib/rdoc/parser/rd.rb +1 -1
  109. data/lib/rdoc/parser/ripper_state_lex.rb +590 -0
  110. data/lib/rdoc/parser/ruby.rb +634 -465
  111. data/lib/rdoc/parser/ruby_tools.rb +33 -34
  112. data/lib/rdoc/parser/simple.rb +3 -3
  113. data/lib/rdoc/parser/text.rb +1 -1
  114. data/lib/rdoc/parser.rb +12 -35
  115. data/lib/rdoc/rd/block_parser.rb +109 -108
  116. data/lib/rdoc/rd/block_parser.ry +3 -3
  117. data/lib/rdoc/rd/inline.rb +5 -5
  118. data/lib/rdoc/rd/inline_parser.rb +186 -185
  119. data/lib/rdoc/rd/inline_parser.ry +1 -1
  120. data/lib/rdoc/rd.rb +1 -1
  121. data/lib/rdoc/rdoc.rb +54 -41
  122. data/lib/rdoc/require.rb +1 -1
  123. data/lib/rdoc/ri/driver.rb +132 -42
  124. data/lib/rdoc/ri/formatter.rb +1 -1
  125. data/lib/rdoc/ri/paths.rb +4 -18
  126. data/lib/rdoc/ri/store.rb +1 -1
  127. data/lib/rdoc/ri/task.rb +2 -2
  128. data/lib/rdoc/ri.rb +1 -1
  129. data/lib/rdoc/rubygems_hook.rb +3 -3
  130. data/lib/rdoc/servlet.rb +21 -12
  131. data/lib/rdoc/single_class.rb +1 -1
  132. data/lib/rdoc/stats/normal.rb +24 -18
  133. data/lib/rdoc/stats/quiet.rb +1 -1
  134. data/lib/rdoc/stats/verbose.rb +1 -1
  135. data/lib/rdoc/stats.rb +1 -1
  136. data/lib/rdoc/store.rb +38 -27
  137. data/lib/rdoc/task.rb +2 -2
  138. data/lib/rdoc/text.rb +16 -21
  139. data/lib/rdoc/token_stream.rb +56 -33
  140. data/lib/rdoc/tom_doc.rb +17 -12
  141. data/lib/rdoc/top_level.rb +9 -3
  142. data/lib/rdoc/version.rb +8 -0
  143. data/lib/rdoc.rb +24 -10
  144. data/man/ri.1 +247 -0
  145. data/rdoc.gemspec +206 -15
  146. metadata +15 -64
  147. data/.document +0 -5
  148. data/.gitignore +0 -13
  149. data/.travis.yml +0 -23
  150. data/lib/gauntlet_rdoc.rb +0 -82
  151. data/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -4
  152. data/lib/rdoc/markup/formatter_test_case.rb +0 -764
  153. data/lib/rdoc/markup/inline.rb +0 -2
  154. data/lib/rdoc/markup/special.rb +0 -41
  155. data/lib/rdoc/markup/text_formatter_test_case.rb +0 -115
  156. data/lib/rdoc/ruby_lex.rb +0 -1367
  157. data/lib/rdoc/ruby_token.rb +0 -461
  158. data/lib/rdoc/test_case.rb +0 -204
data/lib/rdoc/markdown.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  # coding: UTF-8
2
+ # frozen_string_literal: true
2
3
  # :markup: markdown
3
4
 
4
5
  ##
@@ -81,6 +82,18 @@
81
82
  # : A little insect that is known
82
83
  # to enjoy picnics
83
84
  #
85
+ # ### Strike
86
+ #
87
+ # Example:
88
+ #
89
+ # ```
90
+ # This is ~~striked~~.
91
+ # ```
92
+ #
93
+ # Produces:
94
+ #
95
+ # This is ~~striked~~.
96
+ #
84
97
  # ### Github
85
98
  #
86
99
  # The #github extension enables a partial set of [Github Flavored Markdown]
@@ -160,7 +173,7 @@
160
173
  # The port to kpeg was performed by Eric Hodel and Evan Phoenix
161
174
  #
162
175
  # [dingus]: http://daringfireball.net/projects/markdown/dingus
163
- # [GFM]: http://github.github.com/github-flavored-markdown/
176
+ # [GFM]: https://github.github.com/gfm/
164
177
  # [pegmarkdown]: https://github.com/jgm/peg-markdown
165
178
  # [PHPE]: http://michelf.com/projects/php-markdown/extra/#def-list
166
179
  # [syntax]: http://daringfireball.net/projects/markdown/syntax
@@ -540,6 +553,7 @@ class RDoc::Markdown
540
553
  :github,
541
554
  :html,
542
555
  :notes,
556
+ :strike,
543
557
  ]
544
558
 
545
559
  # :section: Extensions
@@ -590,6 +604,11 @@ class RDoc::Markdown
590
604
 
591
605
  extension :notes
592
606
 
607
+ ##
608
+ # Enables the strike extension
609
+
610
+ extension :strike
611
+
593
612
  # :section:
594
613
 
595
614
  ##
@@ -678,7 +697,7 @@ class RDoc::Markdown
678
697
  # with the linking `text` (usually whitespace).
679
698
 
680
699
  def link_to content, label = content, text = nil
681
- raise 'enable notes extension' if
700
+ raise ParseError, 'enable notes extension' if
682
701
  content.start_with? '^' and label.equal? content
683
702
 
684
703
  if ref = @references[label] then
@@ -814,6 +833,17 @@ class RDoc::Markdown
814
833
  end
815
834
  end
816
835
 
836
+ ##
837
+ # Wraps `text` in strike markup for rdoc inline formatting
838
+
839
+ def strike text
840
+ if text =~ /\A[a-z\d.\/-]+\z/i then
841
+ "~#{text}~"
842
+ else
843
+ "<s>#{text}</s>"
844
+ end
845
+ end
846
+
817
847
 
818
848
  # :stopdoc:
819
849
  def setup_foreign_grammar
@@ -867,7 +897,7 @@ class RDoc::Markdown
867
897
  return _tmp
868
898
  end
869
899
 
870
- # Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)
900
+ # Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Table | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)
871
901
  def _Block
872
902
 
873
903
  _save = self.pos
@@ -893,6 +923,9 @@ class RDoc::Markdown
893
923
  _tmp = apply(:_CodeFence)
894
924
  break if _tmp
895
925
  self.pos = _save2
926
+ _tmp = apply(:_Table)
927
+ break if _tmp
928
+ self.pos = _save2
896
929
  _tmp = apply(:_Note)
897
930
  break if _tmp
898
931
  self.pos = _save2
@@ -1005,7 +1038,7 @@ class RDoc::Markdown
1005
1038
  return _tmp
1006
1039
  end
1007
1040
 
1008
- # AtxInline = !@Newline !(@Sp? /#*/ @Sp @Newline) Inline
1041
+ # AtxInline = !@Newline !(@Sp /#*/ @Sp @Newline) Inline
1009
1042
  def _AtxInline
1010
1043
 
1011
1044
  _save = self.pos
@@ -1022,12 +1055,7 @@ class RDoc::Markdown
1022
1055
 
1023
1056
  _save3 = self.pos
1024
1057
  while true # sequence
1025
- _save4 = self.pos
1026
1058
  _tmp = _Sp()
1027
- unless _tmp
1028
- _tmp = true
1029
- self.pos = _save4
1030
- end
1031
1059
  unless _tmp
1032
1060
  self.pos = _save3
1033
1061
  break
@@ -1092,7 +1120,7 @@ class RDoc::Markdown
1092
1120
  return _tmp
1093
1121
  end
1094
1122
 
1095
- # AtxHeading = AtxStart:s @Sp? AtxInline+:a (@Sp? /#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }
1123
+ # AtxHeading = AtxStart:s @Sp AtxInline+:a (@Sp /#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }
1096
1124
  def _AtxHeading
1097
1125
 
1098
1126
  _save = self.pos
@@ -1103,17 +1131,12 @@ class RDoc::Markdown
1103
1131
  self.pos = _save
1104
1132
  break
1105
1133
  end
1106
- _save1 = self.pos
1107
1134
  _tmp = _Sp()
1108
- unless _tmp
1109
- _tmp = true
1110
- self.pos = _save1
1111
- end
1112
1135
  unless _tmp
1113
1136
  self.pos = _save
1114
1137
  break
1115
1138
  end
1116
- _save2 = self.pos
1139
+ _save1 = self.pos
1117
1140
  _ary = []
1118
1141
  _tmp = apply(:_AtxInline)
1119
1142
  if _tmp
@@ -1126,42 +1149,37 @@ class RDoc::Markdown
1126
1149
  _tmp = true
1127
1150
  @result = _ary
1128
1151
  else
1129
- self.pos = _save2
1152
+ self.pos = _save1
1130
1153
  end
1131
1154
  a = @result
1132
1155
  unless _tmp
1133
1156
  self.pos = _save
1134
1157
  break
1135
1158
  end
1136
- _save3 = self.pos
1159
+ _save2 = self.pos
1137
1160
 
1138
- _save4 = self.pos
1161
+ _save3 = self.pos
1139
1162
  while true # sequence
1140
- _save5 = self.pos
1141
1163
  _tmp = _Sp()
1142
1164
  unless _tmp
1143
- _tmp = true
1144
- self.pos = _save5
1145
- end
1146
- unless _tmp
1147
- self.pos = _save4
1165
+ self.pos = _save3
1148
1166
  break
1149
1167
  end
1150
1168
  _tmp = scan(/\A(?-mix:#*)/)
1151
1169
  unless _tmp
1152
- self.pos = _save4
1170
+ self.pos = _save3
1153
1171
  break
1154
1172
  end
1155
1173
  _tmp = _Sp()
1156
1174
  unless _tmp
1157
- self.pos = _save4
1175
+ self.pos = _save3
1158
1176
  end
1159
1177
  break
1160
1178
  end # end sequence
1161
1179
 
1162
1180
  unless _tmp
1163
1181
  _tmp = true
1164
- self.pos = _save3
1182
+ self.pos = _save2
1165
1183
  end
1166
1184
  unless _tmp
1167
1185
  self.pos = _save
@@ -1202,12 +1220,12 @@ class RDoc::Markdown
1202
1220
  return _tmp
1203
1221
  end
1204
1222
 
1205
- # SetextBottom1 = /={3,}/ @Newline
1223
+ # SetextBottom1 = /={1,}/ @Newline
1206
1224
  def _SetextBottom1
1207
1225
 
1208
1226
  _save = self.pos
1209
1227
  while true # sequence
1210
- _tmp = scan(/\A(?-mix:={3,})/)
1228
+ _tmp = scan(/\A(?-mix:={1,})/)
1211
1229
  unless _tmp
1212
1230
  self.pos = _save
1213
1231
  break
@@ -1223,12 +1241,12 @@ class RDoc::Markdown
1223
1241
  return _tmp
1224
1242
  end
1225
1243
 
1226
- # SetextBottom2 = /-{3,}/ @Newline
1244
+ # SetextBottom2 = /-{1,}/ @Newline
1227
1245
  def _SetextBottom2
1228
1246
 
1229
1247
  _save = self.pos
1230
1248
  while true # sequence
1231
- _tmp = scan(/\A(?-mix:-{3,})/)
1249
+ _tmp = scan(/\A(?-mix:-{1,})/)
1232
1250
  unless _tmp
1233
1251
  self.pos = _save
1234
1252
  break
@@ -1244,7 +1262,7 @@ class RDoc::Markdown
1244
1262
  return _tmp
1245
1263
  end
1246
1264
 
1247
- # SetextHeading1 = &(@RawLine SetextBottom1) @StartList:a (!@Endline Inline:b { a << b })+ @Sp? @Newline SetextBottom1 { RDoc::Markup::Heading.new(1, a.join) }
1265
+ # SetextHeading1 = &(@RawLine SetextBottom1) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom1 { RDoc::Markup::Heading.new(1, a.join) }
1248
1266
  def _SetextHeading1
1249
1267
 
1250
1268
  _save = self.pos
@@ -1339,12 +1357,7 @@ class RDoc::Markdown
1339
1357
  self.pos = _save
1340
1358
  break
1341
1359
  end
1342
- _save8 = self.pos
1343
1360
  _tmp = _Sp()
1344
- unless _tmp
1345
- _tmp = true
1346
- self.pos = _save8
1347
- end
1348
1361
  unless _tmp
1349
1362
  self.pos = _save
1350
1363
  break
@@ -1371,7 +1384,7 @@ class RDoc::Markdown
1371
1384
  return _tmp
1372
1385
  end
1373
1386
 
1374
- # SetextHeading2 = &(@RawLine SetextBottom2) @StartList:a (!@Endline Inline:b { a << b })+ @Sp? @Newline SetextBottom2 { RDoc::Markup::Heading.new(2, a.join) }
1387
+ # SetextHeading2 = &(@RawLine SetextBottom2) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom2 { RDoc::Markup::Heading.new(2, a.join) }
1375
1388
  def _SetextHeading2
1376
1389
 
1377
1390
  _save = self.pos
@@ -1466,12 +1479,7 @@ class RDoc::Markdown
1466
1479
  self.pos = _save
1467
1480
  break
1468
1481
  end
1469
- _save8 = self.pos
1470
1482
  _tmp = _Sp()
1471
- unless _tmp
1472
- _tmp = true
1473
- self.pos = _save8
1474
- end
1475
1483
  unless _tmp
1476
1484
  self.pos = _save
1477
1485
  break
@@ -8446,7 +8454,162 @@ class RDoc::Markdown
8446
8454
  return _tmp
8447
8455
  end
8448
8456
 
8449
- # 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)
8457
+ # HtmlBlockOpenHead = "<" Spnl ("head" | "HEAD") Spnl HtmlAttribute* ">"
8458
+ def _HtmlBlockOpenHead
8459
+
8460
+ _save = self.pos
8461
+ while true # sequence
8462
+ _tmp = match_string("<")
8463
+ unless _tmp
8464
+ self.pos = _save
8465
+ break
8466
+ end
8467
+ _tmp = apply(:_Spnl)
8468
+ unless _tmp
8469
+ self.pos = _save
8470
+ break
8471
+ end
8472
+
8473
+ _save1 = self.pos
8474
+ while true # choice
8475
+ _tmp = match_string("head")
8476
+ break if _tmp
8477
+ self.pos = _save1
8478
+ _tmp = match_string("HEAD")
8479
+ break if _tmp
8480
+ self.pos = _save1
8481
+ break
8482
+ end # end choice
8483
+
8484
+ unless _tmp
8485
+ self.pos = _save
8486
+ break
8487
+ end
8488
+ _tmp = apply(:_Spnl)
8489
+ unless _tmp
8490
+ self.pos = _save
8491
+ break
8492
+ end
8493
+ while true
8494
+ _tmp = apply(:_HtmlAttribute)
8495
+ break unless _tmp
8496
+ end
8497
+ _tmp = true
8498
+ unless _tmp
8499
+ self.pos = _save
8500
+ break
8501
+ end
8502
+ _tmp = match_string(">")
8503
+ unless _tmp
8504
+ self.pos = _save
8505
+ end
8506
+ break
8507
+ end # end sequence
8508
+
8509
+ set_failed_rule :_HtmlBlockOpenHead unless _tmp
8510
+ return _tmp
8511
+ end
8512
+
8513
+ # HtmlBlockCloseHead = "<" Spnl "/" ("head" | "HEAD") Spnl ">"
8514
+ def _HtmlBlockCloseHead
8515
+
8516
+ _save = self.pos
8517
+ while true # sequence
8518
+ _tmp = match_string("<")
8519
+ unless _tmp
8520
+ self.pos = _save
8521
+ break
8522
+ end
8523
+ _tmp = apply(:_Spnl)
8524
+ unless _tmp
8525
+ self.pos = _save
8526
+ break
8527
+ end
8528
+ _tmp = match_string("/")
8529
+ unless _tmp
8530
+ self.pos = _save
8531
+ break
8532
+ end
8533
+
8534
+ _save1 = self.pos
8535
+ while true # choice
8536
+ _tmp = match_string("head")
8537
+ break if _tmp
8538
+ self.pos = _save1
8539
+ _tmp = match_string("HEAD")
8540
+ break if _tmp
8541
+ self.pos = _save1
8542
+ break
8543
+ end # end choice
8544
+
8545
+ unless _tmp
8546
+ self.pos = _save
8547
+ break
8548
+ end
8549
+ _tmp = apply(:_Spnl)
8550
+ unless _tmp
8551
+ self.pos = _save
8552
+ break
8553
+ end
8554
+ _tmp = match_string(">")
8555
+ unless _tmp
8556
+ self.pos = _save
8557
+ end
8558
+ break
8559
+ end # end sequence
8560
+
8561
+ set_failed_rule :_HtmlBlockCloseHead unless _tmp
8562
+ return _tmp
8563
+ end
8564
+
8565
+ # HtmlBlockHead = HtmlBlockOpenHead (!HtmlBlockCloseHead .)* HtmlBlockCloseHead
8566
+ def _HtmlBlockHead
8567
+
8568
+ _save = self.pos
8569
+ while true # sequence
8570
+ _tmp = apply(:_HtmlBlockOpenHead)
8571
+ unless _tmp
8572
+ self.pos = _save
8573
+ break
8574
+ end
8575
+ while true
8576
+
8577
+ _save2 = self.pos
8578
+ while true # sequence
8579
+ _save3 = self.pos
8580
+ _tmp = apply(:_HtmlBlockCloseHead)
8581
+ _tmp = _tmp ? nil : true
8582
+ self.pos = _save3
8583
+ unless _tmp
8584
+ self.pos = _save2
8585
+ break
8586
+ end
8587
+ _tmp = get_byte
8588
+ unless _tmp
8589
+ self.pos = _save2
8590
+ end
8591
+ break
8592
+ end # end sequence
8593
+
8594
+ break unless _tmp
8595
+ end
8596
+ _tmp = true
8597
+ unless _tmp
8598
+ self.pos = _save
8599
+ break
8600
+ end
8601
+ _tmp = apply(:_HtmlBlockCloseHead)
8602
+ unless _tmp
8603
+ self.pos = _save
8604
+ end
8605
+ break
8606
+ end # end sequence
8607
+
8608
+ set_failed_rule :_HtmlBlockHead unless _tmp
8609
+ return _tmp
8610
+ end
8611
+
8612
+ # 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)
8450
8613
  def _HtmlBlockInTags
8451
8614
 
8452
8615
  _save = self.pos
@@ -8553,6 +8716,9 @@ class RDoc::Markdown
8553
8716
  _tmp = apply(:_HtmlBlockScript)
8554
8717
  break if _tmp
8555
8718
  self.pos = _save
8719
+ _tmp = apply(:_HtmlBlockHead)
8720
+ break if _tmp
8721
+ self.pos = _save
8556
8722
  break
8557
8723
  end # end choice
8558
8724
 
@@ -9157,7 +9323,7 @@ class RDoc::Markdown
9157
9323
  return _tmp
9158
9324
  end
9159
9325
 
9160
- # Inlines = (!@Endline Inline:i { i } | @Endline:c &Inline { c })+:chunks @Endline? { chunks }
9326
+ # Inlines = (!@Endline Inline:i { i } | @Endline:c !(&{ github? } Ticks3 /[^`\n]*$/) &Inline { c })+:chunks @Endline? { chunks }
9161
9327
  def _Inlines
9162
9328
 
9163
9329
  _save = self.pos
@@ -9204,12 +9370,41 @@ class RDoc::Markdown
9204
9370
  break
9205
9371
  end
9206
9372
  _save6 = self.pos
9207
- _tmp = apply(:_Inline)
9373
+
9374
+ _save7 = self.pos
9375
+ while true # sequence
9376
+ _save8 = self.pos
9377
+ _tmp = begin; github? ; end
9378
+ self.pos = _save8
9379
+ unless _tmp
9380
+ self.pos = _save7
9381
+ break
9382
+ end
9383
+ _tmp = apply(:_Ticks3)
9384
+ unless _tmp
9385
+ self.pos = _save7
9386
+ break
9387
+ end
9388
+ _tmp = scan(/\A(?-mix:[^`\n]*$)/)
9389
+ unless _tmp
9390
+ self.pos = _save7
9391
+ end
9392
+ break
9393
+ end # end sequence
9394
+
9395
+ _tmp = _tmp ? nil : true
9208
9396
  self.pos = _save6
9209
9397
  unless _tmp
9210
9398
  self.pos = _save5
9211
9399
  break
9212
9400
  end
9401
+ _save9 = self.pos
9402
+ _tmp = apply(:_Inline)
9403
+ self.pos = _save9
9404
+ unless _tmp
9405
+ self.pos = _save5
9406
+ break
9407
+ end
9213
9408
  @result = begin; c ; end
9214
9409
  _tmp = true
9215
9410
  unless _tmp
@@ -9227,61 +9422,90 @@ class RDoc::Markdown
9227
9422
  _ary << @result
9228
9423
  while true
9229
9424
 
9230
- _save7 = self.pos
9425
+ _save10 = self.pos
9231
9426
  while true # choice
9232
9427
 
9233
- _save8 = self.pos
9428
+ _save11 = self.pos
9234
9429
  while true # sequence
9235
- _save9 = self.pos
9430
+ _save12 = self.pos
9236
9431
  _tmp = _Endline()
9237
9432
  _tmp = _tmp ? nil : true
9238
- self.pos = _save9
9433
+ self.pos = _save12
9239
9434
  unless _tmp
9240
- self.pos = _save8
9435
+ self.pos = _save11
9241
9436
  break
9242
9437
  end
9243
9438
  _tmp = apply(:_Inline)
9244
9439
  i = @result
9245
9440
  unless _tmp
9246
- self.pos = _save8
9441
+ self.pos = _save11
9247
9442
  break
9248
9443
  end
9249
9444
  @result = begin; i ; end
9250
9445
  _tmp = true
9251
9446
  unless _tmp
9252
- self.pos = _save8
9447
+ self.pos = _save11
9253
9448
  end
9254
9449
  break
9255
9450
  end # end sequence
9256
9451
 
9257
9452
  break if _tmp
9258
- self.pos = _save7
9453
+ self.pos = _save10
9259
9454
 
9260
- _save10 = self.pos
9455
+ _save13 = self.pos
9261
9456
  while true # sequence
9262
9457
  _tmp = _Endline()
9263
9458
  c = @result
9264
9459
  unless _tmp
9265
- self.pos = _save10
9266
- break
9267
- end
9268
- _save11 = self.pos
9269
- _tmp = apply(:_Inline)
9270
- self.pos = _save11
9271
- unless _tmp
9272
- self.pos = _save10
9460
+ self.pos = _save13
9273
9461
  break
9274
9462
  end
9275
- @result = begin; c ; end
9276
- _tmp = true
9277
- unless _tmp
9278
- self.pos = _save10
9279
- end
9280
- break
9463
+ _save14 = self.pos
9464
+
9465
+ _save15 = self.pos
9466
+ while true # sequence
9467
+ _save16 = self.pos
9468
+ _tmp = begin; github? ; end
9469
+ self.pos = _save16
9470
+ unless _tmp
9471
+ self.pos = _save15
9472
+ break
9473
+ end
9474
+ _tmp = apply(:_Ticks3)
9475
+ unless _tmp
9476
+ self.pos = _save15
9477
+ break
9478
+ end
9479
+ _tmp = scan(/\A(?-mix:[^`\n]*$)/)
9480
+ unless _tmp
9481
+ self.pos = _save15
9482
+ end
9483
+ break
9484
+ end # end sequence
9485
+
9486
+ _tmp = _tmp ? nil : true
9487
+ self.pos = _save14
9488
+ unless _tmp
9489
+ self.pos = _save13
9490
+ break
9491
+ end
9492
+ _save17 = self.pos
9493
+ _tmp = apply(:_Inline)
9494
+ self.pos = _save17
9495
+ unless _tmp
9496
+ self.pos = _save13
9497
+ break
9498
+ end
9499
+ @result = begin; c ; end
9500
+ _tmp = true
9501
+ unless _tmp
9502
+ self.pos = _save13
9503
+ end
9504
+ break
9281
9505
  end # end sequence
9282
9506
 
9283
9507
  break if _tmp
9284
- self.pos = _save7
9508
+ self.pos = _save10
9285
9509
  break
9286
9510
  end # end choice
9287
9511
 
@@ -9298,11 +9522,11 @@ class RDoc::Markdown
9298
9522
  self.pos = _save
9299
9523
  break
9300
9524
  end
9301
- _save12 = self.pos
9525
+ _save18 = self.pos
9302
9526
  _tmp = _Endline()
9303
9527
  unless _tmp
9304
9528
  _tmp = true
9305
- self.pos = _save12
9529
+ self.pos = _save18
9306
9530
  end
9307
9531
  unless _tmp
9308
9532
  self.pos = _save
@@ -9320,7 +9544,7 @@ class RDoc::Markdown
9320
9544
  return _tmp
9321
9545
  end
9322
9546
 
9323
- # Inline = (Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)
9547
+ # Inline = (Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)
9324
9548
  def _Inline
9325
9549
 
9326
9550
  _save = self.pos
@@ -9343,6 +9567,9 @@ class RDoc::Markdown
9343
9567
  _tmp = apply(:_Emph)
9344
9568
  break if _tmp
9345
9569
  self.pos = _save
9570
+ _tmp = apply(:_Strike)
9571
+ break if _tmp
9572
+ self.pos = _save
9346
9573
  _tmp = apply(:_Image)
9347
9574
  break if _tmp
9348
9575
  self.pos = _save
@@ -9669,7 +9896,7 @@ class RDoc::Markdown
9669
9896
  return _tmp
9670
9897
  end
9671
9898
 
9672
- # NormalEndline = @Sp @Newline !@BlankLine !">" !AtxStart !(Line /={3,}|-{3,}=/ @Newline) { "\n" }
9899
+ # NormalEndline = @Sp @Newline !@BlankLine !">" !AtxStart !(Line /={1,}|-{1,}/ @Newline) { "\n" }
9673
9900
  def _NormalEndline
9674
9901
 
9675
9902
  _save = self.pos
@@ -9717,7 +9944,7 @@ class RDoc::Markdown
9717
9944
  self.pos = _save5
9718
9945
  break
9719
9946
  end
9720
- _tmp = scan(/\A(?-mix:={3,}|-{3,}=)/)
9947
+ _tmp = scan(/\A(?-mix:={1,}|-{1,})/)
9721
9948
  unless _tmp
9722
9949
  self.pos = _save5
9723
9950
  break
@@ -10032,96 +10259,38 @@ class RDoc::Markdown
10032
10259
  return _tmp
10033
10260
  end
10034
10261
 
10035
- # OneStarOpen = !StarLine "*" !@Spacechar !@Newline
10036
- def _OneStarOpen
10262
+ # Whitespace = (@Spacechar | @Newline)
10263
+ def _Whitespace
10037
10264
 
10038
10265
  _save = self.pos
10039
- while true # sequence
10040
- _save1 = self.pos
10041
- _tmp = apply(:_StarLine)
10042
- _tmp = _tmp ? nil : true
10043
- self.pos = _save1
10044
- unless _tmp
10045
- self.pos = _save
10046
- break
10047
- end
10048
- _tmp = match_string("*")
10049
- unless _tmp
10050
- self.pos = _save
10051
- break
10052
- end
10053
- _save2 = self.pos
10266
+ while true # choice
10054
10267
  _tmp = _Spacechar()
10055
- _tmp = _tmp ? nil : true
10056
- self.pos = _save2
10057
- unless _tmp
10058
- self.pos = _save
10059
- break
10060
- end
10061
- _save3 = self.pos
10268
+ break if _tmp
10269
+ self.pos = _save
10062
10270
  _tmp = _Newline()
10063
- _tmp = _tmp ? nil : true
10064
- self.pos = _save3
10065
- unless _tmp
10066
- self.pos = _save
10067
- end
10271
+ break if _tmp
10272
+ self.pos = _save
10068
10273
  break
10069
- end # end sequence
10274
+ end # end choice
10070
10275
 
10071
- set_failed_rule :_OneStarOpen unless _tmp
10276
+ set_failed_rule :_Whitespace unless _tmp
10072
10277
  return _tmp
10073
10278
  end
10074
10279
 
10075
- # OneStarClose = !@Spacechar !@Newline Inline:a "*" { a }
10076
- def _OneStarClose
10280
+ # EmphStar = "*" !@Whitespace @StartList:a (!"*" Inline:b { a << b } | StrongStar:b { a << b })+ "*" { emphasis a.join }
10281
+ def _EmphStar
10077
10282
 
10078
10283
  _save = self.pos
10079
10284
  while true # sequence
10080
- _save1 = self.pos
10081
- _tmp = _Spacechar()
10082
- _tmp = _tmp ? nil : true
10083
- self.pos = _save1
10084
- unless _tmp
10085
- self.pos = _save
10086
- break
10087
- end
10088
- _save2 = self.pos
10089
- _tmp = _Newline()
10090
- _tmp = _tmp ? nil : true
10091
- self.pos = _save2
10092
- unless _tmp
10093
- self.pos = _save
10094
- break
10095
- end
10096
- _tmp = apply(:_Inline)
10097
- a = @result
10098
- unless _tmp
10099
- self.pos = _save
10100
- break
10101
- end
10102
10285
  _tmp = match_string("*")
10103
10286
  unless _tmp
10104
10287
  self.pos = _save
10105
10288
  break
10106
10289
  end
10107
- @result = begin; a ; end
10108
- _tmp = true
10109
- unless _tmp
10110
- self.pos = _save
10111
- end
10112
- break
10113
- end # end sequence
10114
-
10115
- set_failed_rule :_OneStarClose unless _tmp
10116
- return _tmp
10117
- end
10118
-
10119
- # EmphStar = OneStarOpen @StartList:a (!OneStarClose Inline:l { a << l })* OneStarClose:l { a << l } { emphasis a.join }
10120
- def _EmphStar
10121
-
10122
- _save = self.pos
10123
- while true # sequence
10124
- _tmp = apply(:_OneStarOpen)
10290
+ _save1 = self.pos
10291
+ _tmp = _Whitespace()
10292
+ _tmp = _tmp ? nil : true
10293
+ self.pos = _save1
10125
10294
  unless _tmp
10126
10295
  self.pos = _save
10127
10296
  break
@@ -10132,47 +10301,124 @@ class RDoc::Markdown
10132
10301
  self.pos = _save
10133
10302
  break
10134
10303
  end
10135
- while true
10304
+ _save2 = self.pos
10136
10305
 
10137
- _save2 = self.pos
10306
+ _save3 = self.pos
10307
+ while true # choice
10308
+
10309
+ _save4 = self.pos
10138
10310
  while true # sequence
10139
- _save3 = self.pos
10140
- _tmp = apply(:_OneStarClose)
10311
+ _save5 = self.pos
10312
+ _tmp = match_string("*")
10141
10313
  _tmp = _tmp ? nil : true
10142
- self.pos = _save3
10314
+ self.pos = _save5
10143
10315
  unless _tmp
10144
- self.pos = _save2
10316
+ self.pos = _save4
10145
10317
  break
10146
10318
  end
10147
10319
  _tmp = apply(:_Inline)
10148
- l = @result
10320
+ b = @result
10149
10321
  unless _tmp
10150
- self.pos = _save2
10322
+ self.pos = _save4
10151
10323
  break
10152
10324
  end
10153
- @result = begin; a << l ; end
10325
+ @result = begin; a << b ; end
10154
10326
  _tmp = true
10155
10327
  unless _tmp
10156
- self.pos = _save2
10328
+ self.pos = _save4
10157
10329
  end
10158
10330
  break
10159
10331
  end # end sequence
10160
10332
 
10161
- break unless _tmp
10162
- end
10163
- _tmp = true
10164
- unless _tmp
10165
- self.pos = _save
10333
+ break if _tmp
10334
+ self.pos = _save3
10335
+
10336
+ _save6 = self.pos
10337
+ while true # sequence
10338
+ _tmp = apply(:_StrongStar)
10339
+ b = @result
10340
+ unless _tmp
10341
+ self.pos = _save6
10342
+ break
10343
+ end
10344
+ @result = begin; a << b ; end
10345
+ _tmp = true
10346
+ unless _tmp
10347
+ self.pos = _save6
10348
+ end
10349
+ break
10350
+ end # end sequence
10351
+
10352
+ break if _tmp
10353
+ self.pos = _save3
10166
10354
  break
10355
+ end # end choice
10356
+
10357
+ if _tmp
10358
+ while true
10359
+
10360
+ _save7 = self.pos
10361
+ while true # choice
10362
+
10363
+ _save8 = self.pos
10364
+ while true # sequence
10365
+ _save9 = self.pos
10366
+ _tmp = match_string("*")
10367
+ _tmp = _tmp ? nil : true
10368
+ self.pos = _save9
10369
+ unless _tmp
10370
+ self.pos = _save8
10371
+ break
10372
+ end
10373
+ _tmp = apply(:_Inline)
10374
+ b = @result
10375
+ unless _tmp
10376
+ self.pos = _save8
10377
+ break
10378
+ end
10379
+ @result = begin; a << b ; end
10380
+ _tmp = true
10381
+ unless _tmp
10382
+ self.pos = _save8
10383
+ end
10384
+ break
10385
+ end # end sequence
10386
+
10387
+ break if _tmp
10388
+ self.pos = _save7
10389
+
10390
+ _save10 = self.pos
10391
+ while true # sequence
10392
+ _tmp = apply(:_StrongStar)
10393
+ b = @result
10394
+ unless _tmp
10395
+ self.pos = _save10
10396
+ break
10397
+ end
10398
+ @result = begin; a << b ; end
10399
+ _tmp = true
10400
+ unless _tmp
10401
+ self.pos = _save10
10402
+ end
10403
+ break
10404
+ end # end sequence
10405
+
10406
+ break if _tmp
10407
+ self.pos = _save7
10408
+ break
10409
+ end # end choice
10410
+
10411
+ break unless _tmp
10412
+ end
10413
+ _tmp = true
10414
+ else
10415
+ self.pos = _save2
10167
10416
  end
10168
- _tmp = apply(:_OneStarClose)
10169
- l = @result
10170
10417
  unless _tmp
10171
10418
  self.pos = _save
10172
10419
  break
10173
10420
  end
10174
- @result = begin; a << l ; end
10175
- _tmp = true
10421
+ _tmp = match_string("*")
10176
10422
  unless _tmp
10177
10423
  self.pos = _save
10178
10424
  break
@@ -10189,147 +10435,148 @@ class RDoc::Markdown
10189
10435
  return _tmp
10190
10436
  end
10191
10437
 
10192
- # OneUlOpen = !UlLine "_" !@Spacechar !@Newline
10193
- def _OneUlOpen
10438
+ # EmphUl = "_" !@Whitespace @StartList:a (!"_" Inline:b { a << b } | StrongUl:b { a << b })+ "_" { emphasis a.join }
10439
+ def _EmphUl
10194
10440
 
10195
10441
  _save = self.pos
10196
10442
  while true # sequence
10197
- _save1 = self.pos
10198
- _tmp = apply(:_UlLine)
10199
- _tmp = _tmp ? nil : true
10200
- self.pos = _save1
10201
- unless _tmp
10202
- self.pos = _save
10203
- break
10204
- end
10205
10443
  _tmp = match_string("_")
10206
10444
  unless _tmp
10207
10445
  self.pos = _save
10208
10446
  break
10209
10447
  end
10210
- _save2 = self.pos
10211
- _tmp = _Spacechar()
10212
- _tmp = _tmp ? nil : true
10213
- self.pos = _save2
10214
- unless _tmp
10215
- self.pos = _save
10216
- break
10217
- end
10218
- _save3 = self.pos
10219
- _tmp = _Newline()
10220
- _tmp = _tmp ? nil : true
10221
- self.pos = _save3
10222
- unless _tmp
10223
- self.pos = _save
10224
- end
10225
- break
10226
- end # end sequence
10227
-
10228
- set_failed_rule :_OneUlOpen unless _tmp
10229
- return _tmp
10230
- end
10231
-
10232
- # OneUlClose = !@Spacechar !@Newline Inline:a "_" { a }
10233
- def _OneUlClose
10234
-
10235
- _save = self.pos
10236
- while true # sequence
10237
10448
  _save1 = self.pos
10238
- _tmp = _Spacechar()
10449
+ _tmp = _Whitespace()
10239
10450
  _tmp = _tmp ? nil : true
10240
10451
  self.pos = _save1
10241
10452
  unless _tmp
10242
10453
  self.pos = _save
10243
10454
  break
10244
10455
  end
10245
- _save2 = self.pos
10246
- _tmp = _Newline()
10247
- _tmp = _tmp ? nil : true
10248
- self.pos = _save2
10249
- unless _tmp
10250
- self.pos = _save
10251
- break
10252
- end
10253
- _tmp = apply(:_Inline)
10456
+ _tmp = _StartList()
10254
10457
  a = @result
10255
10458
  unless _tmp
10256
10459
  self.pos = _save
10257
10460
  break
10258
10461
  end
10259
- _tmp = match_string("_")
10260
- unless _tmp
10261
- self.pos = _save
10262
- break
10263
- end
10264
- @result = begin; a ; end
10265
- _tmp = true
10266
- unless _tmp
10267
- self.pos = _save
10268
- end
10269
- break
10270
- end # end sequence
10271
-
10272
- set_failed_rule :_OneUlClose unless _tmp
10273
- return _tmp
10274
- end
10275
-
10276
- # EmphUl = OneUlOpen @StartList:a (!OneUlClose Inline:l { a << l })* OneUlClose:l { a << l } { emphasis a.join }
10277
- def _EmphUl
10462
+ _save2 = self.pos
10278
10463
 
10279
- _save = self.pos
10280
- while true # sequence
10281
- _tmp = apply(:_OneUlOpen)
10282
- unless _tmp
10283
- self.pos = _save
10284
- break
10285
- end
10286
- _tmp = _StartList()
10287
- a = @result
10288
- unless _tmp
10289
- self.pos = _save
10290
- break
10291
- end
10292
- while true
10464
+ _save3 = self.pos
10465
+ while true # choice
10293
10466
 
10294
- _save2 = self.pos
10467
+ _save4 = self.pos
10295
10468
  while true # sequence
10296
- _save3 = self.pos
10297
- _tmp = apply(:_OneUlClose)
10469
+ _save5 = self.pos
10470
+ _tmp = match_string("_")
10298
10471
  _tmp = _tmp ? nil : true
10299
- self.pos = _save3
10472
+ self.pos = _save5
10300
10473
  unless _tmp
10301
- self.pos = _save2
10474
+ self.pos = _save4
10302
10475
  break
10303
10476
  end
10304
10477
  _tmp = apply(:_Inline)
10305
- l = @result
10478
+ b = @result
10306
10479
  unless _tmp
10307
- self.pos = _save2
10480
+ self.pos = _save4
10308
10481
  break
10309
10482
  end
10310
- @result = begin; a << l ; end
10483
+ @result = begin; a << b ; end
10311
10484
  _tmp = true
10312
10485
  unless _tmp
10313
- self.pos = _save2
10486
+ self.pos = _save4
10314
10487
  end
10315
10488
  break
10316
10489
  end # end sequence
10317
10490
 
10318
- break unless _tmp
10319
- end
10320
- _tmp = true
10321
- unless _tmp
10322
- self.pos = _save
10491
+ break if _tmp
10492
+ self.pos = _save3
10493
+
10494
+ _save6 = self.pos
10495
+ while true # sequence
10496
+ _tmp = apply(:_StrongUl)
10497
+ b = @result
10498
+ unless _tmp
10499
+ self.pos = _save6
10500
+ break
10501
+ end
10502
+ @result = begin; a << b ; end
10503
+ _tmp = true
10504
+ unless _tmp
10505
+ self.pos = _save6
10506
+ end
10507
+ break
10508
+ end # end sequence
10509
+
10510
+ break if _tmp
10511
+ self.pos = _save3
10323
10512
  break
10513
+ end # end choice
10514
+
10515
+ if _tmp
10516
+ while true
10517
+
10518
+ _save7 = self.pos
10519
+ while true # choice
10520
+
10521
+ _save8 = self.pos
10522
+ while true # sequence
10523
+ _save9 = self.pos
10524
+ _tmp = match_string("_")
10525
+ _tmp = _tmp ? nil : true
10526
+ self.pos = _save9
10527
+ unless _tmp
10528
+ self.pos = _save8
10529
+ break
10530
+ end
10531
+ _tmp = apply(:_Inline)
10532
+ b = @result
10533
+ unless _tmp
10534
+ self.pos = _save8
10535
+ break
10536
+ end
10537
+ @result = begin; a << b ; end
10538
+ _tmp = true
10539
+ unless _tmp
10540
+ self.pos = _save8
10541
+ end
10542
+ break
10543
+ end # end sequence
10544
+
10545
+ break if _tmp
10546
+ self.pos = _save7
10547
+
10548
+ _save10 = self.pos
10549
+ while true # sequence
10550
+ _tmp = apply(:_StrongUl)
10551
+ b = @result
10552
+ unless _tmp
10553
+ self.pos = _save10
10554
+ break
10555
+ end
10556
+ @result = begin; a << b ; end
10557
+ _tmp = true
10558
+ unless _tmp
10559
+ self.pos = _save10
10560
+ end
10561
+ break
10562
+ end # end sequence
10563
+
10564
+ break if _tmp
10565
+ self.pos = _save7
10566
+ break
10567
+ end # end choice
10568
+
10569
+ break unless _tmp
10570
+ end
10571
+ _tmp = true
10572
+ else
10573
+ self.pos = _save2
10324
10574
  end
10325
- _tmp = apply(:_OneUlClose)
10326
- l = @result
10327
10575
  unless _tmp
10328
10576
  self.pos = _save
10329
10577
  break
10330
10578
  end
10331
- @result = begin; a << l ; end
10332
- _tmp = true
10579
+ _tmp = match_string("_")
10333
10580
  unless _tmp
10334
10581
  self.pos = _save
10335
10582
  break
@@ -10364,69 +10611,89 @@ class RDoc::Markdown
10364
10611
  return _tmp
10365
10612
  end
10366
10613
 
10367
- # TwoStarOpen = !StarLine "**" !@Spacechar !@Newline
10368
- def _TwoStarOpen
10614
+ # StrongStar = "**" !@Whitespace @StartList:a (!"**" Inline:b { a << b })+ "**" { strong a.join }
10615
+ def _StrongStar
10369
10616
 
10370
10617
  _save = self.pos
10371
10618
  while true # sequence
10372
- _save1 = self.pos
10373
- _tmp = apply(:_StarLine)
10374
- _tmp = _tmp ? nil : true
10375
- self.pos = _save1
10376
- unless _tmp
10377
- self.pos = _save
10378
- break
10379
- end
10380
10619
  _tmp = match_string("**")
10381
10620
  unless _tmp
10382
10621
  self.pos = _save
10383
10622
  break
10384
10623
  end
10385
- _save2 = self.pos
10386
- _tmp = _Spacechar()
10624
+ _save1 = self.pos
10625
+ _tmp = _Whitespace()
10387
10626
  _tmp = _tmp ? nil : true
10388
- self.pos = _save2
10627
+ self.pos = _save1
10389
10628
  unless _tmp
10390
10629
  self.pos = _save
10391
10630
  break
10392
10631
  end
10393
- _save3 = self.pos
10394
- _tmp = _Newline()
10395
- _tmp = _tmp ? nil : true
10396
- self.pos = _save3
10397
- unless _tmp
10398
- self.pos = _save
10399
- end
10400
- break
10401
- end # end sequence
10402
-
10403
- set_failed_rule :_TwoStarOpen unless _tmp
10404
- return _tmp
10405
- end
10406
-
10407
- # TwoStarClose = !@Spacechar !@Newline Inline:a "**" { a }
10408
- def _TwoStarClose
10409
-
10410
- _save = self.pos
10411
- while true # sequence
10412
- _save1 = self.pos
10413
- _tmp = _Spacechar()
10414
- _tmp = _tmp ? nil : true
10415
- self.pos = _save1
10632
+ _tmp = _StartList()
10633
+ a = @result
10416
10634
  unless _tmp
10417
10635
  self.pos = _save
10418
10636
  break
10419
10637
  end
10420
10638
  _save2 = self.pos
10421
- _tmp = _Newline()
10422
- _tmp = _tmp ? nil : true
10423
- self.pos = _save2
10424
- unless _tmp
10425
- self.pos = _save
10639
+
10640
+ _save3 = self.pos
10641
+ while true # sequence
10642
+ _save4 = self.pos
10643
+ _tmp = match_string("**")
10644
+ _tmp = _tmp ? nil : true
10645
+ self.pos = _save4
10646
+ unless _tmp
10647
+ self.pos = _save3
10648
+ break
10649
+ end
10650
+ _tmp = apply(:_Inline)
10651
+ b = @result
10652
+ unless _tmp
10653
+ self.pos = _save3
10654
+ break
10655
+ end
10656
+ @result = begin; a << b ; end
10657
+ _tmp = true
10658
+ unless _tmp
10659
+ self.pos = _save3
10660
+ end
10426
10661
  break
10662
+ end # end sequence
10663
+
10664
+ if _tmp
10665
+ while true
10666
+
10667
+ _save5 = self.pos
10668
+ while true # sequence
10669
+ _save6 = self.pos
10670
+ _tmp = match_string("**")
10671
+ _tmp = _tmp ? nil : true
10672
+ self.pos = _save6
10673
+ unless _tmp
10674
+ self.pos = _save5
10675
+ break
10676
+ end
10677
+ _tmp = apply(:_Inline)
10678
+ b = @result
10679
+ unless _tmp
10680
+ self.pos = _save5
10681
+ break
10682
+ end
10683
+ @result = begin; a << b ; end
10684
+ _tmp = true
10685
+ unless _tmp
10686
+ self.pos = _save5
10687
+ end
10688
+ break
10689
+ end # end sequence
10690
+
10691
+ break unless _tmp
10692
+ end
10693
+ _tmp = true
10694
+ else
10695
+ self.pos = _save2
10427
10696
  end
10428
- _tmp = apply(:_Inline)
10429
- a = @result
10430
10697
  unless _tmp
10431
10698
  self.pos = _save
10432
10699
  break
@@ -10436,7 +10703,7 @@ class RDoc::Markdown
10436
10703
  self.pos = _save
10437
10704
  break
10438
10705
  end
10439
- @result = begin; a ; end
10706
+ @result = begin; strong a.join ; end
10440
10707
  _tmp = true
10441
10708
  unless _tmp
10442
10709
  self.pos = _save
@@ -10444,16 +10711,24 @@ class RDoc::Markdown
10444
10711
  break
10445
10712
  end # end sequence
10446
10713
 
10447
- set_failed_rule :_TwoStarClose unless _tmp
10714
+ set_failed_rule :_StrongStar unless _tmp
10448
10715
  return _tmp
10449
10716
  end
10450
10717
 
10451
- # StrongStar = TwoStarOpen @StartList:a (!TwoStarClose Inline:l { a << l })* TwoStarClose:l { a << l } { strong a.join }
10452
- def _StrongStar
10718
+ # StrongUl = "__" !@Whitespace @StartList:a (!"__" Inline:b { a << b })+ "__" { strong a.join }
10719
+ def _StrongUl
10453
10720
 
10454
10721
  _save = self.pos
10455
10722
  while true # sequence
10456
- _tmp = apply(:_TwoStarOpen)
10723
+ _tmp = match_string("__")
10724
+ unless _tmp
10725
+ self.pos = _save
10726
+ break
10727
+ end
10728
+ _save1 = self.pos
10729
+ _tmp = _Whitespace()
10730
+ _tmp = _tmp ? nil : true
10731
+ self.pos = _save1
10457
10732
  unless _tmp
10458
10733
  self.pos = _save
10459
10734
  break
@@ -10464,47 +10739,70 @@ class RDoc::Markdown
10464
10739
  self.pos = _save
10465
10740
  break
10466
10741
  end
10467
- while true
10742
+ _save2 = self.pos
10468
10743
 
10469
- _save2 = self.pos
10470
- while true # sequence
10471
- _save3 = self.pos
10472
- _tmp = apply(:_TwoStarClose)
10473
- _tmp = _tmp ? nil : true
10744
+ _save3 = self.pos
10745
+ while true # sequence
10746
+ _save4 = self.pos
10747
+ _tmp = match_string("__")
10748
+ _tmp = _tmp ? nil : true
10749
+ self.pos = _save4
10750
+ unless _tmp
10474
10751
  self.pos = _save3
10475
- unless _tmp
10476
- self.pos = _save2
10477
- break
10478
- end
10479
- _tmp = apply(:_Inline)
10480
- l = @result
10481
- unless _tmp
10482
- self.pos = _save2
10483
- break
10484
- end
10485
- @result = begin; a << l ; end
10486
- _tmp = true
10487
- unless _tmp
10488
- self.pos = _save2
10489
- end
10490
10752
  break
10491
- end # end sequence
10492
-
10493
- break unless _tmp
10494
- end
10495
- _tmp = true
10496
- unless _tmp
10497
- self.pos = _save
10753
+ end
10754
+ _tmp = apply(:_Inline)
10755
+ b = @result
10756
+ unless _tmp
10757
+ self.pos = _save3
10758
+ break
10759
+ end
10760
+ @result = begin; a << b ; end
10761
+ _tmp = true
10762
+ unless _tmp
10763
+ self.pos = _save3
10764
+ end
10498
10765
  break
10766
+ end # end sequence
10767
+
10768
+ if _tmp
10769
+ while true
10770
+
10771
+ _save5 = self.pos
10772
+ while true # sequence
10773
+ _save6 = self.pos
10774
+ _tmp = match_string("__")
10775
+ _tmp = _tmp ? nil : true
10776
+ self.pos = _save6
10777
+ unless _tmp
10778
+ self.pos = _save5
10779
+ break
10780
+ end
10781
+ _tmp = apply(:_Inline)
10782
+ b = @result
10783
+ unless _tmp
10784
+ self.pos = _save5
10785
+ break
10786
+ end
10787
+ @result = begin; a << b ; end
10788
+ _tmp = true
10789
+ unless _tmp
10790
+ self.pos = _save5
10791
+ end
10792
+ break
10793
+ end # end sequence
10794
+
10795
+ break unless _tmp
10796
+ end
10797
+ _tmp = true
10798
+ else
10799
+ self.pos = _save2
10499
10800
  end
10500
- _tmp = apply(:_TwoStarClose)
10501
- l = @result
10502
10801
  unless _tmp
10503
10802
  self.pos = _save
10504
10803
  break
10505
10804
  end
10506
- @result = begin; a << l ; end
10507
- _tmp = true
10805
+ _tmp = match_string("__")
10508
10806
  unless _tmp
10509
10807
  self.pos = _save
10510
10808
  break
@@ -10517,156 +10815,110 @@ class RDoc::Markdown
10517
10815
  break
10518
10816
  end # end sequence
10519
10817
 
10520
- set_failed_rule :_StrongStar unless _tmp
10818
+ set_failed_rule :_StrongUl unless _tmp
10521
10819
  return _tmp
10522
10820
  end
10523
10821
 
10524
- # TwoUlOpen = !UlLine "__" !@Spacechar !@Newline
10525
- def _TwoUlOpen
10822
+ # Strike = &{ strike? } "~~" !@Whitespace @StartList:a (!"~~" Inline:b { a << b })+ "~~" { strike a.join }
10823
+ def _Strike
10526
10824
 
10527
10825
  _save = self.pos
10528
10826
  while true # sequence
10529
10827
  _save1 = self.pos
10530
- _tmp = apply(:_UlLine)
10531
- _tmp = _tmp ? nil : true
10828
+ _tmp = begin; strike? ; end
10532
10829
  self.pos = _save1
10533
10830
  unless _tmp
10534
10831
  self.pos = _save
10535
10832
  break
10536
10833
  end
10537
- _tmp = match_string("__")
10538
- unless _tmp
10539
- self.pos = _save
10540
- break
10541
- end
10542
- _save2 = self.pos
10543
- _tmp = _Spacechar()
10544
- _tmp = _tmp ? nil : true
10545
- self.pos = _save2
10546
- unless _tmp
10547
- self.pos = _save
10548
- break
10549
- end
10550
- _save3 = self.pos
10551
- _tmp = _Newline()
10552
- _tmp = _tmp ? nil : true
10553
- self.pos = _save3
10554
- unless _tmp
10555
- self.pos = _save
10556
- end
10557
- break
10558
- end # end sequence
10559
-
10560
- set_failed_rule :_TwoUlOpen unless _tmp
10561
- return _tmp
10562
- end
10563
-
10564
- # TwoUlClose = !@Spacechar !@Newline Inline:a "__" { a }
10565
- def _TwoUlClose
10566
-
10567
- _save = self.pos
10568
- while true # sequence
10569
- _save1 = self.pos
10570
- _tmp = _Spacechar()
10571
- _tmp = _tmp ? nil : true
10572
- self.pos = _save1
10834
+ _tmp = match_string("~~")
10573
10835
  unless _tmp
10574
10836
  self.pos = _save
10575
10837
  break
10576
10838
  end
10577
10839
  _save2 = self.pos
10578
- _tmp = _Newline()
10840
+ _tmp = _Whitespace()
10579
10841
  _tmp = _tmp ? nil : true
10580
10842
  self.pos = _save2
10581
10843
  unless _tmp
10582
10844
  self.pos = _save
10583
10845
  break
10584
10846
  end
10585
- _tmp = apply(:_Inline)
10847
+ _tmp = _StartList()
10586
10848
  a = @result
10587
10849
  unless _tmp
10588
10850
  self.pos = _save
10589
10851
  break
10590
10852
  end
10591
- _tmp = match_string("__")
10592
- unless _tmp
10593
- self.pos = _save
10594
- break
10595
- end
10596
- @result = begin; a ; end
10597
- _tmp = true
10598
- unless _tmp
10599
- self.pos = _save
10600
- end
10601
- break
10602
- end # end sequence
10603
-
10604
- set_failed_rule :_TwoUlClose unless _tmp
10605
- return _tmp
10606
- end
10607
-
10608
- # StrongUl = TwoUlOpen @StartList:a (!TwoUlClose Inline:i { a << i })* TwoUlClose:l { a << l } { strong a.join }
10609
- def _StrongUl
10853
+ _save3 = self.pos
10610
10854
 
10611
- _save = self.pos
10612
- while true # sequence
10613
- _tmp = apply(:_TwoUlOpen)
10614
- unless _tmp
10615
- self.pos = _save
10616
- break
10617
- end
10618
- _tmp = _StartList()
10619
- a = @result
10620
- unless _tmp
10621
- self.pos = _save
10855
+ _save4 = self.pos
10856
+ while true # sequence
10857
+ _save5 = self.pos
10858
+ _tmp = match_string("~~")
10859
+ _tmp = _tmp ? nil : true
10860
+ self.pos = _save5
10861
+ unless _tmp
10862
+ self.pos = _save4
10863
+ break
10864
+ end
10865
+ _tmp = apply(:_Inline)
10866
+ b = @result
10867
+ unless _tmp
10868
+ self.pos = _save4
10869
+ break
10870
+ end
10871
+ @result = begin; a << b ; end
10872
+ _tmp = true
10873
+ unless _tmp
10874
+ self.pos = _save4
10875
+ end
10622
10876
  break
10623
- end
10624
- while true
10877
+ end # end sequence
10625
10878
 
10626
- _save2 = self.pos
10627
- while true # sequence
10628
- _save3 = self.pos
10629
- _tmp = apply(:_TwoUlClose)
10630
- _tmp = _tmp ? nil : true
10631
- self.pos = _save3
10632
- unless _tmp
10633
- self.pos = _save2
10634
- break
10635
- end
10636
- _tmp = apply(:_Inline)
10637
- i = @result
10638
- unless _tmp
10639
- self.pos = _save2
10879
+ if _tmp
10880
+ while true
10881
+
10882
+ _save6 = self.pos
10883
+ while true # sequence
10884
+ _save7 = self.pos
10885
+ _tmp = match_string("~~")
10886
+ _tmp = _tmp ? nil : true
10887
+ self.pos = _save7
10888
+ unless _tmp
10889
+ self.pos = _save6
10890
+ break
10891
+ end
10892
+ _tmp = apply(:_Inline)
10893
+ b = @result
10894
+ unless _tmp
10895
+ self.pos = _save6
10896
+ break
10897
+ end
10898
+ @result = begin; a << b ; end
10899
+ _tmp = true
10900
+ unless _tmp
10901
+ self.pos = _save6
10902
+ end
10640
10903
  break
10641
- end
10642
- @result = begin; a << i ; end
10643
- _tmp = true
10644
- unless _tmp
10645
- self.pos = _save2
10646
- end
10647
- break
10648
- end # end sequence
10904
+ end # end sequence
10649
10905
 
10650
- break unless _tmp
10651
- end
10652
- _tmp = true
10653
- unless _tmp
10654
- self.pos = _save
10655
- break
10906
+ break unless _tmp
10907
+ end
10908
+ _tmp = true
10909
+ else
10910
+ self.pos = _save3
10656
10911
  end
10657
- _tmp = apply(:_TwoUlClose)
10658
- l = @result
10659
10912
  unless _tmp
10660
10913
  self.pos = _save
10661
10914
  break
10662
10915
  end
10663
- @result = begin; a << l ; end
10664
- _tmp = true
10916
+ _tmp = match_string("~~")
10665
10917
  unless _tmp
10666
10918
  self.pos = _save
10667
10919
  break
10668
10920
  end
10669
- @result = begin; strong a.join ; end
10921
+ @result = begin; strike a.join ; end
10670
10922
  _tmp = true
10671
10923
  unless _tmp
10672
10924
  self.pos = _save
@@ -10674,7 +10926,7 @@ class RDoc::Markdown
10674
10926
  break
10675
10927
  end # end sequence
10676
10928
 
10677
- set_failed_rule :_StrongUl unless _tmp
10929
+ set_failed_rule :_Strike unless _tmp
10678
10930
  return _tmp
10679
10931
  end
10680
10932
 
@@ -10853,7 +11105,7 @@ class RDoc::Markdown
10853
11105
  return _tmp
10854
11106
  end
10855
11107
 
10856
- # ExplicitLink = Label:l Spnl "(" @Sp Source:s Spnl Title @Sp ")" { "{#{l}}[#{s}]" }
11108
+ # ExplicitLink = Label:l "(" @Sp Source:s Spnl Title @Sp ")" { "{#{l}}[#{s}]" }
10857
11109
  def _ExplicitLink
10858
11110
 
10859
11111
  _save = self.pos
@@ -10864,11 +11116,6 @@ class RDoc::Markdown
10864
11116
  self.pos = _save
10865
11117
  break
10866
11118
  end
10867
- _tmp = apply(:_Spnl)
10868
- unless _tmp
10869
- self.pos = _save
10870
- break
10871
- end
10872
11119
  _tmp = match_string("(")
10873
11120
  unless _tmp
10874
11121
  self.pos = _save
@@ -10977,130 +11224,119 @@ class RDoc::Markdown
10977
11224
  return _tmp
10978
11225
  end
10979
11226
 
10980
- # SourceContents = (((!"(" !")" !">" Nonspacechar)+ | "(" SourceContents ")")* | "")
11227
+ # SourceContents = ((!"(" !")" !">" Nonspacechar)+ | "(" SourceContents ")")*
10981
11228
  def _SourceContents
11229
+ while true
10982
11230
 
10983
- _save = self.pos
10984
- while true # choice
10985
- while true
10986
-
11231
+ _save1 = self.pos
11232
+ while true # choice
10987
11233
  _save2 = self.pos
10988
- while true # choice
10989
- _save3 = self.pos
10990
11234
 
11235
+ _save3 = self.pos
11236
+ while true # sequence
10991
11237
  _save4 = self.pos
10992
- while true # sequence
10993
- _save5 = self.pos
10994
- _tmp = match_string("(")
10995
- _tmp = _tmp ? nil : true
10996
- self.pos = _save5
10997
- unless _tmp
10998
- self.pos = _save4
10999
- break
11000
- end
11001
- _save6 = self.pos
11002
- _tmp = match_string(")")
11003
- _tmp = _tmp ? nil : true
11004
- self.pos = _save6
11005
- unless _tmp
11006
- self.pos = _save4
11007
- break
11008
- end
11009
- _save7 = self.pos
11010
- _tmp = match_string(">")
11011
- _tmp = _tmp ? nil : true
11012
- self.pos = _save7
11013
- unless _tmp
11014
- self.pos = _save4
11015
- break
11016
- end
11017
- _tmp = apply(:_Nonspacechar)
11018
- unless _tmp
11019
- self.pos = _save4
11020
- end
11238
+ _tmp = match_string("(")
11239
+ _tmp = _tmp ? nil : true
11240
+ self.pos = _save4
11241
+ unless _tmp
11242
+ self.pos = _save3
11021
11243
  break
11022
- end # end sequence
11244
+ end
11245
+ _save5 = self.pos
11246
+ _tmp = match_string(")")
11247
+ _tmp = _tmp ? nil : true
11248
+ self.pos = _save5
11249
+ unless _tmp
11250
+ self.pos = _save3
11251
+ break
11252
+ end
11253
+ _save6 = self.pos
11254
+ _tmp = match_string(">")
11255
+ _tmp = _tmp ? nil : true
11256
+ self.pos = _save6
11257
+ unless _tmp
11258
+ self.pos = _save3
11259
+ break
11260
+ end
11261
+ _tmp = apply(:_Nonspacechar)
11262
+ unless _tmp
11263
+ self.pos = _save3
11264
+ end
11265
+ break
11266
+ end # end sequence
11023
11267
 
11024
- if _tmp
11025
- while true
11268
+ if _tmp
11269
+ while true
11026
11270
 
11271
+ _save7 = self.pos
11272
+ while true # sequence
11027
11273
  _save8 = self.pos
11028
- while true # sequence
11029
- _save9 = self.pos
11030
- _tmp = match_string("(")
11031
- _tmp = _tmp ? nil : true
11032
- self.pos = _save9
11033
- unless _tmp
11034
- self.pos = _save8
11035
- break
11036
- end
11037
- _save10 = self.pos
11038
- _tmp = match_string(")")
11039
- _tmp = _tmp ? nil : true
11040
- self.pos = _save10
11041
- unless _tmp
11042
- self.pos = _save8
11043
- break
11044
- end
11045
- _save11 = self.pos
11046
- _tmp = match_string(">")
11047
- _tmp = _tmp ? nil : true
11048
- self.pos = _save11
11049
- unless _tmp
11050
- self.pos = _save8
11051
- break
11052
- end
11053
- _tmp = apply(:_Nonspacechar)
11054
- unless _tmp
11055
- self.pos = _save8
11056
- end
11274
+ _tmp = match_string("(")
11275
+ _tmp = _tmp ? nil : true
11276
+ self.pos = _save8
11277
+ unless _tmp
11278
+ self.pos = _save7
11057
11279
  break
11058
- end # end sequence
11280
+ end
11281
+ _save9 = self.pos
11282
+ _tmp = match_string(")")
11283
+ _tmp = _tmp ? nil : true
11284
+ self.pos = _save9
11285
+ unless _tmp
11286
+ self.pos = _save7
11287
+ break
11288
+ end
11289
+ _save10 = self.pos
11290
+ _tmp = match_string(">")
11291
+ _tmp = _tmp ? nil : true
11292
+ self.pos = _save10
11293
+ unless _tmp
11294
+ self.pos = _save7
11295
+ break
11296
+ end
11297
+ _tmp = apply(:_Nonspacechar)
11298
+ unless _tmp
11299
+ self.pos = _save7
11300
+ end
11301
+ break
11302
+ end # end sequence
11059
11303
 
11060
- break unless _tmp
11061
- end
11062
- _tmp = true
11063
- else
11064
- self.pos = _save3
11304
+ break unless _tmp
11065
11305
  end
11066
- break if _tmp
11306
+ _tmp = true
11307
+ else
11067
11308
  self.pos = _save2
11309
+ end
11310
+ break if _tmp
11311
+ self.pos = _save1
11068
11312
 
11069
- _save12 = self.pos
11070
- while true # sequence
11071
- _tmp = match_string("(")
11072
- unless _tmp
11073
- self.pos = _save12
11074
- break
11075
- end
11076
- _tmp = apply(:_SourceContents)
11077
- unless _tmp
11078
- self.pos = _save12
11079
- break
11080
- end
11081
- _tmp = match_string(")")
11082
- unless _tmp
11083
- self.pos = _save12
11084
- end
11313
+ _save11 = self.pos
11314
+ while true # sequence
11315
+ _tmp = match_string("(")
11316
+ unless _tmp
11317
+ self.pos = _save11
11085
11318
  break
11086
- end # end sequence
11087
-
11088
- break if _tmp
11089
- self.pos = _save2
11319
+ end
11320
+ _tmp = apply(:_SourceContents)
11321
+ unless _tmp
11322
+ self.pos = _save11
11323
+ break
11324
+ end
11325
+ _tmp = match_string(")")
11326
+ unless _tmp
11327
+ self.pos = _save11
11328
+ end
11090
11329
  break
11091
- end # end choice
11330
+ end # end sequence
11092
11331
 
11093
- break unless _tmp
11094
- end
11095
- _tmp = true
11096
- break if _tmp
11097
- self.pos = _save
11098
- _tmp = match_string("")
11099
- break if _tmp
11100
- self.pos = _save
11101
- break
11102
- end # end choice
11332
+ break if _tmp
11333
+ self.pos = _save1
11334
+ break
11335
+ end # end choice
11103
11336
 
11337
+ break unless _tmp
11338
+ end
11339
+ _tmp = true
11104
11340
  set_failed_rule :_SourceContents unless _tmp
11105
11341
  return _tmp
11106
11342
  end
@@ -14357,12 +14593,12 @@ class RDoc::Markdown
14357
14593
  return _tmp
14358
14594
  end
14359
14595
 
14360
- # SpecialChar = (/[*_`&\[\]()<!#\\'"]/ | @ExtendedSpecialChar)
14596
+ # SpecialChar = (/[~*_`&\[\]()<!#\\'"]/ | @ExtendedSpecialChar)
14361
14597
  def _SpecialChar
14362
14598
 
14363
14599
  _save = self.pos
14364
14600
  while true # choice
14365
- _tmp = scan(/\A(?-mix:[*_`&\[\]()<!#\\'"])/)
14601
+ _tmp = scan(/\A(?-mix:[~*_`&\[\]()<!#\\'"])/)
14366
14602
  break if _tmp
14367
14603
  self.pos = _save
14368
14604
  _tmp = _ExtendedSpecialChar()
@@ -14455,13 +14691,6 @@ class RDoc::Markdown
14455
14691
  return _tmp
14456
14692
  end
14457
14693
 
14458
- # NonAlphanumeric = %literals.NonAlphanumeric
14459
- def _NonAlphanumeric
14460
- _tmp = @_grammar_literals.external_invoke(self, :_NonAlphanumeric)
14461
- set_failed_rule :_NonAlphanumeric unless _tmp
14462
- return _tmp
14463
- end
14464
-
14465
14694
  # Spacechar = %literals.Spacechar
14466
14695
  def _Spacechar
14467
14696
  _tmp = @_grammar_literals.external_invoke(self, :_Spacechar)
@@ -15189,7 +15418,7 @@ class RDoc::Markdown
15189
15418
  return _tmp
15190
15419
  end
15191
15420
 
15192
- # InlineNote = &{ notes? } "^[" @StartList:a (!"]" Inline:l { a << l })+ "]" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref }
15421
+ # InlineNote = &{ notes? } "^[" @StartList:a (!"]" Inline:l { a << l })+ "]" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref }
15193
15422
  def _InlineNote
15194
15423
 
15195
15424
  _save = self.pos
@@ -15280,8 +15509,7 @@ class RDoc::Markdown
15280
15509
  self.pos = _save
15281
15510
  break
15282
15511
  end
15283
- @result = begin;
15284
- ref = [:inline, @note_order.length]
15512
+ @result = begin; ref = [:inline, @note_order.length]
15285
15513
  @footnotes[ref] = paragraph a
15286
15514
 
15287
15515
  note_for ref
@@ -15424,7 +15652,7 @@ class RDoc::Markdown
15424
15652
  return _tmp
15425
15653
  end
15426
15654
 
15427
- # 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 verbatim }
15655
+ # 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 }
15428
15656
  def _CodeFence
15429
15657
 
15430
15658
  _save = self.pos
@@ -15666,7 +15894,7 @@ class RDoc::Markdown
15666
15894
  break
15667
15895
  end
15668
15896
  @result = begin; verbatim = RDoc::Markup::Verbatim.new text
15669
- verbatim.format = format.intern if format
15897
+ verbatim.format = format.intern if format.instance_of?(String)
15670
15898
  verbatim
15671
15899
  ; end
15672
15900
  _tmp = true
@@ -15680,6 +15908,338 @@ class RDoc::Markdown
15680
15908
  return _tmp
15681
15909
  end
15682
15910
 
15911
+ # Table = &{ github? } TableRow:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) }
15912
+ def _Table
15913
+
15914
+ _save = self.pos
15915
+ while true # sequence
15916
+ _save1 = self.pos
15917
+ _tmp = begin; github? ; end
15918
+ self.pos = _save1
15919
+ unless _tmp
15920
+ self.pos = _save
15921
+ break
15922
+ end
15923
+ _tmp = apply(:_TableRow)
15924
+ header = @result
15925
+ unless _tmp
15926
+ self.pos = _save
15927
+ break
15928
+ end
15929
+ _tmp = apply(:_TableLine)
15930
+ line = @result
15931
+ unless _tmp
15932
+ self.pos = _save
15933
+ break
15934
+ end
15935
+ _save2 = self.pos
15936
+ _ary = []
15937
+ _tmp = apply(:_TableRow)
15938
+ if _tmp
15939
+ _ary << @result
15940
+ while true
15941
+ _tmp = apply(:_TableRow)
15942
+ _ary << @result if _tmp
15943
+ break unless _tmp
15944
+ end
15945
+ _tmp = true
15946
+ @result = _ary
15947
+ else
15948
+ self.pos = _save2
15949
+ end
15950
+ body = @result
15951
+ unless _tmp
15952
+ self.pos = _save
15953
+ break
15954
+ end
15955
+ @result = begin; table = RDoc::Markup::Table.new(header, line, body) ; end
15956
+ _tmp = true
15957
+ unless _tmp
15958
+ self.pos = _save
15959
+ end
15960
+ break
15961
+ end # end sequence
15962
+
15963
+ set_failed_rule :_Table unless _tmp
15964
+ return _tmp
15965
+ end
15966
+
15967
+ # TableRow = TableItem+:row "|" @Newline { row }
15968
+ def _TableRow
15969
+
15970
+ _save = self.pos
15971
+ while true # sequence
15972
+ _save1 = self.pos
15973
+ _ary = []
15974
+ _tmp = apply(:_TableItem)
15975
+ if _tmp
15976
+ _ary << @result
15977
+ while true
15978
+ _tmp = apply(:_TableItem)
15979
+ _ary << @result if _tmp
15980
+ break unless _tmp
15981
+ end
15982
+ _tmp = true
15983
+ @result = _ary
15984
+ else
15985
+ self.pos = _save1
15986
+ end
15987
+ row = @result
15988
+ unless _tmp
15989
+ self.pos = _save
15990
+ break
15991
+ end
15992
+ _tmp = match_string("|")
15993
+ unless _tmp
15994
+ self.pos = _save
15995
+ break
15996
+ end
15997
+ _tmp = _Newline()
15998
+ unless _tmp
15999
+ self.pos = _save
16000
+ break
16001
+ end
16002
+ @result = begin; row ; end
16003
+ _tmp = true
16004
+ unless _tmp
16005
+ self.pos = _save
16006
+ end
16007
+ break
16008
+ end # end sequence
16009
+
16010
+ set_failed_rule :_TableRow unless _tmp
16011
+ return _tmp
16012
+ end
16013
+
16014
+ # TableItem = "|" < (!"|" !@Newline .)+ > { text.strip }
16015
+ def _TableItem
16016
+
16017
+ _save = self.pos
16018
+ while true # sequence
16019
+ _tmp = match_string("|")
16020
+ unless _tmp
16021
+ self.pos = _save
16022
+ break
16023
+ end
16024
+ _text_start = self.pos
16025
+ _save1 = self.pos
16026
+
16027
+ _save2 = self.pos
16028
+ while true # sequence
16029
+ _save3 = self.pos
16030
+ _tmp = match_string("|")
16031
+ _tmp = _tmp ? nil : true
16032
+ self.pos = _save3
16033
+ unless _tmp
16034
+ self.pos = _save2
16035
+ break
16036
+ end
16037
+ _save4 = self.pos
16038
+ _tmp = _Newline()
16039
+ _tmp = _tmp ? nil : true
16040
+ self.pos = _save4
16041
+ unless _tmp
16042
+ self.pos = _save2
16043
+ break
16044
+ end
16045
+ _tmp = get_byte
16046
+ unless _tmp
16047
+ self.pos = _save2
16048
+ end
16049
+ break
16050
+ end # end sequence
16051
+
16052
+ if _tmp
16053
+ while true
16054
+
16055
+ _save5 = self.pos
16056
+ while true # sequence
16057
+ _save6 = self.pos
16058
+ _tmp = match_string("|")
16059
+ _tmp = _tmp ? nil : true
16060
+ self.pos = _save6
16061
+ unless _tmp
16062
+ self.pos = _save5
16063
+ break
16064
+ end
16065
+ _save7 = self.pos
16066
+ _tmp = _Newline()
16067
+ _tmp = _tmp ? nil : true
16068
+ self.pos = _save7
16069
+ unless _tmp
16070
+ self.pos = _save5
16071
+ break
16072
+ end
16073
+ _tmp = get_byte
16074
+ unless _tmp
16075
+ self.pos = _save5
16076
+ end
16077
+ break
16078
+ end # end sequence
16079
+
16080
+ break unless _tmp
16081
+ end
16082
+ _tmp = true
16083
+ else
16084
+ self.pos = _save1
16085
+ end
16086
+ if _tmp
16087
+ text = get_text(_text_start)
16088
+ end
16089
+ unless _tmp
16090
+ self.pos = _save
16091
+ break
16092
+ end
16093
+ @result = begin; text.strip ; end
16094
+ _tmp = true
16095
+ unless _tmp
16096
+ self.pos = _save
16097
+ end
16098
+ break
16099
+ end # end sequence
16100
+
16101
+ set_failed_rule :_TableItem unless _tmp
16102
+ return _tmp
16103
+ end
16104
+
16105
+ # TableLine = TableColumn+:line "|" @Newline { line }
16106
+ def _TableLine
16107
+
16108
+ _save = self.pos
16109
+ while true # sequence
16110
+ _save1 = self.pos
16111
+ _ary = []
16112
+ _tmp = apply(:_TableColumn)
16113
+ if _tmp
16114
+ _ary << @result
16115
+ while true
16116
+ _tmp = apply(:_TableColumn)
16117
+ _ary << @result if _tmp
16118
+ break unless _tmp
16119
+ end
16120
+ _tmp = true
16121
+ @result = _ary
16122
+ else
16123
+ self.pos = _save1
16124
+ end
16125
+ line = @result
16126
+ unless _tmp
16127
+ self.pos = _save
16128
+ break
16129
+ end
16130
+ _tmp = match_string("|")
16131
+ unless _tmp
16132
+ self.pos = _save
16133
+ break
16134
+ end
16135
+ _tmp = _Newline()
16136
+ unless _tmp
16137
+ self.pos = _save
16138
+ break
16139
+ end
16140
+ @result = begin; line ; end
16141
+ _tmp = true
16142
+ unless _tmp
16143
+ self.pos = _save
16144
+ end
16145
+ break
16146
+ end # end sequence
16147
+
16148
+ set_failed_rule :_TableLine unless _tmp
16149
+ return _tmp
16150
+ end
16151
+
16152
+ # TableColumn = "|" < ("-"+ ":"? | ":" "-"*) > { text.start_with?(":") ? :left : text.end_with?(":") ? :right : nil }
16153
+ def _TableColumn
16154
+
16155
+ _save = self.pos
16156
+ while true # sequence
16157
+ _tmp = match_string("|")
16158
+ unless _tmp
16159
+ self.pos = _save
16160
+ break
16161
+ end
16162
+ _text_start = self.pos
16163
+
16164
+ _save1 = self.pos
16165
+ while true # choice
16166
+
16167
+ _save2 = self.pos
16168
+ while true # sequence
16169
+ _save3 = self.pos
16170
+ _tmp = match_string("-")
16171
+ if _tmp
16172
+ while true
16173
+ _tmp = match_string("-")
16174
+ break unless _tmp
16175
+ end
16176
+ _tmp = true
16177
+ else
16178
+ self.pos = _save3
16179
+ end
16180
+ unless _tmp
16181
+ self.pos = _save2
16182
+ break
16183
+ end
16184
+ _save4 = self.pos
16185
+ _tmp = match_string(":")
16186
+ unless _tmp
16187
+ _tmp = true
16188
+ self.pos = _save4
16189
+ end
16190
+ unless _tmp
16191
+ self.pos = _save2
16192
+ end
16193
+ break
16194
+ end # end sequence
16195
+
16196
+ break if _tmp
16197
+ self.pos = _save1
16198
+
16199
+ _save5 = self.pos
16200
+ while true # sequence
16201
+ _tmp = match_string(":")
16202
+ unless _tmp
16203
+ self.pos = _save5
16204
+ break
16205
+ end
16206
+ while true
16207
+ _tmp = match_string("-")
16208
+ break unless _tmp
16209
+ end
16210
+ _tmp = true
16211
+ unless _tmp
16212
+ self.pos = _save5
16213
+ end
16214
+ break
16215
+ end # end sequence
16216
+
16217
+ break if _tmp
16218
+ self.pos = _save1
16219
+ break
16220
+ end # end choice
16221
+
16222
+ if _tmp
16223
+ text = get_text(_text_start)
16224
+ end
16225
+ unless _tmp
16226
+ self.pos = _save
16227
+ break
16228
+ end
16229
+ @result = begin; text.start_with?(":") ? :left :
16230
+ text.end_with?(":") ? :right : nil
16231
+ ; end
16232
+ _tmp = true
16233
+ unless _tmp
16234
+ self.pos = _save
16235
+ end
16236
+ break
16237
+ end # end sequence
16238
+
16239
+ set_failed_rule :_TableColumn unless _tmp
16240
+ return _tmp
16241
+ end
16242
+
15683
16243
  # DefinitionList = &{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }
15684
16244
  def _DefinitionList
15685
16245
 
@@ -15879,17 +16439,17 @@ class RDoc::Markdown
15879
16439
  Rules = {}
15880
16440
  Rules[:_root] = rule_info("root", "Doc")
15881
16441
  Rules[:_Doc] = rule_info("Doc", "BOM? Block*:a { RDoc::Markup::Document.new(*a.compact) }")
15882
- Rules[:_Block] = rule_info("Block", "@BlankLine* (BlockQuote | Verbatim | CodeFence | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)")
16442
+ Rules[:_Block] = rule_info("Block", "@BlankLine* (BlockQuote | Verbatim | CodeFence | Table | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)")
15883
16443
  Rules[:_Para] = rule_info("Para", "@NonindentSpace Inlines:a @BlankLine+ { paragraph a }")
15884
16444
  Rules[:_Plain] = rule_info("Plain", "Inlines:a { paragraph a }")
15885
- Rules[:_AtxInline] = rule_info("AtxInline", "!@Newline !(@Sp? /\#*/ @Sp @Newline) Inline")
16445
+ Rules[:_AtxInline] = rule_info("AtxInline", "!@Newline !(@Sp /\#*/ @Sp @Newline) Inline")
15886
16446
  Rules[:_AtxStart] = rule_info("AtxStart", "< /\\\#{1,6}/ > { text.length }")
15887
- Rules[:_AtxHeading] = rule_info("AtxHeading", "AtxStart:s @Sp? AtxInline+:a (@Sp? /\#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }")
16447
+ Rules[:_AtxHeading] = rule_info("AtxHeading", "AtxStart:s @Sp AtxInline+:a (@Sp /\#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }")
15888
16448
  Rules[:_SetextHeading] = rule_info("SetextHeading", "(SetextHeading1 | SetextHeading2)")
15889
- Rules[:_SetextBottom1] = rule_info("SetextBottom1", "/={3,}/ @Newline")
15890
- Rules[:_SetextBottom2] = rule_info("SetextBottom2", "/-{3,}/ @Newline")
15891
- Rules[:_SetextHeading1] = rule_info("SetextHeading1", "&(@RawLine SetextBottom1) @StartList:a (!@Endline Inline:b { a << b })+ @Sp? @Newline SetextBottom1 { RDoc::Markup::Heading.new(1, a.join) }")
15892
- Rules[:_SetextHeading2] = rule_info("SetextHeading2", "&(@RawLine SetextBottom2) @StartList:a (!@Endline Inline:b { a << b })+ @Sp? @Newline SetextBottom2 { RDoc::Markup::Heading.new(2, a.join) }")
16449
+ Rules[:_SetextBottom1] = rule_info("SetextBottom1", "/={1,}/ @Newline")
16450
+ Rules[:_SetextBottom2] = rule_info("SetextBottom2", "/-{1,}/ @Newline")
16451
+ Rules[:_SetextHeading1] = rule_info("SetextHeading1", "&(@RawLine SetextBottom1) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom1 { RDoc::Markup::Heading.new(1, a.join) }")
16452
+ Rules[:_SetextHeading2] = rule_info("SetextHeading2", "&(@RawLine SetextBottom2) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom2 { RDoc::Markup::Heading.new(2, a.join) }")
15893
16453
  Rules[:_Heading] = rule_info("Heading", "(SetextHeading | AtxHeading)")
15894
16454
  Rules[:_BlockQuote] = rule_info("BlockQuote", "BlockQuoteRaw:a { RDoc::Markup::BlockQuote.new(*a) }")
15895
16455
  Rules[:_BlockQuoteRaw] = rule_info("BlockQuoteRaw", "@StartList:a (\">\" \" \"? Line:l { a << l } (!\">\" !@BlankLine Line:c { a << c })* (@BlankLine:n { a << n })*)+ { inner_parse a.join }")
@@ -16010,7 +16570,10 @@ class RDoc::Markdown
16010
16570
  Rules[:_HtmlBlockOpenScript] = rule_info("HtmlBlockOpenScript", "\"<\" Spnl (\"script\" | \"SCRIPT\") Spnl HtmlAttribute* \">\"")
16011
16571
  Rules[:_HtmlBlockCloseScript] = rule_info("HtmlBlockCloseScript", "\"<\" Spnl \"/\" (\"script\" | \"SCRIPT\") Spnl \">\"")
16012
16572
  Rules[:_HtmlBlockScript] = rule_info("HtmlBlockScript", "HtmlBlockOpenScript (!HtmlBlockCloseScript .)* HtmlBlockCloseScript")
16013
- 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)")
16573
+ Rules[:_HtmlBlockOpenHead] = rule_info("HtmlBlockOpenHead", "\"<\" Spnl (\"head\" | \"HEAD\") Spnl HtmlAttribute* \">\"")
16574
+ Rules[:_HtmlBlockCloseHead] = rule_info("HtmlBlockCloseHead", "\"<\" Spnl \"/\" (\"head\" | \"HEAD\") Spnl \">\"")
16575
+ Rules[:_HtmlBlockHead] = rule_info("HtmlBlockHead", "HtmlBlockOpenHead (!HtmlBlockCloseHead .)* HtmlBlockCloseHead")
16576
+ 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)")
16014
16577
  Rules[:_HtmlBlock] = rule_info("HtmlBlock", "< (HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) > @BlankLine+ { if html? then RDoc::Markup::Raw.new text end }")
16015
16578
  Rules[:_HtmlUnclosed] = rule_info("HtmlUnclosed", "\"<\" Spnl HtmlUnclosedType Spnl HtmlAttribute* Spnl \">\"")
16016
16579
  Rules[:_HtmlUnclosedType] = rule_info("HtmlUnclosedType", "(\"HR\" | \"hr\")")
@@ -16020,15 +16583,15 @@ class RDoc::Markdown
16020
16583
  Rules[:_StyleClose] = rule_info("StyleClose", "\"<\" Spnl \"/\" (\"style\" | \"STYLE\") Spnl \">\"")
16021
16584
  Rules[:_InStyleTags] = rule_info("InStyleTags", "StyleOpen (!StyleClose .)* StyleClose")
16022
16585
  Rules[:_StyleBlock] = rule_info("StyleBlock", "< InStyleTags > @BlankLine* { if css? then RDoc::Markup::Raw.new text end }")
16023
- Rules[:_Inlines] = rule_info("Inlines", "(!@Endline Inline:i { i } | @Endline:c &Inline { c })+:chunks @Endline? { chunks }")
16024
- Rules[:_Inline] = rule_info("Inline", "(Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)")
16586
+ Rules[:_Inlines] = rule_info("Inlines", "(!@Endline Inline:i { i } | @Endline:c !(&{ github? } Ticks3 /[^`\\n]*$/) &Inline { c })+:chunks @Endline? { chunks }")
16587
+ Rules[:_Inline] = rule_info("Inline", "(Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)")
16025
16588
  Rules[:_Space] = rule_info("Space", "@Spacechar+ { \" \" }")
16026
16589
  Rules[:_Str] = rule_info("Str", "@StartList:a < @NormalChar+ > { a = text } (StrChunk:c { a << c })* { a }")
16027
16590
  Rules[:_StrChunk] = rule_info("StrChunk", "< (@NormalChar | /_+/ &Alphanumeric)+ > { text }")
16028
16591
  Rules[:_EscapedChar] = rule_info("EscapedChar", "\"\\\\\" !@Newline < /[:\\\\`|*_{}\\[\\]()\#+.!><-]/ > { text }")
16029
16592
  Rules[:_Entity] = rule_info("Entity", "(HexEntity | DecEntity | CharEntity):a { a }")
16030
16593
  Rules[:_Endline] = rule_info("Endline", "(@LineBreak | @TerminalEndline | @NormalEndline)")
16031
- Rules[:_NormalEndline] = rule_info("NormalEndline", "@Sp @Newline !@BlankLine !\">\" !AtxStart !(Line /={3,}|-{3,}=/ @Newline) { \"\\n\" }")
16594
+ Rules[:_NormalEndline] = rule_info("NormalEndline", "@Sp @Newline !@BlankLine !\">\" !AtxStart !(Line /={1,}|-{1,}/ @Newline) { \"\\n\" }")
16032
16595
  Rules[:_TerminalEndline] = rule_info("TerminalEndline", "@Sp @Newline @Eof")
16033
16596
  Rules[:_LineBreak] = rule_info("LineBreak", "\" \" @NormalEndline { RDoc::Markup::HardBreak.new }")
16034
16597
  Rules[:_Symbol] = rule_info("Symbol", "< @SpecialChar > { text }")
@@ -16036,27 +16599,21 @@ class RDoc::Markdown
16036
16599
  Rules[:_StarLine] = rule_info("StarLine", "(< /\\*{4,}/ > { text } | < @Spacechar /\\*+/ &@Spacechar > { text })")
16037
16600
  Rules[:_UlLine] = rule_info("UlLine", "(< /_{4,}/ > { text } | < @Spacechar /_+/ &@Spacechar > { text })")
16038
16601
  Rules[:_Emph] = rule_info("Emph", "(EmphStar | EmphUl)")
16039
- Rules[:_OneStarOpen] = rule_info("OneStarOpen", "!StarLine \"*\" !@Spacechar !@Newline")
16040
- Rules[:_OneStarClose] = rule_info("OneStarClose", "!@Spacechar !@Newline Inline:a \"*\" { a }")
16041
- Rules[:_EmphStar] = rule_info("EmphStar", "OneStarOpen @StartList:a (!OneStarClose Inline:l { a << l })* OneStarClose:l { a << l } { emphasis a.join }")
16042
- Rules[:_OneUlOpen] = rule_info("OneUlOpen", "!UlLine \"_\" !@Spacechar !@Newline")
16043
- Rules[:_OneUlClose] = rule_info("OneUlClose", "!@Spacechar !@Newline Inline:a \"_\" { a }")
16044
- Rules[:_EmphUl] = rule_info("EmphUl", "OneUlOpen @StartList:a (!OneUlClose Inline:l { a << l })* OneUlClose:l { a << l } { emphasis a.join }")
16602
+ Rules[:_Whitespace] = rule_info("Whitespace", "(@Spacechar | @Newline)")
16603
+ Rules[:_EmphStar] = rule_info("EmphStar", "\"*\" !@Whitespace @StartList:a (!\"*\" Inline:b { a << b } | StrongStar:b { a << b })+ \"*\" { emphasis a.join }")
16604
+ Rules[:_EmphUl] = rule_info("EmphUl", "\"_\" !@Whitespace @StartList:a (!\"_\" Inline:b { a << b } | StrongUl:b { a << b })+ \"_\" { emphasis a.join }")
16045
16605
  Rules[:_Strong] = rule_info("Strong", "(StrongStar | StrongUl)")
16046
- Rules[:_TwoStarOpen] = rule_info("TwoStarOpen", "!StarLine \"**\" !@Spacechar !@Newline")
16047
- Rules[:_TwoStarClose] = rule_info("TwoStarClose", "!@Spacechar !@Newline Inline:a \"**\" { a }")
16048
- Rules[:_StrongStar] = rule_info("StrongStar", "TwoStarOpen @StartList:a (!TwoStarClose Inline:l { a << l })* TwoStarClose:l { a << l } { strong a.join }")
16049
- Rules[:_TwoUlOpen] = rule_info("TwoUlOpen", "!UlLine \"__\" !@Spacechar !@Newline")
16050
- Rules[:_TwoUlClose] = rule_info("TwoUlClose", "!@Spacechar !@Newline Inline:a \"__\" { a }")
16051
- Rules[:_StrongUl] = rule_info("StrongUl", "TwoUlOpen @StartList:a (!TwoUlClose Inline:i { a << i })* TwoUlClose:l { a << l } { strong a.join }")
16606
+ Rules[:_StrongStar] = rule_info("StrongStar", "\"**\" !@Whitespace @StartList:a (!\"**\" Inline:b { a << b })+ \"**\" { strong a.join }")
16607
+ Rules[:_StrongUl] = rule_info("StrongUl", "\"__\" !@Whitespace @StartList:a (!\"__\" Inline:b { a << b })+ \"__\" { strong a.join }")
16608
+ Rules[:_Strike] = rule_info("Strike", "&{ strike? } \"~~\" !@Whitespace @StartList:a (!\"~~\" Inline:b { a << b })+ \"~~\" { strike a.join }")
16052
16609
  Rules[:_Image] = rule_info("Image", "\"!\" (ExplicitLink | ReferenceLink):a { \"rdoc-image:\#{a[/\\[(.*)\\]/, 1]}\" }")
16053
16610
  Rules[:_Link] = rule_info("Link", "(ExplicitLink | ReferenceLink | AutoLink)")
16054
16611
  Rules[:_ReferenceLink] = rule_info("ReferenceLink", "(ReferenceLinkDouble | ReferenceLinkSingle)")
16055
16612
  Rules[:_ReferenceLinkDouble] = rule_info("ReferenceLinkDouble", "Label:content < Spnl > !\"[]\" Label:label { link_to content, label, text }")
16056
16613
  Rules[:_ReferenceLinkSingle] = rule_info("ReferenceLinkSingle", "Label:content < (Spnl \"[]\")? > { link_to content, content, text }")
16057
- Rules[:_ExplicitLink] = rule_info("ExplicitLink", "Label:l Spnl \"(\" @Sp Source:s Spnl Title @Sp \")\" { \"{\#{l}}[\#{s}]\" }")
16614
+ Rules[:_ExplicitLink] = rule_info("ExplicitLink", "Label:l \"(\" @Sp Source:s Spnl Title @Sp \")\" { \"{\#{l}}[\#{s}]\" }")
16058
16615
  Rules[:_Source] = rule_info("Source", "(\"<\" < SourceContents > \">\" | < SourceContents >) { text }")
16059
- Rules[:_SourceContents] = rule_info("SourceContents", "(((!\"(\" !\")\" !\">\" Nonspacechar)+ | \"(\" SourceContents \")\")* | \"\")")
16616
+ Rules[:_SourceContents] = rule_info("SourceContents", "((!\"(\" !\")\" !\">\" Nonspacechar)+ | \"(\" SourceContents \")\")*")
16060
16617
  Rules[:_Title] = rule_info("Title", "(TitleSingle | TitleDouble | \"\"):a { a }")
16061
16618
  Rules[:_TitleSingle] = rule_info("TitleSingle", "\"'\" (!(\"'\" @Sp (\")\" | @Newline)) .)* \"'\"")
16062
16619
  Rules[:_TitleDouble] = rule_info("TitleDouble", "\"\\\"\" (!(\"\\\"\" @Sp (\")\" | @Newline)) .)* \"\\\"\"")
@@ -16088,14 +16645,13 @@ class RDoc::Markdown
16088
16645
  Rules[:_Nonspacechar] = rule_info("Nonspacechar", "!@Spacechar !@Newline .")
16089
16646
  Rules[:_Sp] = rule_info("Sp", "@Spacechar*")
16090
16647
  Rules[:_Spnl] = rule_info("Spnl", "@Sp (@Newline @Sp)?")
16091
- Rules[:_SpecialChar] = rule_info("SpecialChar", "(/[*_`&\\[\\]()<!\#\\\\'\"]/ | @ExtendedSpecialChar)")
16648
+ Rules[:_SpecialChar] = rule_info("SpecialChar", "(/[~*_`&\\[\\]()<!\#\\\\'\"]/ | @ExtendedSpecialChar)")
16092
16649
  Rules[:_NormalChar] = rule_info("NormalChar", "!(@SpecialChar | @Spacechar | @Newline) .")
16093
16650
  Rules[:_Digit] = rule_info("Digit", "[0-9]")
16094
16651
  Rules[:_Alphanumeric] = rule_info("Alphanumeric", "%literals.Alphanumeric")
16095
16652
  Rules[:_AlphanumericAscii] = rule_info("AlphanumericAscii", "%literals.AlphanumericAscii")
16096
16653
  Rules[:_BOM] = rule_info("BOM", "%literals.BOM")
16097
16654
  Rules[:_Newline] = rule_info("Newline", "%literals.Newline")
16098
- Rules[:_NonAlphanumeric] = rule_info("NonAlphanumeric", "%literals.NonAlphanumeric")
16099
16655
  Rules[:_Spacechar] = rule_info("Spacechar", "%literals.Spacechar")
16100
16656
  Rules[:_HexEntity] = rule_info("HexEntity", "/&\#x/i < /[0-9a-fA-F]+/ > \";\" { [text.to_i(16)].pack 'U' }")
16101
16657
  Rules[:_DecEntity] = rule_info("DecEntity", "\"&\#\" < /[0-9]+/ > \";\" { [text.to_i].pack 'U' }")
@@ -16112,10 +16668,15 @@ class RDoc::Markdown
16112
16668
  Rules[:_NoteReference] = rule_info("NoteReference", "&{ notes? } RawNoteReference:ref { note_for ref }")
16113
16669
  Rules[:_RawNoteReference] = rule_info("RawNoteReference", "\"[^\" < (!@Newline !\"]\" .)+ > \"]\" { text }")
16114
16670
  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 }")
16115
- Rules[:_InlineNote] = rule_info("InlineNote", "&{ notes? } \"^[\" @StartList:a (!\"]\" Inline:l { a << l })+ \"]\" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref }")
16671
+ Rules[:_InlineNote] = rule_info("InlineNote", "&{ notes? } \"^[\" @StartList:a (!\"]\" Inline:l { a << l })+ \"]\" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref }")
16116
16672
  Rules[:_Notes] = rule_info("Notes", "(Note | SkipBlock)*")
16117
16673
  Rules[:_RawNoteBlock] = rule_info("RawNoteBlock", "@StartList:a (!@BlankLine OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }")
16118
- 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 verbatim }")
16674
+ 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 }")
16675
+ Rules[:_Table] = rule_info("Table", "&{ github? } TableRow:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) }")
16676
+ Rules[:_TableRow] = rule_info("TableRow", "TableItem+:row \"|\" @Newline { row }")
16677
+ Rules[:_TableItem] = rule_info("TableItem", "\"|\" < (!\"|\" !@Newline .)+ > { text.strip }")
16678
+ Rules[:_TableLine] = rule_info("TableLine", "TableColumn+:line \"|\" @Newline { line }")
16679
+ Rules[:_TableColumn] = rule_info("TableColumn", "\"|\" < (\"-\"+ \":\"? | \":\" \"-\"*) > { text.start_with?(\":\") ? :left : text.end_with?(\":\") ? :right : nil }")
16119
16680
  Rules[:_DefinitionList] = rule_info("DefinitionList", "&{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }")
16120
16681
  Rules[:_DefinitionListItem] = rule_info("DefinitionListItem", "DefinitionListLabel+:label DefinitionListDefinition+:defns { list_items = [] list_items << RDoc::Markup::ListItem.new(label, defns.shift) list_items.concat defns.map { |defn| RDoc::Markup::ListItem.new nil, defn } unless list_items.empty? list_items }")
16121
16682
  Rules[:_DefinitionListLabel] = rule_info("DefinitionListLabel", "StrChunk:label @Sp @Newline { label }")