rdoc 5.1.0 → 6.13.1

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 (179) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.rdoc +5 -6
  3. data/ExampleMarkdown.md +2 -0
  4. data/ExampleRDoc.rdoc +2 -0
  5. data/History.rdoc +68 -66
  6. data/LEGAL.rdoc +1 -1
  7. data/LICENSE.rdoc +2 -0
  8. data/README.rdoc +18 -6
  9. data/RI.md +842 -0
  10. data/TODO.rdoc +8 -7
  11. data/exe/rdoc +0 -1
  12. data/lib/rdoc/{alias.rb → code_object/alias.rb} +4 -12
  13. data/lib/rdoc/{anon_class.rb → code_object/anon_class.rb} +1 -2
  14. data/lib/rdoc/{any_method.rb → code_object/any_method.rb} +83 -26
  15. data/lib/rdoc/{attr.rb → code_object/attr.rb} +5 -9
  16. data/lib/rdoc/{class_module.rb → code_object/class_module.rb} +112 -24
  17. data/lib/rdoc/{constant.rb → code_object/constant.rb} +4 -5
  18. data/lib/rdoc/{context → code_object/context}/section.rb +13 -83
  19. data/lib/rdoc/{context.rb → code_object/context.rb} +69 -70
  20. data/lib/rdoc/{extend.rb → code_object/extend.rb} +1 -2
  21. data/lib/rdoc/{ghost_method.rb → code_object/ghost_method.rb} +1 -2
  22. data/lib/rdoc/{include.rb → code_object/include.rb} +1 -2
  23. data/lib/rdoc/{meta_method.rb → code_object/meta_method.rb} +1 -2
  24. data/lib/rdoc/{method_attr.rb → code_object/method_attr.rb} +22 -31
  25. data/lib/rdoc/{mixin.rb → code_object/mixin.rb} +1 -2
  26. data/lib/rdoc/{normal_class.rb → code_object/normal_class.rb} +4 -5
  27. data/lib/rdoc/{normal_module.rb → code_object/normal_module.rb} +2 -3
  28. data/lib/rdoc/{require.rb → code_object/require.rb} +2 -3
  29. data/lib/rdoc/{single_class.rb → code_object/single_class.rb} +6 -2
  30. data/lib/rdoc/{top_level.rb → code_object/top_level.rb} +22 -32
  31. data/lib/rdoc/code_object.rb +8 -41
  32. data/lib/rdoc/code_objects.rb +2 -3
  33. data/lib/rdoc/comment.rb +48 -41
  34. data/lib/rdoc/cross_reference.rb +77 -33
  35. data/lib/rdoc/encoding.rb +50 -38
  36. data/lib/rdoc/erb_partial.rb +2 -3
  37. data/lib/rdoc/erbio.rb +4 -5
  38. data/lib/rdoc/generator/darkfish.rb +178 -125
  39. data/lib/rdoc/generator/json_index.rb +9 -22
  40. data/lib/rdoc/generator/markup.rb +6 -17
  41. data/lib/rdoc/generator/pot/message_extractor.rb +4 -4
  42. data/lib/rdoc/generator/pot/po.rb +3 -3
  43. data/lib/rdoc/generator/pot/po_entry.rb +12 -12
  44. data/lib/rdoc/generator/pot.rb +4 -8
  45. data/lib/rdoc/generator/ri.rb +1 -2
  46. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +2 -2
  47. data/lib/rdoc/generator/template/darkfish/_head.rhtml +35 -12
  48. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +1 -5
  49. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
  50. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
  51. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
  52. data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +19 -10
  53. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +26 -6
  54. data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +4 -9
  55. data/lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml +1 -1
  56. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
  57. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +27 -6
  58. data/lib/rdoc/generator/template/darkfish/_sidebar_toggle.rhtml +3 -0
  59. data/lib/rdoc/generator/template/darkfish/class.rhtml +125 -78
  60. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +430 -339
  61. data/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf +0 -0
  62. data/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf +0 -0
  63. data/lib/rdoc/generator/template/darkfish/index.rhtml +13 -13
  64. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +51 -92
  65. data/lib/rdoc/generator/template/darkfish/js/search.js +35 -34
  66. data/lib/rdoc/generator/template/darkfish/page.rhtml +5 -5
  67. data/lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml +10 -8
  68. data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +20 -18
  69. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +32 -20
  70. data/lib/rdoc/generator/template/json_index/js/navigation.js +12 -49
  71. data/lib/rdoc/generator/template/json_index/js/searcher.js +6 -6
  72. data/lib/rdoc/generator.rb +6 -6
  73. data/lib/rdoc/i18n/locale.rb +1 -1
  74. data/lib/rdoc/i18n/text.rb +5 -5
  75. data/lib/rdoc/i18n.rb +4 -4
  76. data/lib/rdoc/known_classes.rb +6 -5
  77. data/lib/rdoc/markdown/entities.rb +1 -2
  78. data/lib/rdoc/markdown/literals.kpeg +1 -2
  79. data/lib/rdoc/markdown/literals.rb +99 -50
  80. data/lib/rdoc/markdown.kpeg +115 -58
  81. data/lib/rdoc/markdown.rb +1584 -902
  82. data/lib/rdoc/markup/attr_changer.rb +1 -2
  83. data/lib/rdoc/markup/attr_span.rb +9 -4
  84. data/lib/rdoc/markup/attribute_manager.rb +118 -57
  85. data/lib/rdoc/markup/attributes.rb +7 -8
  86. data/lib/rdoc/markup/blank_line.rb +1 -2
  87. data/lib/rdoc/markup/block_quote.rb +1 -2
  88. data/lib/rdoc/markup/document.rb +1 -2
  89. data/lib/rdoc/markup/formatter.rb +44 -37
  90. data/lib/rdoc/markup/hard_break.rb +1 -2
  91. data/lib/rdoc/markup/heading.rb +11 -6
  92. data/lib/rdoc/markup/include.rb +1 -2
  93. data/lib/rdoc/markup/indented_paragraph.rb +1 -2
  94. data/lib/rdoc/markup/list.rb +1 -2
  95. data/lib/rdoc/markup/list_item.rb +1 -2
  96. data/lib/rdoc/markup/paragraph.rb +1 -2
  97. data/lib/rdoc/markup/parser.rb +90 -48
  98. data/lib/rdoc/markup/pre_process.rb +38 -11
  99. data/lib/rdoc/markup/raw.rb +1 -2
  100. data/lib/rdoc/markup/regexp_handling.rb +40 -0
  101. data/lib/rdoc/markup/rule.rb +1 -2
  102. data/lib/rdoc/markup/table.rb +56 -0
  103. data/lib/rdoc/markup/to_ansi.rb +1 -2
  104. data/lib/rdoc/markup/to_bs.rb +30 -5
  105. data/lib/rdoc/markup/to_html.rb +95 -40
  106. data/lib/rdoc/markup/to_html_crossref.rb +108 -43
  107. data/lib/rdoc/markup/to_html_snippet.rb +13 -11
  108. data/lib/rdoc/markup/to_joined_paragraph.rb +6 -32
  109. data/lib/rdoc/markup/to_label.rb +11 -12
  110. data/lib/rdoc/markup/to_markdown.rb +13 -14
  111. data/lib/rdoc/markup/to_rdoc.rb +49 -31
  112. data/lib/rdoc/markup/to_table_of_contents.rb +2 -2
  113. data/lib/rdoc/markup/to_test.rb +1 -2
  114. data/lib/rdoc/markup/to_tt_only.rb +3 -4
  115. data/lib/rdoc/markup/verbatim.rb +1 -2
  116. data/lib/rdoc/markup.rb +64 -694
  117. data/lib/rdoc/options.rb +226 -44
  118. data/lib/rdoc/parser/c.rb +231 -246
  119. data/lib/rdoc/parser/changelog.rb +169 -23
  120. data/lib/rdoc/parser/markdown.rb +1 -3
  121. data/lib/rdoc/parser/prism_ruby.rb +1092 -0
  122. data/lib/rdoc/parser/rd.rb +1 -2
  123. data/lib/rdoc/parser/ripper_state_lex.rb +302 -0
  124. data/lib/rdoc/parser/ruby.rb +695 -478
  125. data/lib/rdoc/parser/ruby_tools.rb +33 -36
  126. data/lib/rdoc/parser/simple.rb +4 -4
  127. data/lib/rdoc/parser/text.rb +1 -2
  128. data/lib/rdoc/parser.rb +37 -42
  129. data/lib/rdoc/rd/block_parser.rb +708 -57
  130. data/lib/rdoc/rd/block_parser.ry +15 -11
  131. data/lib/rdoc/rd/inline.rb +5 -6
  132. data/lib/rdoc/rd/inline_parser.rb +787 -140
  133. data/lib/rdoc/rd/inline_parser.ry +1 -1
  134. data/lib/rdoc/rd.rb +4 -5
  135. data/lib/rdoc/rdoc.rb +72 -87
  136. data/lib/rdoc/ri/driver.rb +236 -152
  137. data/lib/rdoc/ri/formatter.rb +1 -1
  138. data/lib/rdoc/ri/paths.rb +4 -18
  139. data/lib/rdoc/ri/store.rb +1 -2
  140. data/lib/rdoc/ri/task.rb +2 -2
  141. data/lib/rdoc/ri.rb +5 -6
  142. data/lib/rdoc/rubygems_hook.rb +98 -20
  143. data/lib/rdoc/servlet.rb +30 -20
  144. data/lib/rdoc/stats/normal.rb +24 -18
  145. data/lib/rdoc/stats/quiet.rb +1 -2
  146. data/lib/rdoc/stats/verbose.rb +1 -3
  147. data/lib/rdoc/stats.rb +6 -7
  148. data/lib/rdoc/store.rb +84 -55
  149. data/lib/rdoc/task.rb +35 -10
  150. data/lib/rdoc/text.rb +40 -27
  151. data/lib/rdoc/token_stream.rb +56 -34
  152. data/lib/rdoc/tom_doc.rb +18 -19
  153. data/lib/rdoc/version.rb +10 -0
  154. data/lib/rdoc.rb +80 -56
  155. data/lib/rubygems_plugin.rb +23 -0
  156. data/man/ri.1 +247 -0
  157. metadata +45 -99
  158. data/.document +0 -5
  159. data/.gitignore +0 -13
  160. data/.travis.yml +0 -24
  161. data/Gemfile +0 -3
  162. data/RI.rdoc +0 -57
  163. data/Rakefile +0 -133
  164. data/bin/console +0 -7
  165. data/bin/setup +0 -6
  166. data/lib/gauntlet_rdoc.rb +0 -82
  167. data/lib/rdoc/generator/template/darkfish/.document +0 -0
  168. data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +0 -19
  169. data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +0 -9
  170. data/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -4
  171. data/lib/rdoc/generator/template/json_index/.document +0 -1
  172. data/lib/rdoc/markup/formatter_test_case.rb +0 -764
  173. data/lib/rdoc/markup/inline.rb +0 -2
  174. data/lib/rdoc/markup/special.rb +0 -41
  175. data/lib/rdoc/markup/text_formatter_test_case.rb +0 -115
  176. data/lib/rdoc/ruby_lex.rb +0 -1367
  177. data/lib/rdoc/ruby_token.rb +0 -461
  178. data/lib/rdoc/test_case.rb +0 -204
  179. data/rdoc.gemspec +0 -57
data/lib/rdoc/markdown.rb CHANGED
@@ -1,11 +1,12 @@
1
1
  # coding: UTF-8
2
+ # frozen_string_literal: true
2
3
  # :markup: markdown
3
4
 
4
5
  ##
5
6
  # RDoc::Markdown as described by the [markdown syntax][syntax].
6
7
  #
7
8
  # To choose Markdown as your only default format see
8
- # RDoc::Options@Saved+Options for instructions on setting up a `.doc_options`
9
+ # RDoc::Options@Saved+Options for instructions on setting up a `.rdoc_options`
9
10
  # file to store your project default.
10
11
  #
11
12
  # ## Usage
@@ -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,9 +173,9 @@
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
- # [PHPE]: http://michelf.com/projects/php-markdown/extra/#def-list
178
+ # [PHPE]: https://michelf.ca/projects/php-markdown/extra/#def-list
166
179
  # [syntax]: http://daringfireball.net/projects/markdown/syntax
167
180
  #--
168
181
  # Last updated to jgm/peg-markdown commit 8f8fc22ef0
@@ -186,6 +199,7 @@ class RDoc::Markdown
186
199
  @result = nil
187
200
  @failed_rule = nil
188
201
  @failing_rule_offset = -1
202
+ @line_offsets = nil
189
203
 
190
204
  setup_foreign_grammar
191
205
  end
@@ -195,30 +209,75 @@ class RDoc::Markdown
195
209
  attr_accessor :result, :pos
196
210
 
197
211
  def current_column(target=pos)
198
- if c = string.rindex("\n", target-1)
199
- return target - c - 1
212
+ if string[target] == "\n" && (c = string.rindex("\n", target-1) || -1)
213
+ return target - c
214
+ elsif c = string.rindex("\n", target)
215
+ return target - c
200
216
  end
201
217
 
202
218
  target + 1
203
219
  end
204
220
 
205
- def current_line(target=pos)
206
- cur_offset = 0
207
- cur_line = 0
221
+ def position_line_offsets
222
+ unless @position_line_offsets
223
+ @position_line_offsets = []
224
+ total = 0
225
+ string.each_line do |line|
226
+ total += line.size
227
+ @position_line_offsets << total
228
+ end
229
+ end
230
+ @position_line_offsets
231
+ end
232
+
233
+ if [].respond_to? :bsearch_index
234
+ def current_line(target=pos)
235
+ if line = position_line_offsets.bsearch_index {|x| x > target }
236
+ return line + 1
237
+ end
238
+ raise "Target position #{target} is outside of string"
239
+ end
240
+ else
241
+ def current_line(target=pos)
242
+ if line = position_line_offsets.index {|x| x > target }
243
+ return line + 1
244
+ end
245
+
246
+ raise "Target position #{target} is outside of string"
247
+ end
248
+ end
208
249
 
209
- string.each_line do |line|
210
- cur_line += 1
211
- cur_offset += line.size
212
- return cur_line if cur_offset >= target
250
+ def current_character(target=pos)
251
+ if target < 0 || target >= string.size
252
+ raise "Target position #{target} is outside of string"
213
253
  end
254
+ string[target, 1]
255
+ end
256
+
257
+ KpegPosInfo = Struct.new(:pos, :lno, :col, :line, :char)
214
258
 
215
- -1
259
+ def current_pos_info(target=pos)
260
+ l = current_line target
261
+ c = current_column target
262
+ ln = get_line(l-1)
263
+ chr = string[target,1]
264
+ KpegPosInfo.new(target, l, c, ln, chr)
216
265
  end
217
266
 
218
267
  def lines
219
- lines = []
220
- string.each_line { |l| lines << l }
221
- lines
268
+ string.lines
269
+ end
270
+
271
+ def get_line(no)
272
+ loff = position_line_offsets
273
+ if no < 0
274
+ raise "Line No is out of range: #{no} < 0"
275
+ elsif no >= loff.size
276
+ raise "Line No is out of range: #{no} >= #{loff.size}"
277
+ end
278
+ lend = loff[no]-1
279
+ lstart = no > 0 ? loff[no-1] : 0
280
+ string[lstart..lend]
222
281
  end
223
282
 
224
283
 
@@ -232,6 +291,7 @@ class RDoc::Markdown
232
291
  @string = string
233
292
  @string_size = string ? string.size : 0
234
293
  @pos = pos
294
+ @position_line_offsets = nil
235
295
  end
236
296
 
237
297
  def show_pos
@@ -256,30 +316,22 @@ class RDoc::Markdown
256
316
  end
257
317
 
258
318
  def failure_caret
259
- l = current_line @failing_rule_offset
260
- c = current_column @failing_rule_offset
261
-
262
- line = lines[l-1]
263
- "#{line}\n#{' ' * (c - 1)}^"
319
+ p = current_pos_info @failing_rule_offset
320
+ "#{p.line.chomp}\n#{' ' * (p.col - 1)}^"
264
321
  end
265
322
 
266
323
  def failure_character
267
- l = current_line @failing_rule_offset
268
- c = current_column @failing_rule_offset
269
- lines[l-1][c-1, 1]
324
+ current_character @failing_rule_offset
270
325
  end
271
326
 
272
327
  def failure_oneline
273
- l = current_line @failing_rule_offset
274
- c = current_column @failing_rule_offset
275
-
276
- char = lines[l-1][c-1, 1]
328
+ p = current_pos_info @failing_rule_offset
277
329
 
278
330
  if @failed_rule.kind_of? Symbol
279
331
  info = self.class::Rules[@failed_rule]
280
- "@#{l}:#{c} failed rule '#{info.name}', got '#{char}'"
332
+ "@#{p.lno}:#{p.col} failed rule '#{info.name}', got '#{p.char}'"
281
333
  else
282
- "@#{l}:#{c} failed rule '#{@failed_rule}', got '#{char}'"
334
+ "@#{p.lno}:#{p.col} failed rule '#{@failed_rule}', got '#{p.char}'"
283
335
  end
284
336
  end
285
337
 
@@ -292,10 +344,9 @@ class RDoc::Markdown
292
344
 
293
345
  def show_error(io=STDOUT)
294
346
  error_pos = @failing_rule_offset
295
- line_no = current_line(error_pos)
296
- col_no = current_column(error_pos)
347
+ p = current_pos_info(error_pos)
297
348
 
298
- io.puts "On line #{line_no}, column #{col_no}:"
349
+ io.puts "On line #{p.lno}, column #{p.col}:"
299
350
 
300
351
  if @failed_rule.kind_of? Symbol
301
352
  info = self.class::Rules[@failed_rule]
@@ -304,10 +355,9 @@ class RDoc::Markdown
304
355
  io.puts "Failed to match rule '#{@failed_rule}'"
305
356
  end
306
357
 
307
- io.puts "Got: #{string[error_pos,1].inspect}"
308
- line = lines[line_no-1]
309
- io.puts "=> #{line}"
310
- io.print(" " * (col_no + 3))
358
+ io.puts "Got: #{p.char.inspect}"
359
+ io.puts "=> #{p.line}"
360
+ io.print(" " * (p.col + 2))
311
361
  io.puts "^"
312
362
  end
313
363
 
@@ -331,9 +381,8 @@ class RDoc::Markdown
331
381
  end
332
382
 
333
383
  def scan(reg)
334
- if m = reg.match(@string[@pos..-1])
335
- width = m.end(0)
336
- @pos += width
384
+ if m = reg.match(@string, @pos)
385
+ @pos = m.end(0)
337
386
  return true
338
387
  end
339
388
 
@@ -417,6 +466,7 @@ class RDoc::Markdown
417
466
  end
418
467
 
419
468
  def apply_with_args(rule, *args)
469
+ @result = nil
420
470
  memo_key = [rule, args]
421
471
  if m = @memoizations[memo_key][@pos]
422
472
  @pos = m.pos
@@ -450,6 +500,7 @@ class RDoc::Markdown
450
500
  end
451
501
 
452
502
  def apply(rule)
503
+ @result = nil
453
504
  if m = @memoizations[rule][@pos]
454
505
  @pos = m.pos
455
506
  if !m.set
@@ -521,11 +572,11 @@ class RDoc::Markdown
521
572
 
522
573
 
523
574
 
524
- require 'rdoc'
525
- require 'rdoc/markup/to_joined_paragraph'
526
- require 'rdoc/markdown/entities'
575
+ require_relative '../rdoc'
576
+ require_relative 'markup/to_joined_paragraph'
577
+ require_relative 'markdown/entities'
527
578
 
528
- require 'rdoc/markdown/literals'
579
+ require_relative 'markdown/literals'
529
580
 
530
581
  ##
531
582
  # Supported extensions
@@ -540,6 +591,7 @@ class RDoc::Markdown
540
591
  :github,
541
592
  :html,
542
593
  :notes,
594
+ :strike,
543
595
  ]
544
596
 
545
597
  # :section: Extensions
@@ -590,6 +642,11 @@ class RDoc::Markdown
590
642
 
591
643
  extension :notes
592
644
 
645
+ ##
646
+ # Enables the strike extension
647
+
648
+ extension :strike
649
+
593
650
  # :section:
594
651
 
595
652
  ##
@@ -678,7 +735,7 @@ class RDoc::Markdown
678
735
  # with the linking `text` (usually whitespace).
679
736
 
680
737
  def link_to content, label = content, text = nil
681
- raise 'enable notes extension' if
738
+ raise ParseError, 'enable notes extension' if
682
739
  content.start_with? '^' and label.equal? content
683
740
 
684
741
  if ref = @references[label] then
@@ -777,7 +834,7 @@ class RDoc::Markdown
777
834
 
778
835
  @note_order.each_with_index do |ref, index|
779
836
  label = index + 1
780
- note = @footnotes[ref]
837
+ note = @footnotes[ref] or raise ParseError, "footnote [^#{ref}] not found"
781
838
 
782
839
  link = "{^#{label}}[rdoc-label:footmark-#{label}:foottext-#{label}] "
783
840
  note.parts.unshift link
@@ -814,6 +871,17 @@ class RDoc::Markdown
814
871
  end
815
872
  end
816
873
 
874
+ ##
875
+ # Wraps `text` in strike markup for rdoc inline formatting
876
+
877
+ def strike text
878
+ if text =~ /\A[a-z\d.\/-]+\z/i then
879
+ "~#{text}~"
880
+ else
881
+ "<s>#{text}</s>"
882
+ end
883
+ end
884
+
817
885
 
818
886
  # :stopdoc:
819
887
  def setup_foreign_grammar
@@ -867,7 +935,7 @@ class RDoc::Markdown
867
935
  return _tmp
868
936
  end
869
937
 
870
- # Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)
938
+ # Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Table | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)
871
939
  def _Block
872
940
 
873
941
  _save = self.pos
@@ -893,6 +961,9 @@ class RDoc::Markdown
893
961
  _tmp = apply(:_CodeFence)
894
962
  break if _tmp
895
963
  self.pos = _save2
964
+ _tmp = apply(:_Table)
965
+ break if _tmp
966
+ self.pos = _save2
896
967
  _tmp = apply(:_Note)
897
968
  break if _tmp
898
969
  self.pos = _save2
@@ -1005,7 +1076,7 @@ class RDoc::Markdown
1005
1076
  return _tmp
1006
1077
  end
1007
1078
 
1008
- # AtxInline = !@Newline !(@Sp? /#*/ @Sp @Newline) Inline
1079
+ # AtxInline = !@Newline !(@Sp /#*/ @Sp @Newline) Inline
1009
1080
  def _AtxInline
1010
1081
 
1011
1082
  _save = self.pos
@@ -1022,17 +1093,12 @@ class RDoc::Markdown
1022
1093
 
1023
1094
  _save3 = self.pos
1024
1095
  while true # sequence
1025
- _save4 = self.pos
1026
1096
  _tmp = _Sp()
1027
- unless _tmp
1028
- _tmp = true
1029
- self.pos = _save4
1030
- end
1031
1097
  unless _tmp
1032
1098
  self.pos = _save3
1033
1099
  break
1034
1100
  end
1035
- _tmp = scan(/\A(?-mix:#*)/)
1101
+ _tmp = scan(/\G(?-mix:#*)/)
1036
1102
  unless _tmp
1037
1103
  self.pos = _save3
1038
1104
  break
@@ -1072,7 +1138,7 @@ class RDoc::Markdown
1072
1138
  _save = self.pos
1073
1139
  while true # sequence
1074
1140
  _text_start = self.pos
1075
- _tmp = scan(/\A(?-mix:\#{1,6})/)
1141
+ _tmp = scan(/\G(?-mix:\#{1,6})/)
1076
1142
  if _tmp
1077
1143
  text = get_text(_text_start)
1078
1144
  end
@@ -1092,7 +1158,7 @@ class RDoc::Markdown
1092
1158
  return _tmp
1093
1159
  end
1094
1160
 
1095
- # AtxHeading = AtxStart:s @Sp? AtxInline+:a (@Sp? /#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }
1161
+ # AtxHeading = AtxStart:s @Spacechar+ AtxInline+:a (@Sp /#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }
1096
1162
  def _AtxHeading
1097
1163
 
1098
1164
  _save = self.pos
@@ -1104,9 +1170,14 @@ class RDoc::Markdown
1104
1170
  break
1105
1171
  end
1106
1172
  _save1 = self.pos
1107
- _tmp = _Sp()
1108
- unless _tmp
1173
+ _tmp = _Spacechar()
1174
+ if _tmp
1175
+ while true
1176
+ _tmp = _Spacechar()
1177
+ break unless _tmp
1178
+ end
1109
1179
  _tmp = true
1180
+ else
1110
1181
  self.pos = _save1
1111
1182
  end
1112
1183
  unless _tmp
@@ -1137,17 +1208,12 @@ class RDoc::Markdown
1137
1208
 
1138
1209
  _save4 = self.pos
1139
1210
  while true # sequence
1140
- _save5 = self.pos
1141
1211
  _tmp = _Sp()
1142
- unless _tmp
1143
- _tmp = true
1144
- self.pos = _save5
1145
- end
1146
1212
  unless _tmp
1147
1213
  self.pos = _save4
1148
1214
  break
1149
1215
  end
1150
- _tmp = scan(/\A(?-mix:#*)/)
1216
+ _tmp = scan(/\G(?-mix:#*)/)
1151
1217
  unless _tmp
1152
1218
  self.pos = _save4
1153
1219
  break
@@ -1202,12 +1268,12 @@ class RDoc::Markdown
1202
1268
  return _tmp
1203
1269
  end
1204
1270
 
1205
- # SetextBottom1 = /={3,}/ @Newline
1271
+ # SetextBottom1 = /={1,}/ @Newline
1206
1272
  def _SetextBottom1
1207
1273
 
1208
1274
  _save = self.pos
1209
1275
  while true # sequence
1210
- _tmp = scan(/\A(?-mix:={3,})/)
1276
+ _tmp = scan(/\G(?-mix:={1,})/)
1211
1277
  unless _tmp
1212
1278
  self.pos = _save
1213
1279
  break
@@ -1223,12 +1289,12 @@ class RDoc::Markdown
1223
1289
  return _tmp
1224
1290
  end
1225
1291
 
1226
- # SetextBottom2 = /-{3,}/ @Newline
1292
+ # SetextBottom2 = /-{1,}/ @Newline
1227
1293
  def _SetextBottom2
1228
1294
 
1229
1295
  _save = self.pos
1230
1296
  while true # sequence
1231
- _tmp = scan(/\A(?-mix:-{3,})/)
1297
+ _tmp = scan(/\G(?-mix:-{1,})/)
1232
1298
  unless _tmp
1233
1299
  self.pos = _save
1234
1300
  break
@@ -1244,7 +1310,7 @@ class RDoc::Markdown
1244
1310
  return _tmp
1245
1311
  end
1246
1312
 
1247
- # SetextHeading1 = &(@RawLine SetextBottom1) @StartList:a (!@Endline Inline:b { a << b })+ @Sp? @Newline SetextBottom1 { RDoc::Markup::Heading.new(1, a.join) }
1313
+ # SetextHeading1 = &(@RawLine SetextBottom1) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom1 { RDoc::Markup::Heading.new(1, a.join) }
1248
1314
  def _SetextHeading1
1249
1315
 
1250
1316
  _save = self.pos
@@ -1339,12 +1405,7 @@ class RDoc::Markdown
1339
1405
  self.pos = _save
1340
1406
  break
1341
1407
  end
1342
- _save8 = self.pos
1343
1408
  _tmp = _Sp()
1344
- unless _tmp
1345
- _tmp = true
1346
- self.pos = _save8
1347
- end
1348
1409
  unless _tmp
1349
1410
  self.pos = _save
1350
1411
  break
@@ -1371,7 +1432,7 @@ class RDoc::Markdown
1371
1432
  return _tmp
1372
1433
  end
1373
1434
 
1374
- # SetextHeading2 = &(@RawLine SetextBottom2) @StartList:a (!@Endline Inline:b { a << b })+ @Sp? @Newline SetextBottom2 { RDoc::Markup::Heading.new(2, a.join) }
1435
+ # SetextHeading2 = &(@RawLine SetextBottom2) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom2 { RDoc::Markup::Heading.new(2, a.join) }
1375
1436
  def _SetextHeading2
1376
1437
 
1377
1438
  _save = self.pos
@@ -1466,12 +1527,7 @@ class RDoc::Markdown
1466
1527
  self.pos = _save
1467
1528
  break
1468
1529
  end
1469
- _save8 = self.pos
1470
1530
  _tmp = _Sp()
1471
- unless _tmp
1472
- _tmp = true
1473
- self.pos = _save8
1474
- end
1475
1531
  unless _tmp
1476
1532
  self.pos = _save
1477
1533
  break
@@ -2122,7 +2178,7 @@ class RDoc::Markdown
2122
2178
  self.pos = _save
2123
2179
  break
2124
2180
  end
2125
- _tmp = scan(/\A(?-mix:[+*-])/)
2181
+ _tmp = scan(/\G(?-mix:[+*-])/)
2126
2182
  unless _tmp
2127
2183
  self.pos = _save
2128
2184
  break
@@ -8446,7 +8502,162 @@ class RDoc::Markdown
8446
8502
  return _tmp
8447
8503
  end
8448
8504
 
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)
8505
+ # HtmlBlockOpenHead = "<" Spnl ("head" | "HEAD") Spnl HtmlAttribute* ">"
8506
+ def _HtmlBlockOpenHead
8507
+
8508
+ _save = self.pos
8509
+ while true # sequence
8510
+ _tmp = match_string("<")
8511
+ unless _tmp
8512
+ self.pos = _save
8513
+ break
8514
+ end
8515
+ _tmp = apply(:_Spnl)
8516
+ unless _tmp
8517
+ self.pos = _save
8518
+ break
8519
+ end
8520
+
8521
+ _save1 = self.pos
8522
+ while true # choice
8523
+ _tmp = match_string("head")
8524
+ break if _tmp
8525
+ self.pos = _save1
8526
+ _tmp = match_string("HEAD")
8527
+ break if _tmp
8528
+ self.pos = _save1
8529
+ break
8530
+ end # end choice
8531
+
8532
+ unless _tmp
8533
+ self.pos = _save
8534
+ break
8535
+ end
8536
+ _tmp = apply(:_Spnl)
8537
+ unless _tmp
8538
+ self.pos = _save
8539
+ break
8540
+ end
8541
+ while true
8542
+ _tmp = apply(:_HtmlAttribute)
8543
+ break unless _tmp
8544
+ end
8545
+ _tmp = true
8546
+ unless _tmp
8547
+ self.pos = _save
8548
+ break
8549
+ end
8550
+ _tmp = match_string(">")
8551
+ unless _tmp
8552
+ self.pos = _save
8553
+ end
8554
+ break
8555
+ end # end sequence
8556
+
8557
+ set_failed_rule :_HtmlBlockOpenHead unless _tmp
8558
+ return _tmp
8559
+ end
8560
+
8561
+ # HtmlBlockCloseHead = "<" Spnl "/" ("head" | "HEAD") Spnl ">"
8562
+ def _HtmlBlockCloseHead
8563
+
8564
+ _save = self.pos
8565
+ while true # sequence
8566
+ _tmp = match_string("<")
8567
+ unless _tmp
8568
+ self.pos = _save
8569
+ break
8570
+ end
8571
+ _tmp = apply(:_Spnl)
8572
+ unless _tmp
8573
+ self.pos = _save
8574
+ break
8575
+ end
8576
+ _tmp = match_string("/")
8577
+ unless _tmp
8578
+ self.pos = _save
8579
+ break
8580
+ end
8581
+
8582
+ _save1 = self.pos
8583
+ while true # choice
8584
+ _tmp = match_string("head")
8585
+ break if _tmp
8586
+ self.pos = _save1
8587
+ _tmp = match_string("HEAD")
8588
+ break if _tmp
8589
+ self.pos = _save1
8590
+ break
8591
+ end # end choice
8592
+
8593
+ unless _tmp
8594
+ self.pos = _save
8595
+ break
8596
+ end
8597
+ _tmp = apply(:_Spnl)
8598
+ unless _tmp
8599
+ self.pos = _save
8600
+ break
8601
+ end
8602
+ _tmp = match_string(">")
8603
+ unless _tmp
8604
+ self.pos = _save
8605
+ end
8606
+ break
8607
+ end # end sequence
8608
+
8609
+ set_failed_rule :_HtmlBlockCloseHead unless _tmp
8610
+ return _tmp
8611
+ end
8612
+
8613
+ # HtmlBlockHead = HtmlBlockOpenHead (!HtmlBlockCloseHead .)* HtmlBlockCloseHead
8614
+ def _HtmlBlockHead
8615
+
8616
+ _save = self.pos
8617
+ while true # sequence
8618
+ _tmp = apply(:_HtmlBlockOpenHead)
8619
+ unless _tmp
8620
+ self.pos = _save
8621
+ break
8622
+ end
8623
+ while true
8624
+
8625
+ _save2 = self.pos
8626
+ while true # sequence
8627
+ _save3 = self.pos
8628
+ _tmp = apply(:_HtmlBlockCloseHead)
8629
+ _tmp = _tmp ? nil : true
8630
+ self.pos = _save3
8631
+ unless _tmp
8632
+ self.pos = _save2
8633
+ break
8634
+ end
8635
+ _tmp = get_byte
8636
+ unless _tmp
8637
+ self.pos = _save2
8638
+ end
8639
+ break
8640
+ end # end sequence
8641
+
8642
+ break unless _tmp
8643
+ end
8644
+ _tmp = true
8645
+ unless _tmp
8646
+ self.pos = _save
8647
+ break
8648
+ end
8649
+ _tmp = apply(:_HtmlBlockCloseHead)
8650
+ unless _tmp
8651
+ self.pos = _save
8652
+ end
8653
+ break
8654
+ end # end sequence
8655
+
8656
+ set_failed_rule :_HtmlBlockHead unless _tmp
8657
+ return _tmp
8658
+ end
8659
+
8660
+ # 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
8661
  def _HtmlBlockInTags
8451
8662
 
8452
8663
  _save = self.pos
@@ -8553,6 +8764,9 @@ class RDoc::Markdown
8553
8764
  _tmp = apply(:_HtmlBlockScript)
8554
8765
  break if _tmp
8555
8766
  self.pos = _save
8767
+ _tmp = apply(:_HtmlBlockHead)
8768
+ break if _tmp
8769
+ self.pos = _save
8556
8770
  break
8557
8771
  end # end choice
8558
8772
 
@@ -9157,7 +9371,7 @@ class RDoc::Markdown
9157
9371
  return _tmp
9158
9372
  end
9159
9373
 
9160
- # Inlines = (!@Endline Inline:i { i } | @Endline:c &Inline { c })+:chunks @Endline? { chunks }
9374
+ # Inlines = (!@Endline Inline:i { i } | @Endline:c !(&{ github? } Ticks3 /[^`\n]*$/) &Inline { c })+:chunks @Endline? { chunks }
9161
9375
  def _Inlines
9162
9376
 
9163
9377
  _save = self.pos
@@ -9204,12 +9418,41 @@ class RDoc::Markdown
9204
9418
  break
9205
9419
  end
9206
9420
  _save6 = self.pos
9207
- _tmp = apply(:_Inline)
9421
+
9422
+ _save7 = self.pos
9423
+ while true # sequence
9424
+ _save8 = self.pos
9425
+ _tmp = begin; github? ; end
9426
+ self.pos = _save8
9427
+ unless _tmp
9428
+ self.pos = _save7
9429
+ break
9430
+ end
9431
+ _tmp = apply(:_Ticks3)
9432
+ unless _tmp
9433
+ self.pos = _save7
9434
+ break
9435
+ end
9436
+ _tmp = scan(/\G(?-mix:[^`\n]*$)/)
9437
+ unless _tmp
9438
+ self.pos = _save7
9439
+ end
9440
+ break
9441
+ end # end sequence
9442
+
9443
+ _tmp = _tmp ? nil : true
9208
9444
  self.pos = _save6
9209
9445
  unless _tmp
9210
9446
  self.pos = _save5
9211
9447
  break
9212
9448
  end
9449
+ _save9 = self.pos
9450
+ _tmp = apply(:_Inline)
9451
+ self.pos = _save9
9452
+ unless _tmp
9453
+ self.pos = _save5
9454
+ break
9455
+ end
9213
9456
  @result = begin; c ; end
9214
9457
  _tmp = true
9215
9458
  unless _tmp
@@ -9227,61 +9470,90 @@ class RDoc::Markdown
9227
9470
  _ary << @result
9228
9471
  while true
9229
9472
 
9230
- _save7 = self.pos
9473
+ _save10 = self.pos
9231
9474
  while true # choice
9232
9475
 
9233
- _save8 = self.pos
9476
+ _save11 = self.pos
9234
9477
  while true # sequence
9235
- _save9 = self.pos
9478
+ _save12 = self.pos
9236
9479
  _tmp = _Endline()
9237
9480
  _tmp = _tmp ? nil : true
9238
- self.pos = _save9
9481
+ self.pos = _save12
9239
9482
  unless _tmp
9240
- self.pos = _save8
9483
+ self.pos = _save11
9241
9484
  break
9242
9485
  end
9243
9486
  _tmp = apply(:_Inline)
9244
9487
  i = @result
9245
9488
  unless _tmp
9246
- self.pos = _save8
9489
+ self.pos = _save11
9247
9490
  break
9248
9491
  end
9249
9492
  @result = begin; i ; end
9250
9493
  _tmp = true
9251
9494
  unless _tmp
9252
- self.pos = _save8
9495
+ self.pos = _save11
9253
9496
  end
9254
9497
  break
9255
9498
  end # end sequence
9256
9499
 
9257
9500
  break if _tmp
9258
- self.pos = _save7
9501
+ self.pos = _save10
9259
9502
 
9260
- _save10 = self.pos
9503
+ _save13 = self.pos
9261
9504
  while true # sequence
9262
9505
  _tmp = _Endline()
9263
9506
  c = @result
9264
9507
  unless _tmp
9265
- self.pos = _save10
9508
+ self.pos = _save13
9266
9509
  break
9267
9510
  end
9268
- _save11 = self.pos
9511
+ _save14 = self.pos
9512
+
9513
+ _save15 = self.pos
9514
+ while true # sequence
9515
+ _save16 = self.pos
9516
+ _tmp = begin; github? ; end
9517
+ self.pos = _save16
9518
+ unless _tmp
9519
+ self.pos = _save15
9520
+ break
9521
+ end
9522
+ _tmp = apply(:_Ticks3)
9523
+ unless _tmp
9524
+ self.pos = _save15
9525
+ break
9526
+ end
9527
+ _tmp = scan(/\G(?-mix:[^`\n]*$)/)
9528
+ unless _tmp
9529
+ self.pos = _save15
9530
+ end
9531
+ break
9532
+ end # end sequence
9533
+
9534
+ _tmp = _tmp ? nil : true
9535
+ self.pos = _save14
9536
+ unless _tmp
9537
+ self.pos = _save13
9538
+ break
9539
+ end
9540
+ _save17 = self.pos
9269
9541
  _tmp = apply(:_Inline)
9270
- self.pos = _save11
9542
+ self.pos = _save17
9271
9543
  unless _tmp
9272
- self.pos = _save10
9544
+ self.pos = _save13
9273
9545
  break
9274
9546
  end
9275
9547
  @result = begin; c ; end
9276
9548
  _tmp = true
9277
9549
  unless _tmp
9278
- self.pos = _save10
9550
+ self.pos = _save13
9279
9551
  end
9280
9552
  break
9281
9553
  end # end sequence
9282
9554
 
9283
9555
  break if _tmp
9284
- self.pos = _save7
9556
+ self.pos = _save10
9285
9557
  break
9286
9558
  end # end choice
9287
9559
 
@@ -9298,11 +9570,11 @@ class RDoc::Markdown
9298
9570
  self.pos = _save
9299
9571
  break
9300
9572
  end
9301
- _save12 = self.pos
9573
+ _save18 = self.pos
9302
9574
  _tmp = _Endline()
9303
9575
  unless _tmp
9304
9576
  _tmp = true
9305
- self.pos = _save12
9577
+ self.pos = _save18
9306
9578
  end
9307
9579
  unless _tmp
9308
9580
  self.pos = _save
@@ -9320,7 +9592,7 @@ class RDoc::Markdown
9320
9592
  return _tmp
9321
9593
  end
9322
9594
 
9323
- # Inline = (Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)
9595
+ # Inline = (Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)
9324
9596
  def _Inline
9325
9597
 
9326
9598
  _save = self.pos
@@ -9343,6 +9615,9 @@ class RDoc::Markdown
9343
9615
  _tmp = apply(:_Emph)
9344
9616
  break if _tmp
9345
9617
  self.pos = _save
9618
+ _tmp = apply(:_Strike)
9619
+ break if _tmp
9620
+ self.pos = _save
9346
9621
  _tmp = apply(:_Image)
9347
9622
  break if _tmp
9348
9623
  self.pos = _save
@@ -9498,7 +9773,7 @@ class RDoc::Markdown
9498
9773
 
9499
9774
  _save3 = self.pos
9500
9775
  while true # sequence
9501
- _tmp = scan(/\A(?-mix:_+)/)
9776
+ _tmp = scan(/\G(?-mix:_+)/)
9502
9777
  unless _tmp
9503
9778
  self.pos = _save3
9504
9779
  break
@@ -9528,7 +9803,7 @@ class RDoc::Markdown
9528
9803
 
9529
9804
  _save6 = self.pos
9530
9805
  while true # sequence
9531
- _tmp = scan(/\A(?-mix:_+)/)
9806
+ _tmp = scan(/\G(?-mix:_+)/)
9532
9807
  unless _tmp
9533
9808
  self.pos = _save6
9534
9809
  break
@@ -9591,7 +9866,7 @@ class RDoc::Markdown
9591
9866
  break
9592
9867
  end
9593
9868
  _text_start = self.pos
9594
- _tmp = scan(/\A(?-mix:[:\\`|*_{}\[\]()#+.!><-])/)
9869
+ _tmp = scan(/\G(?-mix:[:\\`|*_{}\[\]()#+.!><-])/)
9595
9870
  if _tmp
9596
9871
  text = get_text(_text_start)
9597
9872
  end
@@ -9669,7 +9944,7 @@ class RDoc::Markdown
9669
9944
  return _tmp
9670
9945
  end
9671
9946
 
9672
- # NormalEndline = @Sp @Newline !@BlankLine !">" !AtxStart !(Line /={3,}|-{3,}=/ @Newline) { "\n" }
9947
+ # NormalEndline = @Sp @Newline !@BlankLine !">" !AtxStart !(Line /={1,}|-{1,}/ @Newline) { "\n" }
9673
9948
  def _NormalEndline
9674
9949
 
9675
9950
  _save = self.pos
@@ -9717,7 +9992,7 @@ class RDoc::Markdown
9717
9992
  self.pos = _save5
9718
9993
  break
9719
9994
  end
9720
- _tmp = scan(/\A(?-mix:={3,}|-{3,}=)/)
9995
+ _tmp = scan(/\G(?-mix:={1,}|-{1,})/)
9721
9996
  unless _tmp
9722
9997
  self.pos = _save5
9723
9998
  break
@@ -9869,7 +10144,7 @@ class RDoc::Markdown
9869
10144
  _save1 = self.pos
9870
10145
  while true # sequence
9871
10146
  _text_start = self.pos
9872
- _tmp = scan(/\A(?-mix:\*{4,})/)
10147
+ _tmp = scan(/\G(?-mix:\*{4,})/)
9873
10148
  if _tmp
9874
10149
  text = get_text(_text_start)
9875
10150
  end
@@ -9899,7 +10174,7 @@ class RDoc::Markdown
9899
10174
  self.pos = _save3
9900
10175
  break
9901
10176
  end
9902
- _tmp = scan(/\A(?-mix:\*+)/)
10177
+ _tmp = scan(/\G(?-mix:\*+)/)
9903
10178
  unless _tmp
9904
10179
  self.pos = _save3
9905
10180
  break
@@ -9946,7 +10221,7 @@ class RDoc::Markdown
9946
10221
  _save1 = self.pos
9947
10222
  while true # sequence
9948
10223
  _text_start = self.pos
9949
- _tmp = scan(/\A(?-mix:_{4,})/)
10224
+ _tmp = scan(/\G(?-mix:_{4,})/)
9950
10225
  if _tmp
9951
10226
  text = get_text(_text_start)
9952
10227
  end
@@ -9976,7 +10251,7 @@ class RDoc::Markdown
9976
10251
  self.pos = _save3
9977
10252
  break
9978
10253
  end
9979
- _tmp = scan(/\A(?-mix:_+)/)
10254
+ _tmp = scan(/\G(?-mix:_+)/)
9980
10255
  unless _tmp
9981
10256
  self.pos = _save3
9982
10257
  break
@@ -10032,96 +10307,38 @@ class RDoc::Markdown
10032
10307
  return _tmp
10033
10308
  end
10034
10309
 
10035
- # OneStarOpen = !StarLine "*" !@Spacechar !@Newline
10036
- def _OneStarOpen
10310
+ # Whitespace = (@Spacechar | @Newline)
10311
+ def _Whitespace
10037
10312
 
10038
10313
  _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
10314
+ while true # choice
10054
10315
  _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
10316
+ break if _tmp
10317
+ self.pos = _save
10062
10318
  _tmp = _Newline()
10063
- _tmp = _tmp ? nil : true
10064
- self.pos = _save3
10065
- unless _tmp
10066
- self.pos = _save
10067
- end
10319
+ break if _tmp
10320
+ self.pos = _save
10068
10321
  break
10069
- end # end sequence
10322
+ end # end choice
10070
10323
 
10071
- set_failed_rule :_OneStarOpen unless _tmp
10324
+ set_failed_rule :_Whitespace unless _tmp
10072
10325
  return _tmp
10073
10326
  end
10074
10327
 
10075
- # OneStarClose = !@Spacechar !@Newline Inline:a "*" { a }
10076
- def _OneStarClose
10328
+ # EmphStar = "*" !@Whitespace @StartList:a (!"*" Inline:b { a << b } | StrongStar:b { a << b })+ "*" { emphasis a.join }
10329
+ def _EmphStar
10077
10330
 
10078
10331
  _save = self.pos
10079
10332
  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
10333
  _tmp = match_string("*")
10103
10334
  unless _tmp
10104
10335
  self.pos = _save
10105
10336
  break
10106
10337
  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)
10338
+ _save1 = self.pos
10339
+ _tmp = _Whitespace()
10340
+ _tmp = _tmp ? nil : true
10341
+ self.pos = _save1
10125
10342
  unless _tmp
10126
10343
  self.pos = _save
10127
10344
  break
@@ -10132,47 +10349,124 @@ class RDoc::Markdown
10132
10349
  self.pos = _save
10133
10350
  break
10134
10351
  end
10135
- while true
10352
+ _save2 = self.pos
10136
10353
 
10137
- _save2 = self.pos
10354
+ _save3 = self.pos
10355
+ while true # choice
10356
+
10357
+ _save4 = self.pos
10138
10358
  while true # sequence
10139
- _save3 = self.pos
10140
- _tmp = apply(:_OneStarClose)
10359
+ _save5 = self.pos
10360
+ _tmp = match_string("*")
10141
10361
  _tmp = _tmp ? nil : true
10142
- self.pos = _save3
10362
+ self.pos = _save5
10143
10363
  unless _tmp
10144
- self.pos = _save2
10364
+ self.pos = _save4
10145
10365
  break
10146
10366
  end
10147
10367
  _tmp = apply(:_Inline)
10148
- l = @result
10368
+ b = @result
10149
10369
  unless _tmp
10150
- self.pos = _save2
10370
+ self.pos = _save4
10151
10371
  break
10152
10372
  end
10153
- @result = begin; a << l ; end
10373
+ @result = begin; a << b ; end
10154
10374
  _tmp = true
10155
10375
  unless _tmp
10156
- self.pos = _save2
10376
+ self.pos = _save4
10157
10377
  end
10158
10378
  break
10159
10379
  end # end sequence
10160
10380
 
10161
- break unless _tmp
10162
- end
10163
- _tmp = true
10164
- unless _tmp
10165
- self.pos = _save
10381
+ break if _tmp
10382
+ self.pos = _save3
10383
+
10384
+ _save6 = self.pos
10385
+ while true # sequence
10386
+ _tmp = apply(:_StrongStar)
10387
+ b = @result
10388
+ unless _tmp
10389
+ self.pos = _save6
10390
+ break
10391
+ end
10392
+ @result = begin; a << b ; end
10393
+ _tmp = true
10394
+ unless _tmp
10395
+ self.pos = _save6
10396
+ end
10397
+ break
10398
+ end # end sequence
10399
+
10400
+ break if _tmp
10401
+ self.pos = _save3
10166
10402
  break
10403
+ end # end choice
10404
+
10405
+ if _tmp
10406
+ while true
10407
+
10408
+ _save7 = self.pos
10409
+ while true # choice
10410
+
10411
+ _save8 = self.pos
10412
+ while true # sequence
10413
+ _save9 = self.pos
10414
+ _tmp = match_string("*")
10415
+ _tmp = _tmp ? nil : true
10416
+ self.pos = _save9
10417
+ unless _tmp
10418
+ self.pos = _save8
10419
+ break
10420
+ end
10421
+ _tmp = apply(:_Inline)
10422
+ b = @result
10423
+ unless _tmp
10424
+ self.pos = _save8
10425
+ break
10426
+ end
10427
+ @result = begin; a << b ; end
10428
+ _tmp = true
10429
+ unless _tmp
10430
+ self.pos = _save8
10431
+ end
10432
+ break
10433
+ end # end sequence
10434
+
10435
+ break if _tmp
10436
+ self.pos = _save7
10437
+
10438
+ _save10 = self.pos
10439
+ while true # sequence
10440
+ _tmp = apply(:_StrongStar)
10441
+ b = @result
10442
+ unless _tmp
10443
+ self.pos = _save10
10444
+ break
10445
+ end
10446
+ @result = begin; a << b ; end
10447
+ _tmp = true
10448
+ unless _tmp
10449
+ self.pos = _save10
10450
+ end
10451
+ break
10452
+ end # end sequence
10453
+
10454
+ break if _tmp
10455
+ self.pos = _save7
10456
+ break
10457
+ end # end choice
10458
+
10459
+ break unless _tmp
10460
+ end
10461
+ _tmp = true
10462
+ else
10463
+ self.pos = _save2
10167
10464
  end
10168
- _tmp = apply(:_OneStarClose)
10169
- l = @result
10170
10465
  unless _tmp
10171
10466
  self.pos = _save
10172
10467
  break
10173
10468
  end
10174
- @result = begin; a << l ; end
10175
- _tmp = true
10469
+ _tmp = match_string("*")
10176
10470
  unless _tmp
10177
10471
  self.pos = _save
10178
10472
  break
@@ -10189,147 +10483,148 @@ class RDoc::Markdown
10189
10483
  return _tmp
10190
10484
  end
10191
10485
 
10192
- # OneUlOpen = !UlLine "_" !@Spacechar !@Newline
10193
- def _OneUlOpen
10486
+ # EmphUl = "_" !@Whitespace @StartList:a (!"_" Inline:b { a << b } | StrongUl:b { a << b })+ "_" { emphasis a.join }
10487
+ def _EmphUl
10194
10488
 
10195
10489
  _save = self.pos
10196
10490
  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
10491
  _tmp = match_string("_")
10206
10492
  unless _tmp
10207
10493
  self.pos = _save
10208
10494
  break
10209
10495
  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
10496
  _save1 = self.pos
10238
- _tmp = _Spacechar()
10497
+ _tmp = _Whitespace()
10239
10498
  _tmp = _tmp ? nil : true
10240
10499
  self.pos = _save1
10241
10500
  unless _tmp
10242
10501
  self.pos = _save
10243
10502
  break
10244
10503
  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)
10504
+ _tmp = _StartList()
10254
10505
  a = @result
10255
10506
  unless _tmp
10256
10507
  self.pos = _save
10257
10508
  break
10258
10509
  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
10510
+ _save2 = self.pos
10278
10511
 
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
10512
+ _save3 = self.pos
10513
+ while true # choice
10293
10514
 
10294
- _save2 = self.pos
10515
+ _save4 = self.pos
10295
10516
  while true # sequence
10296
- _save3 = self.pos
10297
- _tmp = apply(:_OneUlClose)
10517
+ _save5 = self.pos
10518
+ _tmp = match_string("_")
10298
10519
  _tmp = _tmp ? nil : true
10299
- self.pos = _save3
10520
+ self.pos = _save5
10300
10521
  unless _tmp
10301
- self.pos = _save2
10522
+ self.pos = _save4
10302
10523
  break
10303
10524
  end
10304
10525
  _tmp = apply(:_Inline)
10305
- l = @result
10526
+ b = @result
10306
10527
  unless _tmp
10307
- self.pos = _save2
10528
+ self.pos = _save4
10308
10529
  break
10309
10530
  end
10310
- @result = begin; a << l ; end
10531
+ @result = begin; a << b ; end
10311
10532
  _tmp = true
10312
10533
  unless _tmp
10313
- self.pos = _save2
10534
+ self.pos = _save4
10314
10535
  end
10315
10536
  break
10316
10537
  end # end sequence
10317
10538
 
10318
- break unless _tmp
10319
- end
10320
- _tmp = true
10321
- unless _tmp
10322
- self.pos = _save
10539
+ break if _tmp
10540
+ self.pos = _save3
10541
+
10542
+ _save6 = self.pos
10543
+ while true # sequence
10544
+ _tmp = apply(:_StrongUl)
10545
+ b = @result
10546
+ unless _tmp
10547
+ self.pos = _save6
10548
+ break
10549
+ end
10550
+ @result = begin; a << b ; end
10551
+ _tmp = true
10552
+ unless _tmp
10553
+ self.pos = _save6
10554
+ end
10555
+ break
10556
+ end # end sequence
10557
+
10558
+ break if _tmp
10559
+ self.pos = _save3
10323
10560
  break
10561
+ end # end choice
10562
+
10563
+ if _tmp
10564
+ while true
10565
+
10566
+ _save7 = self.pos
10567
+ while true # choice
10568
+
10569
+ _save8 = self.pos
10570
+ while true # sequence
10571
+ _save9 = self.pos
10572
+ _tmp = match_string("_")
10573
+ _tmp = _tmp ? nil : true
10574
+ self.pos = _save9
10575
+ unless _tmp
10576
+ self.pos = _save8
10577
+ break
10578
+ end
10579
+ _tmp = apply(:_Inline)
10580
+ b = @result
10581
+ unless _tmp
10582
+ self.pos = _save8
10583
+ break
10584
+ end
10585
+ @result = begin; a << b ; end
10586
+ _tmp = true
10587
+ unless _tmp
10588
+ self.pos = _save8
10589
+ end
10590
+ break
10591
+ end # end sequence
10592
+
10593
+ break if _tmp
10594
+ self.pos = _save7
10595
+
10596
+ _save10 = self.pos
10597
+ while true # sequence
10598
+ _tmp = apply(:_StrongUl)
10599
+ b = @result
10600
+ unless _tmp
10601
+ self.pos = _save10
10602
+ break
10603
+ end
10604
+ @result = begin; a << b ; end
10605
+ _tmp = true
10606
+ unless _tmp
10607
+ self.pos = _save10
10608
+ end
10609
+ break
10610
+ end # end sequence
10611
+
10612
+ break if _tmp
10613
+ self.pos = _save7
10614
+ break
10615
+ end # end choice
10616
+
10617
+ break unless _tmp
10618
+ end
10619
+ _tmp = true
10620
+ else
10621
+ self.pos = _save2
10324
10622
  end
10325
- _tmp = apply(:_OneUlClose)
10326
- l = @result
10327
10623
  unless _tmp
10328
10624
  self.pos = _save
10329
10625
  break
10330
10626
  end
10331
- @result = begin; a << l ; end
10332
- _tmp = true
10627
+ _tmp = match_string("_")
10333
10628
  unless _tmp
10334
10629
  self.pos = _save
10335
10630
  break
@@ -10364,69 +10659,89 @@ class RDoc::Markdown
10364
10659
  return _tmp
10365
10660
  end
10366
10661
 
10367
- # TwoStarOpen = !StarLine "**" !@Spacechar !@Newline
10368
- def _TwoStarOpen
10662
+ # StrongStar = "**" !@Whitespace @StartList:a (!"**" Inline:b { a << b })+ "**" { strong a.join }
10663
+ def _StrongStar
10369
10664
 
10370
10665
  _save = self.pos
10371
10666
  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
10667
  _tmp = match_string("**")
10381
10668
  unless _tmp
10382
10669
  self.pos = _save
10383
10670
  break
10384
10671
  end
10385
- _save2 = self.pos
10386
- _tmp = _Spacechar()
10672
+ _save1 = self.pos
10673
+ _tmp = _Whitespace()
10387
10674
  _tmp = _tmp ? nil : true
10388
- self.pos = _save2
10675
+ self.pos = _save1
10389
10676
  unless _tmp
10390
10677
  self.pos = _save
10391
10678
  break
10392
10679
  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
10680
+ _tmp = _StartList()
10681
+ a = @result
10416
10682
  unless _tmp
10417
10683
  self.pos = _save
10418
10684
  break
10419
10685
  end
10420
10686
  _save2 = self.pos
10421
- _tmp = _Newline()
10422
- _tmp = _tmp ? nil : true
10423
- self.pos = _save2
10424
- unless _tmp
10425
- self.pos = _save
10687
+
10688
+ _save3 = self.pos
10689
+ while true # sequence
10690
+ _save4 = self.pos
10691
+ _tmp = match_string("**")
10692
+ _tmp = _tmp ? nil : true
10693
+ self.pos = _save4
10694
+ unless _tmp
10695
+ self.pos = _save3
10696
+ break
10697
+ end
10698
+ _tmp = apply(:_Inline)
10699
+ b = @result
10700
+ unless _tmp
10701
+ self.pos = _save3
10702
+ break
10703
+ end
10704
+ @result = begin; a << b ; end
10705
+ _tmp = true
10706
+ unless _tmp
10707
+ self.pos = _save3
10708
+ end
10426
10709
  break
10710
+ end # end sequence
10711
+
10712
+ if _tmp
10713
+ while true
10714
+
10715
+ _save5 = self.pos
10716
+ while true # sequence
10717
+ _save6 = self.pos
10718
+ _tmp = match_string("**")
10719
+ _tmp = _tmp ? nil : true
10720
+ self.pos = _save6
10721
+ unless _tmp
10722
+ self.pos = _save5
10723
+ break
10724
+ end
10725
+ _tmp = apply(:_Inline)
10726
+ b = @result
10727
+ unless _tmp
10728
+ self.pos = _save5
10729
+ break
10730
+ end
10731
+ @result = begin; a << b ; end
10732
+ _tmp = true
10733
+ unless _tmp
10734
+ self.pos = _save5
10735
+ end
10736
+ break
10737
+ end # end sequence
10738
+
10739
+ break unless _tmp
10740
+ end
10741
+ _tmp = true
10742
+ else
10743
+ self.pos = _save2
10427
10744
  end
10428
- _tmp = apply(:_Inline)
10429
- a = @result
10430
10745
  unless _tmp
10431
10746
  self.pos = _save
10432
10747
  break
@@ -10436,7 +10751,7 @@ class RDoc::Markdown
10436
10751
  self.pos = _save
10437
10752
  break
10438
10753
  end
10439
- @result = begin; a ; end
10754
+ @result = begin; strong a.join ; end
10440
10755
  _tmp = true
10441
10756
  unless _tmp
10442
10757
  self.pos = _save
@@ -10444,16 +10759,24 @@ class RDoc::Markdown
10444
10759
  break
10445
10760
  end # end sequence
10446
10761
 
10447
- set_failed_rule :_TwoStarClose unless _tmp
10762
+ set_failed_rule :_StrongStar unless _tmp
10448
10763
  return _tmp
10449
10764
  end
10450
10765
 
10451
- # StrongStar = TwoStarOpen @StartList:a (!TwoStarClose Inline:l { a << l })* TwoStarClose:l { a << l } { strong a.join }
10452
- def _StrongStar
10766
+ # StrongUl = "__" !@Whitespace @StartList:a (!"__" Inline:b { a << b })+ "__" { strong a.join }
10767
+ def _StrongUl
10453
10768
 
10454
10769
  _save = self.pos
10455
10770
  while true # sequence
10456
- _tmp = apply(:_TwoStarOpen)
10771
+ _tmp = match_string("__")
10772
+ unless _tmp
10773
+ self.pos = _save
10774
+ break
10775
+ end
10776
+ _save1 = self.pos
10777
+ _tmp = _Whitespace()
10778
+ _tmp = _tmp ? nil : true
10779
+ self.pos = _save1
10457
10780
  unless _tmp
10458
10781
  self.pos = _save
10459
10782
  break
@@ -10464,47 +10787,70 @@ class RDoc::Markdown
10464
10787
  self.pos = _save
10465
10788
  break
10466
10789
  end
10467
- while true
10790
+ _save2 = self.pos
10468
10791
 
10469
- _save2 = self.pos
10470
- while true # sequence
10471
- _save3 = self.pos
10472
- _tmp = apply(:_TwoStarClose)
10473
- _tmp = _tmp ? nil : true
10792
+ _save3 = self.pos
10793
+ while true # sequence
10794
+ _save4 = self.pos
10795
+ _tmp = match_string("__")
10796
+ _tmp = _tmp ? nil : true
10797
+ self.pos = _save4
10798
+ unless _tmp
10474
10799
  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
10800
  break
10491
- end # end sequence
10492
-
10493
- break unless _tmp
10494
- end
10495
- _tmp = true
10496
- unless _tmp
10497
- self.pos = _save
10801
+ end
10802
+ _tmp = apply(:_Inline)
10803
+ b = @result
10804
+ unless _tmp
10805
+ self.pos = _save3
10806
+ break
10807
+ end
10808
+ @result = begin; a << b ; end
10809
+ _tmp = true
10810
+ unless _tmp
10811
+ self.pos = _save3
10812
+ end
10498
10813
  break
10814
+ end # end sequence
10815
+
10816
+ if _tmp
10817
+ while true
10818
+
10819
+ _save5 = self.pos
10820
+ while true # sequence
10821
+ _save6 = self.pos
10822
+ _tmp = match_string("__")
10823
+ _tmp = _tmp ? nil : true
10824
+ self.pos = _save6
10825
+ unless _tmp
10826
+ self.pos = _save5
10827
+ break
10828
+ end
10829
+ _tmp = apply(:_Inline)
10830
+ b = @result
10831
+ unless _tmp
10832
+ self.pos = _save5
10833
+ break
10834
+ end
10835
+ @result = begin; a << b ; end
10836
+ _tmp = true
10837
+ unless _tmp
10838
+ self.pos = _save5
10839
+ end
10840
+ break
10841
+ end # end sequence
10842
+
10843
+ break unless _tmp
10844
+ end
10845
+ _tmp = true
10846
+ else
10847
+ self.pos = _save2
10499
10848
  end
10500
- _tmp = apply(:_TwoStarClose)
10501
- l = @result
10502
10849
  unless _tmp
10503
10850
  self.pos = _save
10504
10851
  break
10505
10852
  end
10506
- @result = begin; a << l ; end
10507
- _tmp = true
10853
+ _tmp = match_string("__")
10508
10854
  unless _tmp
10509
10855
  self.pos = _save
10510
10856
  break
@@ -10517,156 +10863,110 @@ class RDoc::Markdown
10517
10863
  break
10518
10864
  end # end sequence
10519
10865
 
10520
- set_failed_rule :_StrongStar unless _tmp
10866
+ set_failed_rule :_StrongUl unless _tmp
10521
10867
  return _tmp
10522
10868
  end
10523
10869
 
10524
- # TwoUlOpen = !UlLine "__" !@Spacechar !@Newline
10525
- def _TwoUlOpen
10870
+ # Strike = &{ strike? } "~~" !@Whitespace @StartList:a (!"~~" Inline:b { a << b })+ "~~" { strike a.join }
10871
+ def _Strike
10526
10872
 
10527
10873
  _save = self.pos
10528
10874
  while true # sequence
10529
10875
  _save1 = self.pos
10530
- _tmp = apply(:_UlLine)
10531
- _tmp = _tmp ? nil : true
10876
+ _tmp = begin; strike? ; end
10532
10877
  self.pos = _save1
10533
10878
  unless _tmp
10534
10879
  self.pos = _save
10535
10880
  break
10536
10881
  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
10882
+ _tmp = match_string("~~")
10573
10883
  unless _tmp
10574
10884
  self.pos = _save
10575
10885
  break
10576
10886
  end
10577
10887
  _save2 = self.pos
10578
- _tmp = _Newline()
10888
+ _tmp = _Whitespace()
10579
10889
  _tmp = _tmp ? nil : true
10580
10890
  self.pos = _save2
10581
10891
  unless _tmp
10582
10892
  self.pos = _save
10583
10893
  break
10584
10894
  end
10585
- _tmp = apply(:_Inline)
10895
+ _tmp = _StartList()
10586
10896
  a = @result
10587
10897
  unless _tmp
10588
10898
  self.pos = _save
10589
10899
  break
10590
10900
  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
10901
+ _save3 = self.pos
10610
10902
 
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
10903
+ _save4 = self.pos
10904
+ while true # sequence
10905
+ _save5 = self.pos
10906
+ _tmp = match_string("~~")
10907
+ _tmp = _tmp ? nil : true
10908
+ self.pos = _save5
10909
+ unless _tmp
10910
+ self.pos = _save4
10911
+ break
10912
+ end
10913
+ _tmp = apply(:_Inline)
10914
+ b = @result
10915
+ unless _tmp
10916
+ self.pos = _save4
10917
+ break
10918
+ end
10919
+ @result = begin; a << b ; end
10920
+ _tmp = true
10921
+ unless _tmp
10922
+ self.pos = _save4
10923
+ end
10622
10924
  break
10623
- end
10624
- while true
10925
+ end # end sequence
10625
10926
 
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
10927
+ if _tmp
10928
+ while true
10929
+
10930
+ _save6 = self.pos
10931
+ while true # sequence
10932
+ _save7 = self.pos
10933
+ _tmp = match_string("~~")
10934
+ _tmp = _tmp ? nil : true
10935
+ self.pos = _save7
10936
+ unless _tmp
10937
+ self.pos = _save6
10938
+ break
10939
+ end
10940
+ _tmp = apply(:_Inline)
10941
+ b = @result
10942
+ unless _tmp
10943
+ self.pos = _save6
10944
+ break
10945
+ end
10946
+ @result = begin; a << b ; end
10947
+ _tmp = true
10948
+ unless _tmp
10949
+ self.pos = _save6
10950
+ end
10640
10951
  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
10952
+ end # end sequence
10649
10953
 
10650
- break unless _tmp
10651
- end
10652
- _tmp = true
10653
- unless _tmp
10654
- self.pos = _save
10655
- break
10954
+ break unless _tmp
10955
+ end
10956
+ _tmp = true
10957
+ else
10958
+ self.pos = _save3
10656
10959
  end
10657
- _tmp = apply(:_TwoUlClose)
10658
- l = @result
10659
10960
  unless _tmp
10660
10961
  self.pos = _save
10661
10962
  break
10662
10963
  end
10663
- @result = begin; a << l ; end
10664
- _tmp = true
10964
+ _tmp = match_string("~~")
10665
10965
  unless _tmp
10666
10966
  self.pos = _save
10667
10967
  break
10668
10968
  end
10669
- @result = begin; strong a.join ; end
10969
+ @result = begin; strike a.join ; end
10670
10970
  _tmp = true
10671
10971
  unless _tmp
10672
10972
  self.pos = _save
@@ -10674,11 +10974,11 @@ class RDoc::Markdown
10674
10974
  break
10675
10975
  end # end sequence
10676
10976
 
10677
- set_failed_rule :_StrongUl unless _tmp
10977
+ set_failed_rule :_Strike unless _tmp
10678
10978
  return _tmp
10679
10979
  end
10680
10980
 
10681
- # Image = "!" (ExplicitLink | ReferenceLink):a { "rdoc-image:#{a[/\[(.*)\]/, 1]}" }
10981
+ # Image = "!" ExplicitLinkWithLabel:a { "rdoc-image:#{a[:link]}:#{a[:label]}" }
10682
10982
  def _Image
10683
10983
 
10684
10984
  _save = self.pos
@@ -10688,24 +10988,13 @@ class RDoc::Markdown
10688
10988
  self.pos = _save
10689
10989
  break
10690
10990
  end
10691
-
10692
- _save1 = self.pos
10693
- while true # choice
10694
- _tmp = apply(:_ExplicitLink)
10695
- break if _tmp
10696
- self.pos = _save1
10697
- _tmp = apply(:_ReferenceLink)
10698
- break if _tmp
10699
- self.pos = _save1
10700
- break
10701
- end # end choice
10702
-
10991
+ _tmp = apply(:_ExplicitLinkWithLabel)
10703
10992
  a = @result
10704
10993
  unless _tmp
10705
10994
  self.pos = _save
10706
10995
  break
10707
10996
  end
10708
- @result = begin; "rdoc-image:#{a[/\[(.*)\]/, 1]}" ; end
10997
+ @result = begin; "rdoc-image:#{a[:link]}:#{a[:label]}" ; end
10709
10998
  _tmp = true
10710
10999
  unless _tmp
10711
11000
  self.pos = _save
@@ -10853,18 +11142,36 @@ class RDoc::Markdown
10853
11142
  return _tmp
10854
11143
  end
10855
11144
 
10856
- # ExplicitLink = Label:l Spnl "(" @Sp Source:s Spnl Title @Sp ")" { "{#{l}}[#{s}]" }
11145
+ # ExplicitLink = ExplicitLinkWithLabel:a { "{#{a[:label]}}[#{a[:link]}]" }
10857
11146
  def _ExplicitLink
10858
11147
 
10859
11148
  _save = self.pos
10860
11149
  while true # sequence
10861
- _tmp = apply(:_Label)
10862
- l = @result
11150
+ _tmp = apply(:_ExplicitLinkWithLabel)
11151
+ a = @result
10863
11152
  unless _tmp
10864
11153
  self.pos = _save
10865
11154
  break
10866
11155
  end
10867
- _tmp = apply(:_Spnl)
11156
+ @result = begin; "{#{a[:label]}}[#{a[:link]}]" ; end
11157
+ _tmp = true
11158
+ unless _tmp
11159
+ self.pos = _save
11160
+ end
11161
+ break
11162
+ end # end sequence
11163
+
11164
+ set_failed_rule :_ExplicitLink unless _tmp
11165
+ return _tmp
11166
+ end
11167
+
11168
+ # ExplicitLinkWithLabel = Label:label "(" @Sp Source:link Spnl Title @Sp ")" { { label: label, link: link } }
11169
+ def _ExplicitLinkWithLabel
11170
+
11171
+ _save = self.pos
11172
+ while true # sequence
11173
+ _tmp = apply(:_Label)
11174
+ label = @result
10868
11175
  unless _tmp
10869
11176
  self.pos = _save
10870
11177
  break
@@ -10880,7 +11187,7 @@ class RDoc::Markdown
10880
11187
  break
10881
11188
  end
10882
11189
  _tmp = apply(:_Source)
10883
- s = @result
11190
+ link = @result
10884
11191
  unless _tmp
10885
11192
  self.pos = _save
10886
11193
  break
@@ -10905,7 +11212,7 @@ class RDoc::Markdown
10905
11212
  self.pos = _save
10906
11213
  break
10907
11214
  end
10908
- @result = begin; "{#{l}}[#{s}]" ; end
11215
+ @result = begin; { label: label, link: link } ; end
10909
11216
  _tmp = true
10910
11217
  unless _tmp
10911
11218
  self.pos = _save
@@ -10913,7 +11220,7 @@ class RDoc::Markdown
10913
11220
  break
10914
11221
  end # end sequence
10915
11222
 
10916
- set_failed_rule :_ExplicitLink unless _tmp
11223
+ set_failed_rule :_ExplicitLinkWithLabel unless _tmp
10917
11224
  return _tmp
10918
11225
  end
10919
11226
 
@@ -10977,130 +11284,119 @@ class RDoc::Markdown
10977
11284
  return _tmp
10978
11285
  end
10979
11286
 
10980
- # SourceContents = (((!"(" !")" !">" Nonspacechar)+ | "(" SourceContents ")")* | "")
11287
+ # SourceContents = ((!"(" !")" !">" Nonspacechar)+ | "(" SourceContents ")")*
10981
11288
  def _SourceContents
11289
+ while true
10982
11290
 
10983
- _save = self.pos
10984
- while true # choice
10985
- while true
10986
-
11291
+ _save1 = self.pos
11292
+ while true # choice
10987
11293
  _save2 = self.pos
10988
- while true # choice
10989
- _save3 = self.pos
10990
11294
 
11295
+ _save3 = self.pos
11296
+ while true # sequence
10991
11297
  _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
11298
+ _tmp = match_string("(")
11299
+ _tmp = _tmp ? nil : true
11300
+ self.pos = _save4
11301
+ unless _tmp
11302
+ self.pos = _save3
11021
11303
  break
11022
- end # end sequence
11304
+ end
11305
+ _save5 = self.pos
11306
+ _tmp = match_string(")")
11307
+ _tmp = _tmp ? nil : true
11308
+ self.pos = _save5
11309
+ unless _tmp
11310
+ self.pos = _save3
11311
+ break
11312
+ end
11313
+ _save6 = self.pos
11314
+ _tmp = match_string(">")
11315
+ _tmp = _tmp ? nil : true
11316
+ self.pos = _save6
11317
+ unless _tmp
11318
+ self.pos = _save3
11319
+ break
11320
+ end
11321
+ _tmp = apply(:_Nonspacechar)
11322
+ unless _tmp
11323
+ self.pos = _save3
11324
+ end
11325
+ break
11326
+ end # end sequence
11023
11327
 
11024
- if _tmp
11025
- while true
11328
+ if _tmp
11329
+ while true
11026
11330
 
11331
+ _save7 = self.pos
11332
+ while true # sequence
11027
11333
  _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
11334
+ _tmp = match_string("(")
11335
+ _tmp = _tmp ? nil : true
11336
+ self.pos = _save8
11337
+ unless _tmp
11338
+ self.pos = _save7
11057
11339
  break
11058
- end # end sequence
11340
+ end
11341
+ _save9 = self.pos
11342
+ _tmp = match_string(")")
11343
+ _tmp = _tmp ? nil : true
11344
+ self.pos = _save9
11345
+ unless _tmp
11346
+ self.pos = _save7
11347
+ break
11348
+ end
11349
+ _save10 = self.pos
11350
+ _tmp = match_string(">")
11351
+ _tmp = _tmp ? nil : true
11352
+ self.pos = _save10
11353
+ unless _tmp
11354
+ self.pos = _save7
11355
+ break
11356
+ end
11357
+ _tmp = apply(:_Nonspacechar)
11358
+ unless _tmp
11359
+ self.pos = _save7
11360
+ end
11361
+ break
11362
+ end # end sequence
11059
11363
 
11060
- break unless _tmp
11061
- end
11062
- _tmp = true
11063
- else
11064
- self.pos = _save3
11364
+ break unless _tmp
11065
11365
  end
11066
- break if _tmp
11366
+ _tmp = true
11367
+ else
11067
11368
  self.pos = _save2
11369
+ end
11370
+ break if _tmp
11371
+ self.pos = _save1
11068
11372
 
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
11373
+ _save11 = self.pos
11374
+ while true # sequence
11375
+ _tmp = match_string("(")
11376
+ unless _tmp
11377
+ self.pos = _save11
11085
11378
  break
11086
- end # end sequence
11087
-
11088
- break if _tmp
11089
- self.pos = _save2
11379
+ end
11380
+ _tmp = apply(:_SourceContents)
11381
+ unless _tmp
11382
+ self.pos = _save11
11383
+ break
11384
+ end
11385
+ _tmp = match_string(")")
11386
+ unless _tmp
11387
+ self.pos = _save11
11388
+ end
11090
11389
  break
11091
- end # end choice
11390
+ end # end sequence
11092
11391
 
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
11392
+ break if _tmp
11393
+ self.pos = _save1
11394
+ break
11395
+ end # end choice
11103
11396
 
11397
+ break unless _tmp
11398
+ end
11399
+ _tmp = true
11104
11400
  set_failed_rule :_SourceContents unless _tmp
11105
11401
  return _tmp
11106
11402
  end
@@ -11328,7 +11624,7 @@ class RDoc::Markdown
11328
11624
 
11329
11625
  _save1 = self.pos
11330
11626
  while true # sequence
11331
- _tmp = scan(/\A(?-mix:[A-Za-z]+)/)
11627
+ _tmp = scan(/\G(?-mix:[A-Za-z]+)/)
11332
11628
  unless _tmp
11333
11629
  self.pos = _save1
11334
11630
  break
@@ -11453,7 +11749,7 @@ class RDoc::Markdown
11453
11749
 
11454
11750
  _save2 = self.pos
11455
11751
  while true # sequence
11456
- _tmp = scan(/\A(?i-mx:[\w+.\/!%~$-]+)/)
11752
+ _tmp = scan(/\G(?i-mx:[\w+.\/!%~$-]+)/)
11457
11753
  unless _tmp
11458
11754
  self.pos = _save2
11459
11755
  break
@@ -12317,7 +12613,7 @@ class RDoc::Markdown
12317
12613
  self.pos = _save10
12318
12614
  break
12319
12615
  end
12320
- _tmp = scan(/\A(?-mix:`+)/)
12616
+ _tmp = scan(/\G(?-mix:`+)/)
12321
12617
  unless _tmp
12322
12618
  self.pos = _save10
12323
12619
  end
@@ -12454,7 +12750,7 @@ class RDoc::Markdown
12454
12750
  self.pos = _save24
12455
12751
  break
12456
12752
  end
12457
- _tmp = scan(/\A(?-mix:`+)/)
12753
+ _tmp = scan(/\G(?-mix:`+)/)
12458
12754
  unless _tmp
12459
12755
  self.pos = _save24
12460
12756
  end
@@ -12631,7 +12927,7 @@ class RDoc::Markdown
12631
12927
  self.pos = _save40
12632
12928
  break
12633
12929
  end
12634
- _tmp = scan(/\A(?-mix:`+)/)
12930
+ _tmp = scan(/\G(?-mix:`+)/)
12635
12931
  unless _tmp
12636
12932
  self.pos = _save40
12637
12933
  end
@@ -12768,7 +13064,7 @@ class RDoc::Markdown
12768
13064
  self.pos = _save54
12769
13065
  break
12770
13066
  end
12771
- _tmp = scan(/\A(?-mix:`+)/)
13067
+ _tmp = scan(/\G(?-mix:`+)/)
12772
13068
  unless _tmp
12773
13069
  self.pos = _save54
12774
13070
  end
@@ -12945,7 +13241,7 @@ class RDoc::Markdown
12945
13241
  self.pos = _save70
12946
13242
  break
12947
13243
  end
12948
- _tmp = scan(/\A(?-mix:`+)/)
13244
+ _tmp = scan(/\G(?-mix:`+)/)
12949
13245
  unless _tmp
12950
13246
  self.pos = _save70
12951
13247
  end
@@ -13082,7 +13378,7 @@ class RDoc::Markdown
13082
13378
  self.pos = _save84
13083
13379
  break
13084
13380
  end
13085
- _tmp = scan(/\A(?-mix:`+)/)
13381
+ _tmp = scan(/\G(?-mix:`+)/)
13086
13382
  unless _tmp
13087
13383
  self.pos = _save84
13088
13384
  end
@@ -13259,7 +13555,7 @@ class RDoc::Markdown
13259
13555
  self.pos = _save100
13260
13556
  break
13261
13557
  end
13262
- _tmp = scan(/\A(?-mix:`+)/)
13558
+ _tmp = scan(/\G(?-mix:`+)/)
13263
13559
  unless _tmp
13264
13560
  self.pos = _save100
13265
13561
  end
@@ -13396,7 +13692,7 @@ class RDoc::Markdown
13396
13692
  self.pos = _save114
13397
13693
  break
13398
13694
  end
13399
- _tmp = scan(/\A(?-mix:`+)/)
13695
+ _tmp = scan(/\G(?-mix:`+)/)
13400
13696
  unless _tmp
13401
13697
  self.pos = _save114
13402
13698
  end
@@ -13573,7 +13869,7 @@ class RDoc::Markdown
13573
13869
  self.pos = _save130
13574
13870
  break
13575
13871
  end
13576
- _tmp = scan(/\A(?-mix:`+)/)
13872
+ _tmp = scan(/\G(?-mix:`+)/)
13577
13873
  unless _tmp
13578
13874
  self.pos = _save130
13579
13875
  end
@@ -13710,7 +14006,7 @@ class RDoc::Markdown
13710
14006
  self.pos = _save144
13711
14007
  break
13712
14008
  end
13713
- _tmp = scan(/\A(?-mix:`+)/)
14009
+ _tmp = scan(/\G(?-mix:`+)/)
13714
14010
  unless _tmp
13715
14011
  self.pos = _save144
13716
14012
  end
@@ -14357,12 +14653,12 @@ class RDoc::Markdown
14357
14653
  return _tmp
14358
14654
  end
14359
14655
 
14360
- # SpecialChar = (/[*_`&\[\]()<!#\\'"]/ | @ExtendedSpecialChar)
14656
+ # SpecialChar = (/[~*_`&\[\]()<!#\\'"]/ | @ExtendedSpecialChar)
14361
14657
  def _SpecialChar
14362
14658
 
14363
14659
  _save = self.pos
14364
14660
  while true # choice
14365
- _tmp = scan(/\A(?-mix:[*_`&\[\]()<!#\\'"])/)
14661
+ _tmp = scan(/\G(?-mix:[~*_`&\[\]()<!#\\'"])/)
14366
14662
  break if _tmp
14367
14663
  self.pos = _save
14368
14664
  _tmp = _ExtendedSpecialChar()
@@ -14455,13 +14751,6 @@ class RDoc::Markdown
14455
14751
  return _tmp
14456
14752
  end
14457
14753
 
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
14754
  # Spacechar = %literals.Spacechar
14466
14755
  def _Spacechar
14467
14756
  _tmp = @_grammar_literals.external_invoke(self, :_Spacechar)
@@ -14474,13 +14763,13 @@ class RDoc::Markdown
14474
14763
 
14475
14764
  _save = self.pos
14476
14765
  while true # sequence
14477
- _tmp = scan(/\A(?i-mx:&#x)/)
14766
+ _tmp = scan(/\G(?i-mx:&#x)/)
14478
14767
  unless _tmp
14479
14768
  self.pos = _save
14480
14769
  break
14481
14770
  end
14482
14771
  _text_start = self.pos
14483
- _tmp = scan(/\A(?-mix:[0-9a-fA-F]+)/)
14772
+ _tmp = scan(/\G(?-mix:[0-9a-fA-F]+)/)
14484
14773
  if _tmp
14485
14774
  text = get_text(_text_start)
14486
14775
  end
@@ -14516,7 +14805,7 @@ class RDoc::Markdown
14516
14805
  break
14517
14806
  end
14518
14807
  _text_start = self.pos
14519
- _tmp = scan(/\A(?-mix:[0-9]+)/)
14808
+ _tmp = scan(/\G(?-mix:[0-9]+)/)
14520
14809
  if _tmp
14521
14810
  text = get_text(_text_start)
14522
14811
  end
@@ -14552,7 +14841,7 @@ class RDoc::Markdown
14552
14841
  break
14553
14842
  end
14554
14843
  _text_start = self.pos
14555
- _tmp = scan(/\A(?-mix:[A-Za-z0-9]+)/)
14844
+ _tmp = scan(/\G(?-mix:[A-Za-z0-9]+)/)
14556
14845
  if _tmp
14557
14846
  text = get_text(_text_start)
14558
14847
  end
@@ -14584,14 +14873,14 @@ class RDoc::Markdown
14584
14873
 
14585
14874
  # NonindentSpace = / {0,3}/
14586
14875
  def _NonindentSpace
14587
- _tmp = scan(/\A(?-mix: {0,3})/)
14876
+ _tmp = scan(/\G(?-mix: {0,3})/)
14588
14877
  set_failed_rule :_NonindentSpace unless _tmp
14589
14878
  return _tmp
14590
14879
  end
14591
14880
 
14592
14881
  # Indent = /\t| /
14593
14882
  def _Indent
14594
- _tmp = scan(/\A(?-mix:\t| )/)
14883
+ _tmp = scan(/\G(?-mix:\t| )/)
14595
14884
  set_failed_rule :_Indent unless _tmp
14596
14885
  return _tmp
14597
14886
  end
@@ -14690,7 +14979,7 @@ class RDoc::Markdown
14690
14979
  return _tmp
14691
14980
  end
14692
14981
 
14693
- # RawLine = (< (!"\r" !"\n" .)* @Newline > | < .+ > @Eof) { text }
14982
+ # RawLine = (< /[^\r\n]*/ @Newline > | < .+ > @Eof) { text }
14694
14983
  def _RawLine
14695
14984
 
14696
14985
  _save = self.pos
@@ -14702,36 +14991,7 @@ class RDoc::Markdown
14702
14991
 
14703
14992
  _save2 = self.pos
14704
14993
  while true # sequence
14705
- while true
14706
-
14707
- _save4 = self.pos
14708
- while true # sequence
14709
- _save5 = self.pos
14710
- _tmp = match_string("\r")
14711
- _tmp = _tmp ? nil : true
14712
- self.pos = _save5
14713
- unless _tmp
14714
- self.pos = _save4
14715
- break
14716
- end
14717
- _save6 = self.pos
14718
- _tmp = match_string("\n")
14719
- _tmp = _tmp ? nil : true
14720
- self.pos = _save6
14721
- unless _tmp
14722
- self.pos = _save4
14723
- break
14724
- end
14725
- _tmp = get_byte
14726
- unless _tmp
14727
- self.pos = _save4
14728
- end
14729
- break
14730
- end # end sequence
14731
-
14732
- break unless _tmp
14733
- end
14734
- _tmp = true
14994
+ _tmp = scan(/\G(?-mix:[^\r\n]*)/)
14735
14995
  unless _tmp
14736
14996
  self.pos = _save2
14737
14997
  break
@@ -14749,10 +15009,10 @@ class RDoc::Markdown
14749
15009
  break if _tmp
14750
15010
  self.pos = _save1
14751
15011
 
14752
- _save7 = self.pos
15012
+ _save3 = self.pos
14753
15013
  while true # sequence
14754
15014
  _text_start = self.pos
14755
- _save8 = self.pos
15015
+ _save4 = self.pos
14756
15016
  _tmp = get_byte
14757
15017
  if _tmp
14758
15018
  while true
@@ -14761,18 +15021,18 @@ class RDoc::Markdown
14761
15021
  end
14762
15022
  _tmp = true
14763
15023
  else
14764
- self.pos = _save8
15024
+ self.pos = _save4
14765
15025
  end
14766
15026
  if _tmp
14767
15027
  text = get_text(_text_start)
14768
15028
  end
14769
15029
  unless _tmp
14770
- self.pos = _save7
15030
+ self.pos = _save3
14771
15031
  break
14772
15032
  end
14773
15033
  _tmp = _Eof()
14774
15034
  unless _tmp
14775
- self.pos = _save7
15035
+ self.pos = _save3
14776
15036
  end
14777
15037
  break
14778
15038
  end # end sequence
@@ -15189,7 +15449,7 @@ class RDoc::Markdown
15189
15449
  return _tmp
15190
15450
  end
15191
15451
 
15192
- # InlineNote = &{ notes? } "^[" @StartList:a (!"]" Inline:l { a << l })+ "]" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref }
15452
+ # InlineNote = &{ notes? } "^[" @StartList:a (!"]" Inline:l { a << l })+ "]" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref }
15193
15453
  def _InlineNote
15194
15454
 
15195
15455
  _save = self.pos
@@ -15280,8 +15540,7 @@ class RDoc::Markdown
15280
15540
  self.pos = _save
15281
15541
  break
15282
15542
  end
15283
- @result = begin;
15284
- ref = [:inline, @note_order.length]
15543
+ @result = begin; ref = [:inline, @note_order.length]
15285
15544
  @footnotes[ref] = paragraph a
15286
15545
 
15287
15546
  note_for ref
@@ -15319,7 +15578,7 @@ class RDoc::Markdown
15319
15578
  return _tmp
15320
15579
  end
15321
15580
 
15322
- # RawNoteBlock = @StartList:a (!@BlankLine OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }
15581
+ # RawNoteBlock = @StartList:a (!@BlankLine !RawNoteReference OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }
15323
15582
  def _RawNoteBlock
15324
15583
 
15325
15584
  _save = self.pos
@@ -15342,6 +15601,14 @@ class RDoc::Markdown
15342
15601
  self.pos = _save2
15343
15602
  break
15344
15603
  end
15604
+ _save4 = self.pos
15605
+ _tmp = apply(:_RawNoteReference)
15606
+ _tmp = _tmp ? nil : true
15607
+ self.pos = _save4
15608
+ unless _tmp
15609
+ self.pos = _save2
15610
+ break
15611
+ end
15345
15612
  _tmp = apply(:_OptionallyIndentedLine)
15346
15613
  l = @result
15347
15614
  unless _tmp
@@ -15359,26 +15626,34 @@ class RDoc::Markdown
15359
15626
  if _tmp
15360
15627
  while true
15361
15628
 
15362
- _save4 = self.pos
15629
+ _save5 = self.pos
15363
15630
  while true # sequence
15364
- _save5 = self.pos
15631
+ _save6 = self.pos
15365
15632
  _tmp = _BlankLine()
15366
15633
  _tmp = _tmp ? nil : true
15367
- self.pos = _save5
15634
+ self.pos = _save6
15368
15635
  unless _tmp
15369
- self.pos = _save4
15636
+ self.pos = _save5
15637
+ break
15638
+ end
15639
+ _save7 = self.pos
15640
+ _tmp = apply(:_RawNoteReference)
15641
+ _tmp = _tmp ? nil : true
15642
+ self.pos = _save7
15643
+ unless _tmp
15644
+ self.pos = _save5
15370
15645
  break
15371
15646
  end
15372
15647
  _tmp = apply(:_OptionallyIndentedLine)
15373
15648
  l = @result
15374
15649
  unless _tmp
15375
- self.pos = _save4
15650
+ self.pos = _save5
15376
15651
  break
15377
15652
  end
15378
15653
  @result = begin; a << l ; end
15379
15654
  _tmp = true
15380
15655
  unless _tmp
15381
- self.pos = _save4
15656
+ self.pos = _save5
15382
15657
  end
15383
15658
  break
15384
15659
  end # end sequence
@@ -15424,7 +15699,7 @@ class RDoc::Markdown
15424
15699
  return _tmp
15425
15700
  end
15426
15701
 
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 }
15702
+ # 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
15703
  def _CodeFence
15429
15704
 
15430
15705
  _save = self.pos
@@ -15436,217 +15711,597 @@ class RDoc::Markdown
15436
15711
  self.pos = _save
15437
15712
  break
15438
15713
  end
15439
- _tmp = apply(:_Ticks3)
15714
+ _tmp = apply(:_Ticks3)
15715
+ unless _tmp
15716
+ self.pos = _save
15717
+ break
15718
+ end
15719
+ _save2 = self.pos
15720
+
15721
+ _save3 = self.pos
15722
+ while true # sequence
15723
+ _tmp = _Sp()
15724
+ unless _tmp
15725
+ self.pos = _save3
15726
+ break
15727
+ end
15728
+ _tmp = apply(:_StrChunk)
15729
+ format = @result
15730
+ unless _tmp
15731
+ self.pos = _save3
15732
+ end
15733
+ break
15734
+ end # end sequence
15735
+
15736
+ unless _tmp
15737
+ _tmp = true
15738
+ self.pos = _save2
15739
+ end
15740
+ unless _tmp
15741
+ self.pos = _save
15742
+ break
15743
+ end
15744
+ _tmp = apply(:_Spnl)
15745
+ unless _tmp
15746
+ self.pos = _save
15747
+ break
15748
+ end
15749
+ _text_start = self.pos
15750
+ _save4 = self.pos
15751
+
15752
+ _save5 = self.pos
15753
+ while true # choice
15754
+ _save6 = self.pos
15755
+
15756
+ _save7 = self.pos
15757
+ while true # sequence
15758
+ _save8 = self.pos
15759
+ _tmp = match_string("`")
15760
+ _tmp = _tmp ? nil : true
15761
+ self.pos = _save8
15762
+ unless _tmp
15763
+ self.pos = _save7
15764
+ break
15765
+ end
15766
+ _tmp = apply(:_Nonspacechar)
15767
+ unless _tmp
15768
+ self.pos = _save7
15769
+ end
15770
+ break
15771
+ end # end sequence
15772
+
15773
+ if _tmp
15774
+ while true
15775
+
15776
+ _save9 = self.pos
15777
+ while true # sequence
15778
+ _save10 = self.pos
15779
+ _tmp = match_string("`")
15780
+ _tmp = _tmp ? nil : true
15781
+ self.pos = _save10
15782
+ unless _tmp
15783
+ self.pos = _save9
15784
+ break
15785
+ end
15786
+ _tmp = apply(:_Nonspacechar)
15787
+ unless _tmp
15788
+ self.pos = _save9
15789
+ end
15790
+ break
15791
+ end # end sequence
15792
+
15793
+ break unless _tmp
15794
+ end
15795
+ _tmp = true
15796
+ else
15797
+ self.pos = _save6
15798
+ end
15799
+ break if _tmp
15800
+ self.pos = _save5
15801
+
15802
+ _save11 = self.pos
15803
+ while true # sequence
15804
+ _save12 = self.pos
15805
+ _tmp = apply(:_Ticks3)
15806
+ _tmp = _tmp ? nil : true
15807
+ self.pos = _save12
15808
+ unless _tmp
15809
+ self.pos = _save11
15810
+ break
15811
+ end
15812
+ _tmp = scan(/\G(?-mix:`+)/)
15813
+ unless _tmp
15814
+ self.pos = _save11
15815
+ end
15816
+ break
15817
+ end # end sequence
15818
+
15819
+ break if _tmp
15820
+ self.pos = _save5
15821
+ _tmp = apply(:_Spacechar)
15822
+ break if _tmp
15823
+ self.pos = _save5
15824
+ _tmp = _Newline()
15825
+ break if _tmp
15826
+ self.pos = _save5
15827
+ break
15828
+ end # end choice
15829
+
15830
+ if _tmp
15831
+ while true
15832
+
15833
+ _save13 = self.pos
15834
+ while true # choice
15835
+ _save14 = self.pos
15836
+
15837
+ _save15 = self.pos
15838
+ while true # sequence
15839
+ _save16 = self.pos
15840
+ _tmp = match_string("`")
15841
+ _tmp = _tmp ? nil : true
15842
+ self.pos = _save16
15843
+ unless _tmp
15844
+ self.pos = _save15
15845
+ break
15846
+ end
15847
+ _tmp = apply(:_Nonspacechar)
15848
+ unless _tmp
15849
+ self.pos = _save15
15850
+ end
15851
+ break
15852
+ end # end sequence
15853
+
15854
+ if _tmp
15855
+ while true
15856
+
15857
+ _save17 = self.pos
15858
+ while true # sequence
15859
+ _save18 = self.pos
15860
+ _tmp = match_string("`")
15861
+ _tmp = _tmp ? nil : true
15862
+ self.pos = _save18
15863
+ unless _tmp
15864
+ self.pos = _save17
15865
+ break
15866
+ end
15867
+ _tmp = apply(:_Nonspacechar)
15868
+ unless _tmp
15869
+ self.pos = _save17
15870
+ end
15871
+ break
15872
+ end # end sequence
15873
+
15874
+ break unless _tmp
15875
+ end
15876
+ _tmp = true
15877
+ else
15878
+ self.pos = _save14
15879
+ end
15880
+ break if _tmp
15881
+ self.pos = _save13
15882
+
15883
+ _save19 = self.pos
15884
+ while true # sequence
15885
+ _save20 = self.pos
15886
+ _tmp = apply(:_Ticks3)
15887
+ _tmp = _tmp ? nil : true
15888
+ self.pos = _save20
15889
+ unless _tmp
15890
+ self.pos = _save19
15891
+ break
15892
+ end
15893
+ _tmp = scan(/\G(?-mix:`+)/)
15894
+ unless _tmp
15895
+ self.pos = _save19
15896
+ end
15897
+ break
15898
+ end # end sequence
15899
+
15900
+ break if _tmp
15901
+ self.pos = _save13
15902
+ _tmp = apply(:_Spacechar)
15903
+ break if _tmp
15904
+ self.pos = _save13
15905
+ _tmp = _Newline()
15906
+ break if _tmp
15907
+ self.pos = _save13
15908
+ break
15909
+ end # end choice
15910
+
15911
+ break unless _tmp
15912
+ end
15913
+ _tmp = true
15914
+ else
15915
+ self.pos = _save4
15916
+ end
15917
+ if _tmp
15918
+ text = get_text(_text_start)
15919
+ end
15920
+ unless _tmp
15921
+ self.pos = _save
15922
+ break
15923
+ end
15924
+ _tmp = apply(:_Ticks3)
15925
+ unless _tmp
15926
+ self.pos = _save
15927
+ break
15928
+ end
15929
+ _tmp = _Sp()
15930
+ unless _tmp
15931
+ self.pos = _save
15932
+ break
15933
+ end
15934
+ while true
15935
+ _tmp = _Newline()
15936
+ break unless _tmp
15937
+ end
15938
+ _tmp = true
15939
+ unless _tmp
15940
+ self.pos = _save
15941
+ break
15942
+ end
15943
+ @result = begin; verbatim = RDoc::Markup::Verbatim.new text
15944
+ verbatim.format = format.intern if format.instance_of?(String)
15945
+ verbatim
15946
+ ; end
15947
+ _tmp = true
15948
+ unless _tmp
15949
+ self.pos = _save
15950
+ end
15951
+ break
15952
+ end # end sequence
15953
+
15954
+ set_failed_rule :_CodeFence unless _tmp
15955
+ return _tmp
15956
+ end
15957
+
15958
+ # Table = &{ github? } TableHead:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) }
15959
+ def _Table
15960
+
15961
+ _save = self.pos
15962
+ while true # sequence
15963
+ _save1 = self.pos
15964
+ _tmp = begin; github? ; end
15965
+ self.pos = _save1
15966
+ unless _tmp
15967
+ self.pos = _save
15968
+ break
15969
+ end
15970
+ _tmp = apply(:_TableHead)
15971
+ header = @result
15972
+ unless _tmp
15973
+ self.pos = _save
15974
+ break
15975
+ end
15976
+ _tmp = apply(:_TableLine)
15977
+ line = @result
15978
+ unless _tmp
15979
+ self.pos = _save
15980
+ break
15981
+ end
15982
+ _save2 = self.pos
15983
+ _ary = []
15984
+ _tmp = apply(:_TableRow)
15985
+ if _tmp
15986
+ _ary << @result
15987
+ while true
15988
+ _tmp = apply(:_TableRow)
15989
+ _ary << @result if _tmp
15990
+ break unless _tmp
15991
+ end
15992
+ _tmp = true
15993
+ @result = _ary
15994
+ else
15995
+ self.pos = _save2
15996
+ end
15997
+ body = @result
15998
+ unless _tmp
15999
+ self.pos = _save
16000
+ break
16001
+ end
16002
+ @result = begin; table = RDoc::Markup::Table.new(header, line, body) ; end
16003
+ _tmp = true
16004
+ unless _tmp
16005
+ self.pos = _save
16006
+ end
16007
+ break
16008
+ end # end sequence
16009
+
16010
+ set_failed_rule :_Table unless _tmp
16011
+ return _tmp
16012
+ end
16013
+
16014
+ # TableHead = TableItem2+:items "|"? @Newline { items }
16015
+ def _TableHead
16016
+
16017
+ _save = self.pos
16018
+ while true # sequence
16019
+ _save1 = self.pos
16020
+ _ary = []
16021
+ _tmp = apply(:_TableItem2)
16022
+ if _tmp
16023
+ _ary << @result
16024
+ while true
16025
+ _tmp = apply(:_TableItem2)
16026
+ _ary << @result if _tmp
16027
+ break unless _tmp
16028
+ end
16029
+ _tmp = true
16030
+ @result = _ary
16031
+ else
16032
+ self.pos = _save1
16033
+ end
16034
+ items = @result
16035
+ unless _tmp
16036
+ self.pos = _save
16037
+ break
16038
+ end
16039
+ _save2 = self.pos
16040
+ _tmp = match_string("|")
16041
+ unless _tmp
16042
+ _tmp = true
16043
+ self.pos = _save2
16044
+ end
16045
+ unless _tmp
16046
+ self.pos = _save
16047
+ break
16048
+ end
16049
+ _tmp = _Newline()
16050
+ unless _tmp
16051
+ self.pos = _save
16052
+ break
16053
+ end
16054
+ @result = begin; items ; end
16055
+ _tmp = true
16056
+ unless _tmp
16057
+ self.pos = _save
16058
+ end
16059
+ break
16060
+ end # end sequence
16061
+
16062
+ set_failed_rule :_TableHead unless _tmp
16063
+ return _tmp
16064
+ end
16065
+
16066
+ # TableRow = ((TableItem:item1 TableItem2*:items { [item1, *items] }):row | TableItem2+:row) "|"? @Newline { row }
16067
+ def _TableRow
16068
+
16069
+ _save = self.pos
16070
+ while true # sequence
16071
+
16072
+ _save1 = self.pos
16073
+ while true # choice
16074
+
16075
+ _save2 = self.pos
16076
+ while true # sequence
16077
+ _tmp = apply(:_TableItem)
16078
+ item1 = @result
16079
+ unless _tmp
16080
+ self.pos = _save2
16081
+ break
16082
+ end
16083
+ _ary = []
16084
+ while true
16085
+ _tmp = apply(:_TableItem2)
16086
+ _ary << @result if _tmp
16087
+ break unless _tmp
16088
+ end
16089
+ _tmp = true
16090
+ @result = _ary
16091
+ items = @result
16092
+ unless _tmp
16093
+ self.pos = _save2
16094
+ break
16095
+ end
16096
+ @result = begin; [item1, *items] ; end
16097
+ _tmp = true
16098
+ unless _tmp
16099
+ self.pos = _save2
16100
+ end
16101
+ break
16102
+ end # end sequence
16103
+
16104
+ row = @result
16105
+ break if _tmp
16106
+ self.pos = _save1
16107
+ _save4 = self.pos
16108
+ _ary = []
16109
+ _tmp = apply(:_TableItem2)
16110
+ if _tmp
16111
+ _ary << @result
16112
+ while true
16113
+ _tmp = apply(:_TableItem2)
16114
+ _ary << @result if _tmp
16115
+ break unless _tmp
16116
+ end
16117
+ _tmp = true
16118
+ @result = _ary
16119
+ else
16120
+ self.pos = _save4
16121
+ end
16122
+ row = @result
16123
+ break if _tmp
16124
+ self.pos = _save1
16125
+ break
16126
+ end # end choice
16127
+
16128
+ unless _tmp
16129
+ self.pos = _save
16130
+ break
16131
+ end
16132
+ _save5 = self.pos
16133
+ _tmp = match_string("|")
16134
+ unless _tmp
16135
+ _tmp = true
16136
+ self.pos = _save5
16137
+ end
16138
+ unless _tmp
16139
+ self.pos = _save
16140
+ break
16141
+ end
16142
+ _tmp = _Newline()
16143
+ unless _tmp
16144
+ self.pos = _save
16145
+ break
16146
+ end
16147
+ @result = begin; row ; end
16148
+ _tmp = true
16149
+ unless _tmp
16150
+ self.pos = _save
16151
+ end
16152
+ break
16153
+ end # end sequence
16154
+
16155
+ set_failed_rule :_TableRow unless _tmp
16156
+ return _tmp
16157
+ end
16158
+
16159
+ # TableItem2 = "|" TableItem
16160
+ def _TableItem2
16161
+
16162
+ _save = self.pos
16163
+ while true # sequence
16164
+ _tmp = match_string("|")
16165
+ unless _tmp
16166
+ self.pos = _save
16167
+ break
16168
+ end
16169
+ _tmp = apply(:_TableItem)
15440
16170
  unless _tmp
15441
16171
  self.pos = _save
15442
- break
15443
16172
  end
15444
- _save2 = self.pos
16173
+ break
16174
+ end # end sequence
15445
16175
 
15446
- _save3 = self.pos
15447
- while true # sequence
15448
- _tmp = _Sp()
15449
- unless _tmp
15450
- self.pos = _save3
15451
- break
15452
- end
15453
- _tmp = apply(:_StrChunk)
15454
- format = @result
15455
- unless _tmp
15456
- self.pos = _save3
15457
- end
15458
- break
15459
- end # end sequence
16176
+ set_failed_rule :_TableItem2 unless _tmp
16177
+ return _tmp
16178
+ end
15460
16179
 
15461
- unless _tmp
15462
- _tmp = true
15463
- self.pos = _save2
16180
+ # TableItem = < /(?:\\.|[^|\n])+/ > { text.strip.gsub(/\\(.)/, '\1') }
16181
+ def _TableItem
16182
+
16183
+ _save = self.pos
16184
+ while true # sequence
16185
+ _text_start = self.pos
16186
+ _tmp = scan(/\G(?-mix:(?:\\.|[^|\n])+)/)
16187
+ if _tmp
16188
+ text = get_text(_text_start)
15464
16189
  end
15465
16190
  unless _tmp
15466
16191
  self.pos = _save
15467
16192
  break
15468
16193
  end
15469
- _tmp = apply(:_Spnl)
16194
+ @result = begin; text.strip.gsub(/\\(.)/, '\1') ; end
16195
+ _tmp = true
15470
16196
  unless _tmp
15471
16197
  self.pos = _save
15472
- break
15473
16198
  end
15474
- _text_start = self.pos
15475
- _save4 = self.pos
16199
+ break
16200
+ end # end sequence
15476
16201
 
15477
- _save5 = self.pos
16202
+ set_failed_rule :_TableItem unless _tmp
16203
+ return _tmp
16204
+ end
16205
+
16206
+ # TableLine = ((TableAlign:align1 TableAlign2*:aligns {[align1, *aligns] }):line | TableAlign2+:line) "|"? @Newline { line }
16207
+ def _TableLine
16208
+
16209
+ _save = self.pos
16210
+ while true # sequence
16211
+
16212
+ _save1 = self.pos
15478
16213
  while true # choice
15479
- _save6 = self.pos
15480
16214
 
15481
- _save7 = self.pos
16215
+ _save2 = self.pos
15482
16216
  while true # sequence
15483
- _save8 = self.pos
15484
- _tmp = match_string("`")
15485
- _tmp = _tmp ? nil : true
15486
- self.pos = _save8
16217
+ _tmp = apply(:_TableAlign)
16218
+ align1 = @result
15487
16219
  unless _tmp
15488
- self.pos = _save7
16220
+ self.pos = _save2
15489
16221
  break
15490
16222
  end
15491
- _tmp = apply(:_Nonspacechar)
15492
- unless _tmp
15493
- self.pos = _save7
15494
- end
15495
- break
15496
- end # end sequence
15497
-
15498
- if _tmp
16223
+ _ary = []
15499
16224
  while true
15500
-
15501
- _save9 = self.pos
15502
- while true # sequence
15503
- _save10 = self.pos
15504
- _tmp = match_string("`")
15505
- _tmp = _tmp ? nil : true
15506
- self.pos = _save10
15507
- unless _tmp
15508
- self.pos = _save9
15509
- break
15510
- end
15511
- _tmp = apply(:_Nonspacechar)
15512
- unless _tmp
15513
- self.pos = _save9
15514
- end
15515
- break
15516
- end # end sequence
15517
-
16225
+ _tmp = apply(:_TableAlign2)
16226
+ _ary << @result if _tmp
15518
16227
  break unless _tmp
15519
16228
  end
15520
16229
  _tmp = true
15521
- else
15522
- self.pos = _save6
15523
- end
15524
- break if _tmp
15525
- self.pos = _save5
15526
-
15527
- _save11 = self.pos
15528
- while true # sequence
15529
- _save12 = self.pos
15530
- _tmp = apply(:_Ticks3)
15531
- _tmp = _tmp ? nil : true
15532
- self.pos = _save12
16230
+ @result = _ary
16231
+ aligns = @result
15533
16232
  unless _tmp
15534
- self.pos = _save11
16233
+ self.pos = _save2
15535
16234
  break
15536
16235
  end
15537
- _tmp = scan(/\A(?-mix:`+)/)
16236
+ @result = begin; [align1, *aligns] ; end
16237
+ _tmp = true
15538
16238
  unless _tmp
15539
- self.pos = _save11
16239
+ self.pos = _save2
15540
16240
  end
15541
16241
  break
15542
16242
  end # end sequence
15543
16243
 
16244
+ line = @result
15544
16245
  break if _tmp
15545
- self.pos = _save5
15546
- _tmp = apply(:_Spacechar)
15547
- break if _tmp
15548
- self.pos = _save5
15549
- _tmp = _Newline()
16246
+ self.pos = _save1
16247
+ _save4 = self.pos
16248
+ _ary = []
16249
+ _tmp = apply(:_TableAlign2)
16250
+ if _tmp
16251
+ _ary << @result
16252
+ while true
16253
+ _tmp = apply(:_TableAlign2)
16254
+ _ary << @result if _tmp
16255
+ break unless _tmp
16256
+ end
16257
+ _tmp = true
16258
+ @result = _ary
16259
+ else
16260
+ self.pos = _save4
16261
+ end
16262
+ line = @result
15550
16263
  break if _tmp
15551
- self.pos = _save5
16264
+ self.pos = _save1
15552
16265
  break
15553
16266
  end # end choice
15554
16267
 
15555
- if _tmp
15556
- while true
15557
-
15558
- _save13 = self.pos
15559
- while true # choice
15560
- _save14 = self.pos
15561
-
15562
- _save15 = self.pos
15563
- while true # sequence
15564
- _save16 = self.pos
15565
- _tmp = match_string("`")
15566
- _tmp = _tmp ? nil : true
15567
- self.pos = _save16
15568
- unless _tmp
15569
- self.pos = _save15
15570
- break
15571
- end
15572
- _tmp = apply(:_Nonspacechar)
15573
- unless _tmp
15574
- self.pos = _save15
15575
- end
15576
- break
15577
- end # end sequence
15578
-
15579
- if _tmp
15580
- while true
15581
-
15582
- _save17 = self.pos
15583
- while true # sequence
15584
- _save18 = self.pos
15585
- _tmp = match_string("`")
15586
- _tmp = _tmp ? nil : true
15587
- self.pos = _save18
15588
- unless _tmp
15589
- self.pos = _save17
15590
- break
15591
- end
15592
- _tmp = apply(:_Nonspacechar)
15593
- unless _tmp
15594
- self.pos = _save17
15595
- end
15596
- break
15597
- end # end sequence
15598
-
15599
- break unless _tmp
15600
- end
15601
- _tmp = true
15602
- else
15603
- self.pos = _save14
15604
- end
15605
- break if _tmp
15606
- self.pos = _save13
15607
-
15608
- _save19 = self.pos
15609
- while true # sequence
15610
- _save20 = self.pos
15611
- _tmp = apply(:_Ticks3)
15612
- _tmp = _tmp ? nil : true
15613
- self.pos = _save20
15614
- unless _tmp
15615
- self.pos = _save19
15616
- break
15617
- end
15618
- _tmp = scan(/\A(?-mix:`+)/)
15619
- unless _tmp
15620
- self.pos = _save19
15621
- end
15622
- break
15623
- end # end sequence
15624
-
15625
- break if _tmp
15626
- self.pos = _save13
15627
- _tmp = apply(:_Spacechar)
15628
- break if _tmp
15629
- self.pos = _save13
15630
- _tmp = _Newline()
15631
- break if _tmp
15632
- self.pos = _save13
15633
- break
15634
- end # end choice
15635
-
15636
- break unless _tmp
15637
- end
16268
+ unless _tmp
16269
+ self.pos = _save
16270
+ break
16271
+ end
16272
+ _save5 = self.pos
16273
+ _tmp = match_string("|")
16274
+ unless _tmp
15638
16275
  _tmp = true
15639
- else
15640
- self.pos = _save4
16276
+ self.pos = _save5
15641
16277
  end
15642
- if _tmp
15643
- text = get_text(_text_start)
16278
+ unless _tmp
16279
+ self.pos = _save
16280
+ break
15644
16281
  end
16282
+ _tmp = _Newline()
15645
16283
  unless _tmp
15646
16284
  self.pos = _save
15647
16285
  break
15648
16286
  end
15649
- _tmp = apply(:_Ticks3)
16287
+ @result = begin; line ; end
16288
+ _tmp = true
16289
+ unless _tmp
16290
+ self.pos = _save
16291
+ end
16292
+ break
16293
+ end # end sequence
16294
+
16295
+ set_failed_rule :_TableLine unless _tmp
16296
+ return _tmp
16297
+ end
16298
+
16299
+ # TableAlign2 = "|" @Sp TableAlign
16300
+ def _TableAlign2
16301
+
16302
+ _save = self.pos
16303
+ while true # sequence
16304
+ _tmp = match_string("|")
15650
16305
  unless _tmp
15651
16306
  self.pos = _save
15652
16307
  break
@@ -15656,19 +16311,41 @@ class RDoc::Markdown
15656
16311
  self.pos = _save
15657
16312
  break
15658
16313
  end
15659
- while true
15660
- _tmp = _Newline()
15661
- break unless _tmp
16314
+ _tmp = apply(:_TableAlign)
16315
+ unless _tmp
16316
+ self.pos = _save
16317
+ end
16318
+ break
16319
+ end # end sequence
16320
+
16321
+ set_failed_rule :_TableAlign2 unless _tmp
16322
+ return _tmp
16323
+ end
16324
+
16325
+ # TableAlign = < /:?-+:?/ > @Sp { text.start_with?(":") ? (text.end_with?(":") ? :center : :left) : (text.end_with?(":") ? :right : nil) }
16326
+ def _TableAlign
16327
+
16328
+ _save = self.pos
16329
+ while true # sequence
16330
+ _text_start = self.pos
16331
+ _tmp = scan(/\G(?-mix::?-+:?)/)
16332
+ if _tmp
16333
+ text = get_text(_text_start)
15662
16334
  end
15663
- _tmp = true
15664
16335
  unless _tmp
15665
16336
  self.pos = _save
15666
16337
  break
15667
16338
  end
15668
- @result = begin; verbatim = RDoc::Markup::Verbatim.new text
15669
- verbatim.format = format.intern if format
15670
- verbatim
15671
- ; end
16339
+ _tmp = _Sp()
16340
+ unless _tmp
16341
+ self.pos = _save
16342
+ break
16343
+ end
16344
+ @result = begin;
16345
+ text.start_with?(":") ?
16346
+ (text.end_with?(":") ? :center : :left) :
16347
+ (text.end_with?(":") ? :right : nil)
16348
+ ; end
15672
16349
  _tmp = true
15673
16350
  unless _tmp
15674
16351
  self.pos = _save
@@ -15676,7 +16353,7 @@ class RDoc::Markdown
15676
16353
  break
15677
16354
  end # end sequence
15678
16355
 
15679
- set_failed_rule :_CodeFence unless _tmp
16356
+ set_failed_rule :_TableAlign unless _tmp
15680
16357
  return _tmp
15681
16358
  end
15682
16359
 
@@ -15790,12 +16467,12 @@ class RDoc::Markdown
15790
16467
  return _tmp
15791
16468
  end
15792
16469
 
15793
- # DefinitionListLabel = StrChunk:label @Sp @Newline { label }
16470
+ # DefinitionListLabel = Inline:label @Sp @Newline { label }
15794
16471
  def _DefinitionListLabel
15795
16472
 
15796
16473
  _save = self.pos
15797
16474
  while true # sequence
15798
- _tmp = apply(:_StrChunk)
16475
+ _tmp = apply(:_Inline)
15799
16476
  label = @result
15800
16477
  unless _tmp
15801
16478
  self.pos = _save
@@ -15879,17 +16556,17 @@ class RDoc::Markdown
15879
16556
  Rules = {}
15880
16557
  Rules[:_root] = rule_info("root", "Doc")
15881
16558
  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)")
16559
+ Rules[:_Block] = rule_info("Block", "@BlankLine* (BlockQuote | Verbatim | CodeFence | Table | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)")
15883
16560
  Rules[:_Para] = rule_info("Para", "@NonindentSpace Inlines:a @BlankLine+ { paragraph a }")
15884
16561
  Rules[:_Plain] = rule_info("Plain", "Inlines:a { paragraph a }")
15885
- Rules[:_AtxInline] = rule_info("AtxInline", "!@Newline !(@Sp? /\#*/ @Sp @Newline) Inline")
16562
+ Rules[:_AtxInline] = rule_info("AtxInline", "!@Newline !(@Sp /\#*/ @Sp @Newline) Inline")
15886
16563
  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) }")
16564
+ Rules[:_AtxHeading] = rule_info("AtxHeading", "AtxStart:s @Spacechar+ AtxInline+:a (@Sp /\#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }")
15888
16565
  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) }")
16566
+ Rules[:_SetextBottom1] = rule_info("SetextBottom1", "/={1,}/ @Newline")
16567
+ Rules[:_SetextBottom2] = rule_info("SetextBottom2", "/-{1,}/ @Newline")
16568
+ Rules[:_SetextHeading1] = rule_info("SetextHeading1", "&(@RawLine SetextBottom1) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom1 { RDoc::Markup::Heading.new(1, a.join) }")
16569
+ 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
16570
  Rules[:_Heading] = rule_info("Heading", "(SetextHeading | AtxHeading)")
15894
16571
  Rules[:_BlockQuote] = rule_info("BlockQuote", "BlockQuoteRaw:a { RDoc::Markup::BlockQuote.new(*a) }")
15895
16572
  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 +16687,10 @@ class RDoc::Markdown
16010
16687
  Rules[:_HtmlBlockOpenScript] = rule_info("HtmlBlockOpenScript", "\"<\" Spnl (\"script\" | \"SCRIPT\") Spnl HtmlAttribute* \">\"")
16011
16688
  Rules[:_HtmlBlockCloseScript] = rule_info("HtmlBlockCloseScript", "\"<\" Spnl \"/\" (\"script\" | \"SCRIPT\") Spnl \">\"")
16012
16689
  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)")
16690
+ Rules[:_HtmlBlockOpenHead] = rule_info("HtmlBlockOpenHead", "\"<\" Spnl (\"head\" | \"HEAD\") Spnl HtmlAttribute* \">\"")
16691
+ Rules[:_HtmlBlockCloseHead] = rule_info("HtmlBlockCloseHead", "\"<\" Spnl \"/\" (\"head\" | \"HEAD\") Spnl \">\"")
16692
+ Rules[:_HtmlBlockHead] = rule_info("HtmlBlockHead", "HtmlBlockOpenHead (!HtmlBlockCloseHead .)* HtmlBlockCloseHead")
16693
+ 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
16694
  Rules[:_HtmlBlock] = rule_info("HtmlBlock", "< (HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) > @BlankLine+ { if html? then RDoc::Markup::Raw.new text end }")
16015
16695
  Rules[:_HtmlUnclosed] = rule_info("HtmlUnclosed", "\"<\" Spnl HtmlUnclosedType Spnl HtmlAttribute* Spnl \">\"")
16016
16696
  Rules[:_HtmlUnclosedType] = rule_info("HtmlUnclosedType", "(\"HR\" | \"hr\")")
@@ -16020,15 +16700,15 @@ class RDoc::Markdown
16020
16700
  Rules[:_StyleClose] = rule_info("StyleClose", "\"<\" Spnl \"/\" (\"style\" | \"STYLE\") Spnl \">\"")
16021
16701
  Rules[:_InStyleTags] = rule_info("InStyleTags", "StyleOpen (!StyleClose .)* StyleClose")
16022
16702
  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)")
16703
+ Rules[:_Inlines] = rule_info("Inlines", "(!@Endline Inline:i { i } | @Endline:c !(&{ github? } Ticks3 /[^`\\n]*$/) &Inline { c })+:chunks @Endline? { chunks }")
16704
+ Rules[:_Inline] = rule_info("Inline", "(Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)")
16025
16705
  Rules[:_Space] = rule_info("Space", "@Spacechar+ { \" \" }")
16026
16706
  Rules[:_Str] = rule_info("Str", "@StartList:a < @NormalChar+ > { a = text } (StrChunk:c { a << c })* { a }")
16027
16707
  Rules[:_StrChunk] = rule_info("StrChunk", "< (@NormalChar | /_+/ &Alphanumeric)+ > { text }")
16028
16708
  Rules[:_EscapedChar] = rule_info("EscapedChar", "\"\\\\\" !@Newline < /[:\\\\`|*_{}\\[\\]()\#+.!><-]/ > { text }")
16029
16709
  Rules[:_Entity] = rule_info("Entity", "(HexEntity | DecEntity | CharEntity):a { a }")
16030
16710
  Rules[:_Endline] = rule_info("Endline", "(@LineBreak | @TerminalEndline | @NormalEndline)")
16031
- Rules[:_NormalEndline] = rule_info("NormalEndline", "@Sp @Newline !@BlankLine !\">\" !AtxStart !(Line /={3,}|-{3,}=/ @Newline) { \"\\n\" }")
16711
+ Rules[:_NormalEndline] = rule_info("NormalEndline", "@Sp @Newline !@BlankLine !\">\" !AtxStart !(Line /={1,}|-{1,}/ @Newline) { \"\\n\" }")
16032
16712
  Rules[:_TerminalEndline] = rule_info("TerminalEndline", "@Sp @Newline @Eof")
16033
16713
  Rules[:_LineBreak] = rule_info("LineBreak", "\" \" @NormalEndline { RDoc::Markup::HardBreak.new }")
16034
16714
  Rules[:_Symbol] = rule_info("Symbol", "< @SpecialChar > { text }")
@@ -16036,27 +16716,22 @@ class RDoc::Markdown
16036
16716
  Rules[:_StarLine] = rule_info("StarLine", "(< /\\*{4,}/ > { text } | < @Spacechar /\\*+/ &@Spacechar > { text })")
16037
16717
  Rules[:_UlLine] = rule_info("UlLine", "(< /_{4,}/ > { text } | < @Spacechar /_+/ &@Spacechar > { text })")
16038
16718
  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 }")
16719
+ Rules[:_Whitespace] = rule_info("Whitespace", "(@Spacechar | @Newline)")
16720
+ Rules[:_EmphStar] = rule_info("EmphStar", "\"*\" !@Whitespace @StartList:a (!\"*\" Inline:b { a << b } | StrongStar:b { a << b })+ \"*\" { emphasis a.join }")
16721
+ Rules[:_EmphUl] = rule_info("EmphUl", "\"_\" !@Whitespace @StartList:a (!\"_\" Inline:b { a << b } | StrongUl:b { a << b })+ \"_\" { emphasis a.join }")
16045
16722
  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 }")
16052
- Rules[:_Image] = rule_info("Image", "\"!\" (ExplicitLink | ReferenceLink):a { \"rdoc-image:\#{a[/\\[(.*)\\]/, 1]}\" }")
16723
+ Rules[:_StrongStar] = rule_info("StrongStar", "\"**\" !@Whitespace @StartList:a (!\"**\" Inline:b { a << b })+ \"**\" { strong a.join }")
16724
+ Rules[:_StrongUl] = rule_info("StrongUl", "\"__\" !@Whitespace @StartList:a (!\"__\" Inline:b { a << b })+ \"__\" { strong a.join }")
16725
+ Rules[:_Strike] = rule_info("Strike", "&{ strike? } \"~~\" !@Whitespace @StartList:a (!\"~~\" Inline:b { a << b })+ \"~~\" { strike a.join }")
16726
+ Rules[:_Image] = rule_info("Image", "\"!\" ExplicitLinkWithLabel:a { \"rdoc-image:\#{a[:link]}:\#{a[:label]}\" }")
16053
16727
  Rules[:_Link] = rule_info("Link", "(ExplicitLink | ReferenceLink | AutoLink)")
16054
16728
  Rules[:_ReferenceLink] = rule_info("ReferenceLink", "(ReferenceLinkDouble | ReferenceLinkSingle)")
16055
16729
  Rules[:_ReferenceLinkDouble] = rule_info("ReferenceLinkDouble", "Label:content < Spnl > !\"[]\" Label:label { link_to content, label, text }")
16056
16730
  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}]\" }")
16731
+ Rules[:_ExplicitLink] = rule_info("ExplicitLink", "ExplicitLinkWithLabel:a { \"{\#{a[:label]}}[\#{a[:link]}]\" }")
16732
+ Rules[:_ExplicitLinkWithLabel] = rule_info("ExplicitLinkWithLabel", "Label:label \"(\" @Sp Source:link Spnl Title @Sp \")\" { { label: label, link: link } }")
16058
16733
  Rules[:_Source] = rule_info("Source", "(\"<\" < SourceContents > \">\" | < SourceContents >) { text }")
16059
- Rules[:_SourceContents] = rule_info("SourceContents", "(((!\"(\" !\")\" !\">\" Nonspacechar)+ | \"(\" SourceContents \")\")* | \"\")")
16734
+ Rules[:_SourceContents] = rule_info("SourceContents", "((!\"(\" !\")\" !\">\" Nonspacechar)+ | \"(\" SourceContents \")\")*")
16060
16735
  Rules[:_Title] = rule_info("Title", "(TitleSingle | TitleDouble | \"\"):a { a }")
16061
16736
  Rules[:_TitleSingle] = rule_info("TitleSingle", "\"'\" (!(\"'\" @Sp (\")\" | @Newline)) .)* \"'\"")
16062
16737
  Rules[:_TitleDouble] = rule_info("TitleDouble", "\"\\\"\" (!(\"\\\"\" @Sp (\")\" | @Newline)) .)* \"\\\"\"")
@@ -16088,14 +16763,13 @@ class RDoc::Markdown
16088
16763
  Rules[:_Nonspacechar] = rule_info("Nonspacechar", "!@Spacechar !@Newline .")
16089
16764
  Rules[:_Sp] = rule_info("Sp", "@Spacechar*")
16090
16765
  Rules[:_Spnl] = rule_info("Spnl", "@Sp (@Newline @Sp)?")
16091
- Rules[:_SpecialChar] = rule_info("SpecialChar", "(/[*_`&\\[\\]()<!\#\\\\'\"]/ | @ExtendedSpecialChar)")
16766
+ Rules[:_SpecialChar] = rule_info("SpecialChar", "(/[~*_`&\\[\\]()<!\#\\\\'\"]/ | @ExtendedSpecialChar)")
16092
16767
  Rules[:_NormalChar] = rule_info("NormalChar", "!(@SpecialChar | @Spacechar | @Newline) .")
16093
16768
  Rules[:_Digit] = rule_info("Digit", "[0-9]")
16094
16769
  Rules[:_Alphanumeric] = rule_info("Alphanumeric", "%literals.Alphanumeric")
16095
16770
  Rules[:_AlphanumericAscii] = rule_info("AlphanumericAscii", "%literals.AlphanumericAscii")
16096
16771
  Rules[:_BOM] = rule_info("BOM", "%literals.BOM")
16097
16772
  Rules[:_Newline] = rule_info("Newline", "%literals.Newline")
16098
- Rules[:_NonAlphanumeric] = rule_info("NonAlphanumeric", "%literals.NonAlphanumeric")
16099
16773
  Rules[:_Spacechar] = rule_info("Spacechar", "%literals.Spacechar")
16100
16774
  Rules[:_HexEntity] = rule_info("HexEntity", "/&\#x/i < /[0-9a-fA-F]+/ > \";\" { [text.to_i(16)].pack 'U' }")
16101
16775
  Rules[:_DecEntity] = rule_info("DecEntity", "\"&\#\" < /[0-9]+/ > \";\" { [text.to_i].pack 'U' }")
@@ -16106,19 +16780,27 @@ class RDoc::Markdown
16106
16780
  Rules[:_OptionallyIndentedLine] = rule_info("OptionallyIndentedLine", "Indent? Line")
16107
16781
  Rules[:_StartList] = rule_info("StartList", "&. { [] }")
16108
16782
  Rules[:_Line] = rule_info("Line", "@RawLine:a { a }")
16109
- Rules[:_RawLine] = rule_info("RawLine", "(< (!\"\\r\" !\"\\n\" .)* @Newline > | < .+ > @Eof) { text }")
16783
+ Rules[:_RawLine] = rule_info("RawLine", "(< /[^\\r\\n]*/ @Newline > | < .+ > @Eof) { text }")
16110
16784
  Rules[:_SkipBlock] = rule_info("SkipBlock", "(HtmlBlock | (!\"\#\" !SetextBottom1 !SetextBottom2 !@BlankLine @RawLine)+ @BlankLine* | @BlankLine+ | @RawLine)")
16111
16785
  Rules[:_ExtendedSpecialChar] = rule_info("ExtendedSpecialChar", "&{ notes? } \"^\"")
16112
16786
  Rules[:_NoteReference] = rule_info("NoteReference", "&{ notes? } RawNoteReference:ref { note_for ref }")
16113
16787
  Rules[:_RawNoteReference] = rule_info("RawNoteReference", "\"[^\" < (!@Newline !\"]\" .)+ > \"]\" { text }")
16114
16788
  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 }")
16789
+ 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
16790
  Rules[:_Notes] = rule_info("Notes", "(Note | SkipBlock)*")
16117
- 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 }")
16791
+ Rules[:_RawNoteBlock] = rule_info("RawNoteBlock", "@StartList:a (!@BlankLine !RawNoteReference OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }")
16792
+ 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 }")
16793
+ Rules[:_Table] = rule_info("Table", "&{ github? } TableHead:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) }")
16794
+ Rules[:_TableHead] = rule_info("TableHead", "TableItem2+:items \"|\"? @Newline { items }")
16795
+ Rules[:_TableRow] = rule_info("TableRow", "((TableItem:item1 TableItem2*:items { [item1, *items] }):row | TableItem2+:row) \"|\"? @Newline { row }")
16796
+ Rules[:_TableItem2] = rule_info("TableItem2", "\"|\" TableItem")
16797
+ Rules[:_TableItem] = rule_info("TableItem", "< /(?:\\\\.|[^|\\n])+/ > { text.strip.gsub(/\\\\(.)/, '\\1') }")
16798
+ Rules[:_TableLine] = rule_info("TableLine", "((TableAlign:align1 TableAlign2*:aligns {[align1, *aligns] }):line | TableAlign2+:line) \"|\"? @Newline { line }")
16799
+ Rules[:_TableAlign2] = rule_info("TableAlign2", "\"|\" @Sp TableAlign")
16800
+ Rules[:_TableAlign] = rule_info("TableAlign", "< /:?-+:?/ > @Sp { text.start_with?(\":\") ? (text.end_with?(\":\") ? :center : :left) : (text.end_with?(\":\") ? :right : nil) }")
16119
16801
  Rules[:_DefinitionList] = rule_info("DefinitionList", "&{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }")
16120
16802
  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
- Rules[:_DefinitionListLabel] = rule_info("DefinitionListLabel", "StrChunk:label @Sp @Newline { label }")
16803
+ Rules[:_DefinitionListLabel] = rule_info("DefinitionListLabel", "Inline:label @Sp @Newline { label }")
16122
16804
  Rules[:_DefinitionListDefinition] = rule_info("DefinitionListDefinition", "@NonindentSpace \":\" @Space Inlines:a @BlankLine+ { paragraph a }")
16123
16805
  # :startdoc:
16124
16806
  end