rdoc 6.1.2.1 → 6.3.3

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

Potentially problematic release.


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

Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -0
  3. data/README.rdoc +0 -1
  4. data/Rakefile +28 -18
  5. data/lib/rdoc/any_method.rb +52 -7
  6. data/lib/rdoc/class_module.rb +1 -1
  7. data/lib/rdoc/comment.rb +12 -1
  8. data/lib/rdoc/context/section.rb +0 -13
  9. data/lib/rdoc/context.rb +10 -2
  10. data/lib/rdoc/cross_reference.rb +4 -4
  11. data/lib/rdoc/erb_partial.rb +1 -1
  12. data/lib/rdoc/erbio.rb +2 -2
  13. data/lib/rdoc/generator/darkfish.rb +9 -9
  14. data/lib/rdoc/generator/pot.rb +3 -3
  15. data/lib/rdoc/generator/template/darkfish/_head.rhtml +4 -5
  16. data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +2 -2
  17. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +2 -2
  18. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
  19. data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +2 -2
  20. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
  21. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
  22. data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +5 -5
  23. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +5 -5
  24. data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +5 -5
  25. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
  26. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +4 -4
  27. data/lib/rdoc/generator/template/darkfish/class.rhtml +44 -44
  28. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +33 -5
  29. data/lib/rdoc/generator/template/darkfish/index.rhtml +3 -4
  30. data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +15 -16
  31. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +16 -16
  32. data/lib/rdoc/i18n.rb +1 -1
  33. data/lib/rdoc/markdown/literals.rb +7 -8
  34. data/lib/rdoc/markdown.kpeg +20 -2
  35. data/lib/rdoc/markdown.rb +458 -61
  36. data/lib/rdoc/markup/attr_span.rb +8 -2
  37. data/lib/rdoc/markup/attribute_manager.rb +93 -28
  38. data/lib/rdoc/markup/formatter.rb +1 -1
  39. data/lib/rdoc/markup/parser.rb +58 -42
  40. data/lib/rdoc/markup/pre_process.rb +1 -1
  41. data/lib/rdoc/markup/table.rb +47 -0
  42. data/lib/rdoc/markup/to_html.rb +46 -6
  43. data/lib/rdoc/markup/to_html_crossref.rb +18 -6
  44. data/lib/rdoc/markup/to_joined_paragraph.rb +1 -0
  45. data/lib/rdoc/markup/to_rdoc.rb +28 -0
  46. data/lib/rdoc/markup/to_table_of_contents.rb +1 -0
  47. data/lib/rdoc/markup.rb +1 -2
  48. data/lib/rdoc/options.rb +56 -6
  49. data/lib/rdoc/parser/c.rb +139 -183
  50. data/lib/rdoc/parser/changelog.rb +145 -14
  51. data/lib/rdoc/parser/ripper_state_lex.rb +2 -1
  52. data/lib/rdoc/parser/ruby.rb +18 -8
  53. data/lib/rdoc/parser.rb +7 -7
  54. data/lib/rdoc/rdoc.rb +34 -21
  55. data/lib/rdoc/ri/driver.rb +9 -5
  56. data/lib/rdoc/ri/paths.rb +3 -17
  57. data/lib/rdoc/ri/task.rb +1 -1
  58. data/lib/rdoc/rubygems_hook.rb +2 -2
  59. data/lib/rdoc/servlet.rb +16 -8
  60. data/lib/rdoc/store.rb +6 -14
  61. data/lib/rdoc/task.rb +1 -1
  62. data/lib/rdoc/text.rb +8 -2
  63. data/lib/rdoc/token_stream.rb +8 -3
  64. data/lib/rdoc/tom_doc.rb +6 -7
  65. data/lib/rdoc/version.rb +1 -1
  66. data/lib/rdoc.rb +21 -0
  67. data/man/ri.1 +247 -0
  68. data/rdoc.gemspec +196 -9
  69. metadata +7 -67
  70. data/.document +0 -5
  71. data/.gitignore +0 -14
  72. data/.travis.yml +0 -21
  73. data/appveyor.yml +0 -36
  74. data/lib/rdoc/markup/formatter_test_case.rb +0 -764
  75. data/lib/rdoc/markup/text_formatter_test_case.rb +0 -115
data/lib/rdoc/markdown.rb CHANGED
@@ -173,7 +173,7 @@
173
173
  # The port to kpeg was performed by Eric Hodel and Evan Phoenix
174
174
  #
175
175
  # [dingus]: http://daringfireball.net/projects/markdown/dingus
176
- # [GFM]: http://github.github.com/github-flavored-markdown/
176
+ # [GFM]: https://github.github.com/gfm/
177
177
  # [pegmarkdown]: https://github.com/jgm/peg-markdown
178
178
  # [PHPE]: http://michelf.com/projects/php-markdown/extra/#def-list
179
179
  # [syntax]: http://daringfireball.net/projects/markdown/syntax
@@ -344,9 +344,8 @@ class RDoc::Markdown
344
344
  end
345
345
 
346
346
  def scan(reg)
347
- if m = reg.match(@string[@pos..-1])
348
- width = m.end(0)
349
- @pos += width
347
+ if m = reg.match(@string, @pos)
348
+ @pos = m.end(0)
350
349
  return true
351
350
  end
352
351
 
@@ -897,7 +896,7 @@ class RDoc::Markdown
897
896
  return _tmp
898
897
  end
899
898
 
900
- # Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)
899
+ # Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Table | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)
901
900
  def _Block
902
901
 
903
902
  _save = self.pos
@@ -923,6 +922,9 @@ class RDoc::Markdown
923
922
  _tmp = apply(:_CodeFence)
924
923
  break if _tmp
925
924
  self.pos = _save2
925
+ _tmp = apply(:_Table)
926
+ break if _tmp
927
+ self.pos = _save2
926
928
  _tmp = apply(:_Note)
927
929
  break if _tmp
928
930
  self.pos = _save2
@@ -1057,7 +1059,7 @@ class RDoc::Markdown
1057
1059
  self.pos = _save3
1058
1060
  break
1059
1061
  end
1060
- _tmp = scan(/\A(?-mix:#*)/)
1062
+ _tmp = scan(/\G(?-mix:#*)/)
1061
1063
  unless _tmp
1062
1064
  self.pos = _save3
1063
1065
  break
@@ -1097,7 +1099,7 @@ class RDoc::Markdown
1097
1099
  _save = self.pos
1098
1100
  while true # sequence
1099
1101
  _text_start = self.pos
1100
- _tmp = scan(/\A(?-mix:\#{1,6})/)
1102
+ _tmp = scan(/\G(?-mix:\#{1,6})/)
1101
1103
  if _tmp
1102
1104
  text = get_text(_text_start)
1103
1105
  end
@@ -1162,7 +1164,7 @@ class RDoc::Markdown
1162
1164
  self.pos = _save3
1163
1165
  break
1164
1166
  end
1165
- _tmp = scan(/\A(?-mix:#*)/)
1167
+ _tmp = scan(/\G(?-mix:#*)/)
1166
1168
  unless _tmp
1167
1169
  self.pos = _save3
1168
1170
  break
@@ -1222,7 +1224,7 @@ class RDoc::Markdown
1222
1224
 
1223
1225
  _save = self.pos
1224
1226
  while true # sequence
1225
- _tmp = scan(/\A(?-mix:={1,})/)
1227
+ _tmp = scan(/\G(?-mix:={1,})/)
1226
1228
  unless _tmp
1227
1229
  self.pos = _save
1228
1230
  break
@@ -1243,7 +1245,7 @@ class RDoc::Markdown
1243
1245
 
1244
1246
  _save = self.pos
1245
1247
  while true # sequence
1246
- _tmp = scan(/\A(?-mix:-{1,})/)
1248
+ _tmp = scan(/\G(?-mix:-{1,})/)
1247
1249
  unless _tmp
1248
1250
  self.pos = _save
1249
1251
  break
@@ -2127,7 +2129,7 @@ class RDoc::Markdown
2127
2129
  self.pos = _save
2128
2130
  break
2129
2131
  end
2130
- _tmp = scan(/\A(?-mix:[+*-])/)
2132
+ _tmp = scan(/\G(?-mix:[+*-])/)
2131
2133
  unless _tmp
2132
2134
  self.pos = _save
2133
2135
  break
@@ -9320,7 +9322,7 @@ class RDoc::Markdown
9320
9322
  return _tmp
9321
9323
  end
9322
9324
 
9323
- # Inlines = (!@Endline Inline:i { i } | @Endline:c &Inline { c })+:chunks @Endline? { chunks }
9325
+ # Inlines = (!@Endline Inline:i { i } | @Endline:c !(&{ github? } Ticks3 /[^`\n]*$/) &Inline { c })+:chunks @Endline? { chunks }
9324
9326
  def _Inlines
9325
9327
 
9326
9328
  _save = self.pos
@@ -9367,12 +9369,41 @@ class RDoc::Markdown
9367
9369
  break
9368
9370
  end
9369
9371
  _save6 = self.pos
9370
- _tmp = apply(:_Inline)
9372
+
9373
+ _save7 = self.pos
9374
+ while true # sequence
9375
+ _save8 = self.pos
9376
+ _tmp = begin; github? ; end
9377
+ self.pos = _save8
9378
+ unless _tmp
9379
+ self.pos = _save7
9380
+ break
9381
+ end
9382
+ _tmp = apply(:_Ticks3)
9383
+ unless _tmp
9384
+ self.pos = _save7
9385
+ break
9386
+ end
9387
+ _tmp = scan(/\G(?-mix:[^`\n]*$)/)
9388
+ unless _tmp
9389
+ self.pos = _save7
9390
+ end
9391
+ break
9392
+ end # end sequence
9393
+
9394
+ _tmp = _tmp ? nil : true
9371
9395
  self.pos = _save6
9372
9396
  unless _tmp
9373
9397
  self.pos = _save5
9374
9398
  break
9375
9399
  end
9400
+ _save9 = self.pos
9401
+ _tmp = apply(:_Inline)
9402
+ self.pos = _save9
9403
+ unless _tmp
9404
+ self.pos = _save5
9405
+ break
9406
+ end
9376
9407
  @result = begin; c ; end
9377
9408
  _tmp = true
9378
9409
  unless _tmp
@@ -9390,61 +9421,90 @@ class RDoc::Markdown
9390
9421
  _ary << @result
9391
9422
  while true
9392
9423
 
9393
- _save7 = self.pos
9424
+ _save10 = self.pos
9394
9425
  while true # choice
9395
9426
 
9396
- _save8 = self.pos
9427
+ _save11 = self.pos
9397
9428
  while true # sequence
9398
- _save9 = self.pos
9429
+ _save12 = self.pos
9399
9430
  _tmp = _Endline()
9400
9431
  _tmp = _tmp ? nil : true
9401
- self.pos = _save9
9432
+ self.pos = _save12
9402
9433
  unless _tmp
9403
- self.pos = _save8
9434
+ self.pos = _save11
9404
9435
  break
9405
9436
  end
9406
9437
  _tmp = apply(:_Inline)
9407
9438
  i = @result
9408
9439
  unless _tmp
9409
- self.pos = _save8
9440
+ self.pos = _save11
9410
9441
  break
9411
9442
  end
9412
9443
  @result = begin; i ; end
9413
9444
  _tmp = true
9414
9445
  unless _tmp
9415
- self.pos = _save8
9446
+ self.pos = _save11
9416
9447
  end
9417
9448
  break
9418
9449
  end # end sequence
9419
9450
 
9420
9451
  break if _tmp
9421
- self.pos = _save7
9452
+ self.pos = _save10
9422
9453
 
9423
- _save10 = self.pos
9454
+ _save13 = self.pos
9424
9455
  while true # sequence
9425
9456
  _tmp = _Endline()
9426
9457
  c = @result
9427
9458
  unless _tmp
9428
- self.pos = _save10
9459
+ self.pos = _save13
9429
9460
  break
9430
9461
  end
9431
- _save11 = self.pos
9462
+ _save14 = self.pos
9463
+
9464
+ _save15 = self.pos
9465
+ while true # sequence
9466
+ _save16 = self.pos
9467
+ _tmp = begin; github? ; end
9468
+ self.pos = _save16
9469
+ unless _tmp
9470
+ self.pos = _save15
9471
+ break
9472
+ end
9473
+ _tmp = apply(:_Ticks3)
9474
+ unless _tmp
9475
+ self.pos = _save15
9476
+ break
9477
+ end
9478
+ _tmp = scan(/\G(?-mix:[^`\n]*$)/)
9479
+ unless _tmp
9480
+ self.pos = _save15
9481
+ end
9482
+ break
9483
+ end # end sequence
9484
+
9485
+ _tmp = _tmp ? nil : true
9486
+ self.pos = _save14
9487
+ unless _tmp
9488
+ self.pos = _save13
9489
+ break
9490
+ end
9491
+ _save17 = self.pos
9432
9492
  _tmp = apply(:_Inline)
9433
- self.pos = _save11
9493
+ self.pos = _save17
9434
9494
  unless _tmp
9435
- self.pos = _save10
9495
+ self.pos = _save13
9436
9496
  break
9437
9497
  end
9438
9498
  @result = begin; c ; end
9439
9499
  _tmp = true
9440
9500
  unless _tmp
9441
- self.pos = _save10
9501
+ self.pos = _save13
9442
9502
  end
9443
9503
  break
9444
9504
  end # end sequence
9445
9505
 
9446
9506
  break if _tmp
9447
- self.pos = _save7
9507
+ self.pos = _save10
9448
9508
  break
9449
9509
  end # end choice
9450
9510
 
@@ -9461,11 +9521,11 @@ class RDoc::Markdown
9461
9521
  self.pos = _save
9462
9522
  break
9463
9523
  end
9464
- _save12 = self.pos
9524
+ _save18 = self.pos
9465
9525
  _tmp = _Endline()
9466
9526
  unless _tmp
9467
9527
  _tmp = true
9468
- self.pos = _save12
9528
+ self.pos = _save18
9469
9529
  end
9470
9530
  unless _tmp
9471
9531
  self.pos = _save
@@ -9664,7 +9724,7 @@ class RDoc::Markdown
9664
9724
 
9665
9725
  _save3 = self.pos
9666
9726
  while true # sequence
9667
- _tmp = scan(/\A(?-mix:_+)/)
9727
+ _tmp = scan(/\G(?-mix:_+)/)
9668
9728
  unless _tmp
9669
9729
  self.pos = _save3
9670
9730
  break
@@ -9694,7 +9754,7 @@ class RDoc::Markdown
9694
9754
 
9695
9755
  _save6 = self.pos
9696
9756
  while true # sequence
9697
- _tmp = scan(/\A(?-mix:_+)/)
9757
+ _tmp = scan(/\G(?-mix:_+)/)
9698
9758
  unless _tmp
9699
9759
  self.pos = _save6
9700
9760
  break
@@ -9757,7 +9817,7 @@ class RDoc::Markdown
9757
9817
  break
9758
9818
  end
9759
9819
  _text_start = self.pos
9760
- _tmp = scan(/\A(?-mix:[:\\`|*_{}\[\]()#+.!><-])/)
9820
+ _tmp = scan(/\G(?-mix:[:\\`|*_{}\[\]()#+.!><-])/)
9761
9821
  if _tmp
9762
9822
  text = get_text(_text_start)
9763
9823
  end
@@ -9883,7 +9943,7 @@ class RDoc::Markdown
9883
9943
  self.pos = _save5
9884
9944
  break
9885
9945
  end
9886
- _tmp = scan(/\A(?-mix:={1,}|-{1,})/)
9946
+ _tmp = scan(/\G(?-mix:={1,}|-{1,})/)
9887
9947
  unless _tmp
9888
9948
  self.pos = _save5
9889
9949
  break
@@ -10035,7 +10095,7 @@ class RDoc::Markdown
10035
10095
  _save1 = self.pos
10036
10096
  while true # sequence
10037
10097
  _text_start = self.pos
10038
- _tmp = scan(/\A(?-mix:\*{4,})/)
10098
+ _tmp = scan(/\G(?-mix:\*{4,})/)
10039
10099
  if _tmp
10040
10100
  text = get_text(_text_start)
10041
10101
  end
@@ -10065,7 +10125,7 @@ class RDoc::Markdown
10065
10125
  self.pos = _save3
10066
10126
  break
10067
10127
  end
10068
- _tmp = scan(/\A(?-mix:\*+)/)
10128
+ _tmp = scan(/\G(?-mix:\*+)/)
10069
10129
  unless _tmp
10070
10130
  self.pos = _save3
10071
10131
  break
@@ -10112,7 +10172,7 @@ class RDoc::Markdown
10112
10172
  _save1 = self.pos
10113
10173
  while true # sequence
10114
10174
  _text_start = self.pos
10115
- _tmp = scan(/\A(?-mix:_{4,})/)
10175
+ _tmp = scan(/\G(?-mix:_{4,})/)
10116
10176
  if _tmp
10117
10177
  text = get_text(_text_start)
10118
10178
  end
@@ -10142,7 +10202,7 @@ class RDoc::Markdown
10142
10202
  self.pos = _save3
10143
10203
  break
10144
10204
  end
10145
- _tmp = scan(/\A(?-mix:_+)/)
10205
+ _tmp = scan(/\G(?-mix:_+)/)
10146
10206
  unless _tmp
10147
10207
  self.pos = _save3
10148
10208
  break
@@ -11503,7 +11563,7 @@ class RDoc::Markdown
11503
11563
 
11504
11564
  _save1 = self.pos
11505
11565
  while true # sequence
11506
- _tmp = scan(/\A(?-mix:[A-Za-z]+)/)
11566
+ _tmp = scan(/\G(?-mix:[A-Za-z]+)/)
11507
11567
  unless _tmp
11508
11568
  self.pos = _save1
11509
11569
  break
@@ -11628,7 +11688,7 @@ class RDoc::Markdown
11628
11688
 
11629
11689
  _save2 = self.pos
11630
11690
  while true # sequence
11631
- _tmp = scan(/\A(?i-mx:[\w+.\/!%~$-]+)/)
11691
+ _tmp = scan(/\G(?i-mx:[\w+.\/!%~$-]+)/)
11632
11692
  unless _tmp
11633
11693
  self.pos = _save2
11634
11694
  break
@@ -12492,7 +12552,7 @@ class RDoc::Markdown
12492
12552
  self.pos = _save10
12493
12553
  break
12494
12554
  end
12495
- _tmp = scan(/\A(?-mix:`+)/)
12555
+ _tmp = scan(/\G(?-mix:`+)/)
12496
12556
  unless _tmp
12497
12557
  self.pos = _save10
12498
12558
  end
@@ -12629,7 +12689,7 @@ class RDoc::Markdown
12629
12689
  self.pos = _save24
12630
12690
  break
12631
12691
  end
12632
- _tmp = scan(/\A(?-mix:`+)/)
12692
+ _tmp = scan(/\G(?-mix:`+)/)
12633
12693
  unless _tmp
12634
12694
  self.pos = _save24
12635
12695
  end
@@ -12806,7 +12866,7 @@ class RDoc::Markdown
12806
12866
  self.pos = _save40
12807
12867
  break
12808
12868
  end
12809
- _tmp = scan(/\A(?-mix:`+)/)
12869
+ _tmp = scan(/\G(?-mix:`+)/)
12810
12870
  unless _tmp
12811
12871
  self.pos = _save40
12812
12872
  end
@@ -12943,7 +13003,7 @@ class RDoc::Markdown
12943
13003
  self.pos = _save54
12944
13004
  break
12945
13005
  end
12946
- _tmp = scan(/\A(?-mix:`+)/)
13006
+ _tmp = scan(/\G(?-mix:`+)/)
12947
13007
  unless _tmp
12948
13008
  self.pos = _save54
12949
13009
  end
@@ -13120,7 +13180,7 @@ class RDoc::Markdown
13120
13180
  self.pos = _save70
13121
13181
  break
13122
13182
  end
13123
- _tmp = scan(/\A(?-mix:`+)/)
13183
+ _tmp = scan(/\G(?-mix:`+)/)
13124
13184
  unless _tmp
13125
13185
  self.pos = _save70
13126
13186
  end
@@ -13257,7 +13317,7 @@ class RDoc::Markdown
13257
13317
  self.pos = _save84
13258
13318
  break
13259
13319
  end
13260
- _tmp = scan(/\A(?-mix:`+)/)
13320
+ _tmp = scan(/\G(?-mix:`+)/)
13261
13321
  unless _tmp
13262
13322
  self.pos = _save84
13263
13323
  end
@@ -13434,7 +13494,7 @@ class RDoc::Markdown
13434
13494
  self.pos = _save100
13435
13495
  break
13436
13496
  end
13437
- _tmp = scan(/\A(?-mix:`+)/)
13497
+ _tmp = scan(/\G(?-mix:`+)/)
13438
13498
  unless _tmp
13439
13499
  self.pos = _save100
13440
13500
  end
@@ -13571,7 +13631,7 @@ class RDoc::Markdown
13571
13631
  self.pos = _save114
13572
13632
  break
13573
13633
  end
13574
- _tmp = scan(/\A(?-mix:`+)/)
13634
+ _tmp = scan(/\G(?-mix:`+)/)
13575
13635
  unless _tmp
13576
13636
  self.pos = _save114
13577
13637
  end
@@ -13748,7 +13808,7 @@ class RDoc::Markdown
13748
13808
  self.pos = _save130
13749
13809
  break
13750
13810
  end
13751
- _tmp = scan(/\A(?-mix:`+)/)
13811
+ _tmp = scan(/\G(?-mix:`+)/)
13752
13812
  unless _tmp
13753
13813
  self.pos = _save130
13754
13814
  end
@@ -13885,7 +13945,7 @@ class RDoc::Markdown
13885
13945
  self.pos = _save144
13886
13946
  break
13887
13947
  end
13888
- _tmp = scan(/\A(?-mix:`+)/)
13948
+ _tmp = scan(/\G(?-mix:`+)/)
13889
13949
  unless _tmp
13890
13950
  self.pos = _save144
13891
13951
  end
@@ -14537,7 +14597,7 @@ class RDoc::Markdown
14537
14597
 
14538
14598
  _save = self.pos
14539
14599
  while true # choice
14540
- _tmp = scan(/\A(?-mix:[~*_`&\[\]()<!#\\'"])/)
14600
+ _tmp = scan(/\G(?-mix:[~*_`&\[\]()<!#\\'"])/)
14541
14601
  break if _tmp
14542
14602
  self.pos = _save
14543
14603
  _tmp = _ExtendedSpecialChar()
@@ -14642,13 +14702,13 @@ class RDoc::Markdown
14642
14702
 
14643
14703
  _save = self.pos
14644
14704
  while true # sequence
14645
- _tmp = scan(/\A(?i-mx:&#x)/)
14705
+ _tmp = scan(/\G(?i-mx:&#x)/)
14646
14706
  unless _tmp
14647
14707
  self.pos = _save
14648
14708
  break
14649
14709
  end
14650
14710
  _text_start = self.pos
14651
- _tmp = scan(/\A(?-mix:[0-9a-fA-F]+)/)
14711
+ _tmp = scan(/\G(?-mix:[0-9a-fA-F]+)/)
14652
14712
  if _tmp
14653
14713
  text = get_text(_text_start)
14654
14714
  end
@@ -14684,7 +14744,7 @@ class RDoc::Markdown
14684
14744
  break
14685
14745
  end
14686
14746
  _text_start = self.pos
14687
- _tmp = scan(/\A(?-mix:[0-9]+)/)
14747
+ _tmp = scan(/\G(?-mix:[0-9]+)/)
14688
14748
  if _tmp
14689
14749
  text = get_text(_text_start)
14690
14750
  end
@@ -14720,7 +14780,7 @@ class RDoc::Markdown
14720
14780
  break
14721
14781
  end
14722
14782
  _text_start = self.pos
14723
- _tmp = scan(/\A(?-mix:[A-Za-z0-9]+)/)
14783
+ _tmp = scan(/\G(?-mix:[A-Za-z0-9]+)/)
14724
14784
  if _tmp
14725
14785
  text = get_text(_text_start)
14726
14786
  end
@@ -14752,14 +14812,14 @@ class RDoc::Markdown
14752
14812
 
14753
14813
  # NonindentSpace = / {0,3}/
14754
14814
  def _NonindentSpace
14755
- _tmp = scan(/\A(?-mix: {0,3})/)
14815
+ _tmp = scan(/\G(?-mix: {0,3})/)
14756
14816
  set_failed_rule :_NonindentSpace unless _tmp
14757
14817
  return _tmp
14758
14818
  end
14759
14819
 
14760
14820
  # Indent = /\t| /
14761
14821
  def _Indent
14762
- _tmp = scan(/\A(?-mix:\t| )/)
14822
+ _tmp = scan(/\G(?-mix:\t| )/)
14763
14823
  set_failed_rule :_Indent unless _tmp
14764
14824
  return _tmp
14765
14825
  end
@@ -15701,7 +15761,7 @@ class RDoc::Markdown
15701
15761
  self.pos = _save11
15702
15762
  break
15703
15763
  end
15704
- _tmp = scan(/\A(?-mix:`+)/)
15764
+ _tmp = scan(/\G(?-mix:`+)/)
15705
15765
  unless _tmp
15706
15766
  self.pos = _save11
15707
15767
  end
@@ -15782,7 +15842,7 @@ class RDoc::Markdown
15782
15842
  self.pos = _save19
15783
15843
  break
15784
15844
  end
15785
- _tmp = scan(/\A(?-mix:`+)/)
15845
+ _tmp = scan(/\G(?-mix:`+)/)
15786
15846
  unless _tmp
15787
15847
  self.pos = _save19
15788
15848
  end
@@ -15847,6 +15907,338 @@ class RDoc::Markdown
15847
15907
  return _tmp
15848
15908
  end
15849
15909
 
15910
+ # Table = &{ github? } TableRow:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) }
15911
+ def _Table
15912
+
15913
+ _save = self.pos
15914
+ while true # sequence
15915
+ _save1 = self.pos
15916
+ _tmp = begin; github? ; end
15917
+ self.pos = _save1
15918
+ unless _tmp
15919
+ self.pos = _save
15920
+ break
15921
+ end
15922
+ _tmp = apply(:_TableRow)
15923
+ header = @result
15924
+ unless _tmp
15925
+ self.pos = _save
15926
+ break
15927
+ end
15928
+ _tmp = apply(:_TableLine)
15929
+ line = @result
15930
+ unless _tmp
15931
+ self.pos = _save
15932
+ break
15933
+ end
15934
+ _save2 = self.pos
15935
+ _ary = []
15936
+ _tmp = apply(:_TableRow)
15937
+ if _tmp
15938
+ _ary << @result
15939
+ while true
15940
+ _tmp = apply(:_TableRow)
15941
+ _ary << @result if _tmp
15942
+ break unless _tmp
15943
+ end
15944
+ _tmp = true
15945
+ @result = _ary
15946
+ else
15947
+ self.pos = _save2
15948
+ end
15949
+ body = @result
15950
+ unless _tmp
15951
+ self.pos = _save
15952
+ break
15953
+ end
15954
+ @result = begin; table = RDoc::Markup::Table.new(header, line, body) ; end
15955
+ _tmp = true
15956
+ unless _tmp
15957
+ self.pos = _save
15958
+ end
15959
+ break
15960
+ end # end sequence
15961
+
15962
+ set_failed_rule :_Table unless _tmp
15963
+ return _tmp
15964
+ end
15965
+
15966
+ # TableRow = TableItem+:row "|" @Newline { row }
15967
+ def _TableRow
15968
+
15969
+ _save = self.pos
15970
+ while true # sequence
15971
+ _save1 = self.pos
15972
+ _ary = []
15973
+ _tmp = apply(:_TableItem)
15974
+ if _tmp
15975
+ _ary << @result
15976
+ while true
15977
+ _tmp = apply(:_TableItem)
15978
+ _ary << @result if _tmp
15979
+ break unless _tmp
15980
+ end
15981
+ _tmp = true
15982
+ @result = _ary
15983
+ else
15984
+ self.pos = _save1
15985
+ end
15986
+ row = @result
15987
+ unless _tmp
15988
+ self.pos = _save
15989
+ break
15990
+ end
15991
+ _tmp = match_string("|")
15992
+ unless _tmp
15993
+ self.pos = _save
15994
+ break
15995
+ end
15996
+ _tmp = _Newline()
15997
+ unless _tmp
15998
+ self.pos = _save
15999
+ break
16000
+ end
16001
+ @result = begin; row ; end
16002
+ _tmp = true
16003
+ unless _tmp
16004
+ self.pos = _save
16005
+ end
16006
+ break
16007
+ end # end sequence
16008
+
16009
+ set_failed_rule :_TableRow unless _tmp
16010
+ return _tmp
16011
+ end
16012
+
16013
+ # TableItem = "|" < (!"|" !@Newline .)+ > { text.strip }
16014
+ def _TableItem
16015
+
16016
+ _save = self.pos
16017
+ while true # sequence
16018
+ _tmp = match_string("|")
16019
+ unless _tmp
16020
+ self.pos = _save
16021
+ break
16022
+ end
16023
+ _text_start = self.pos
16024
+ _save1 = self.pos
16025
+
16026
+ _save2 = self.pos
16027
+ while true # sequence
16028
+ _save3 = self.pos
16029
+ _tmp = match_string("|")
16030
+ _tmp = _tmp ? nil : true
16031
+ self.pos = _save3
16032
+ unless _tmp
16033
+ self.pos = _save2
16034
+ break
16035
+ end
16036
+ _save4 = self.pos
16037
+ _tmp = _Newline()
16038
+ _tmp = _tmp ? nil : true
16039
+ self.pos = _save4
16040
+ unless _tmp
16041
+ self.pos = _save2
16042
+ break
16043
+ end
16044
+ _tmp = get_byte
16045
+ unless _tmp
16046
+ self.pos = _save2
16047
+ end
16048
+ break
16049
+ end # end sequence
16050
+
16051
+ if _tmp
16052
+ while true
16053
+
16054
+ _save5 = self.pos
16055
+ while true # sequence
16056
+ _save6 = self.pos
16057
+ _tmp = match_string("|")
16058
+ _tmp = _tmp ? nil : true
16059
+ self.pos = _save6
16060
+ unless _tmp
16061
+ self.pos = _save5
16062
+ break
16063
+ end
16064
+ _save7 = self.pos
16065
+ _tmp = _Newline()
16066
+ _tmp = _tmp ? nil : true
16067
+ self.pos = _save7
16068
+ unless _tmp
16069
+ self.pos = _save5
16070
+ break
16071
+ end
16072
+ _tmp = get_byte
16073
+ unless _tmp
16074
+ self.pos = _save5
16075
+ end
16076
+ break
16077
+ end # end sequence
16078
+
16079
+ break unless _tmp
16080
+ end
16081
+ _tmp = true
16082
+ else
16083
+ self.pos = _save1
16084
+ end
16085
+ if _tmp
16086
+ text = get_text(_text_start)
16087
+ end
16088
+ unless _tmp
16089
+ self.pos = _save
16090
+ break
16091
+ end
16092
+ @result = begin; text.strip ; end
16093
+ _tmp = true
16094
+ unless _tmp
16095
+ self.pos = _save
16096
+ end
16097
+ break
16098
+ end # end sequence
16099
+
16100
+ set_failed_rule :_TableItem unless _tmp
16101
+ return _tmp
16102
+ end
16103
+
16104
+ # TableLine = TableColumn+:line "|" @Newline { line }
16105
+ def _TableLine
16106
+
16107
+ _save = self.pos
16108
+ while true # sequence
16109
+ _save1 = self.pos
16110
+ _ary = []
16111
+ _tmp = apply(:_TableColumn)
16112
+ if _tmp
16113
+ _ary << @result
16114
+ while true
16115
+ _tmp = apply(:_TableColumn)
16116
+ _ary << @result if _tmp
16117
+ break unless _tmp
16118
+ end
16119
+ _tmp = true
16120
+ @result = _ary
16121
+ else
16122
+ self.pos = _save1
16123
+ end
16124
+ line = @result
16125
+ unless _tmp
16126
+ self.pos = _save
16127
+ break
16128
+ end
16129
+ _tmp = match_string("|")
16130
+ unless _tmp
16131
+ self.pos = _save
16132
+ break
16133
+ end
16134
+ _tmp = _Newline()
16135
+ unless _tmp
16136
+ self.pos = _save
16137
+ break
16138
+ end
16139
+ @result = begin; line ; end
16140
+ _tmp = true
16141
+ unless _tmp
16142
+ self.pos = _save
16143
+ end
16144
+ break
16145
+ end # end sequence
16146
+
16147
+ set_failed_rule :_TableLine unless _tmp
16148
+ return _tmp
16149
+ end
16150
+
16151
+ # TableColumn = "|" < ("-"+ ":"? | ":" "-"*) > { text.start_with?(":") ? :left : text.end_with?(":") ? :right : nil }
16152
+ def _TableColumn
16153
+
16154
+ _save = self.pos
16155
+ while true # sequence
16156
+ _tmp = match_string("|")
16157
+ unless _tmp
16158
+ self.pos = _save
16159
+ break
16160
+ end
16161
+ _text_start = self.pos
16162
+
16163
+ _save1 = self.pos
16164
+ while true # choice
16165
+
16166
+ _save2 = self.pos
16167
+ while true # sequence
16168
+ _save3 = self.pos
16169
+ _tmp = match_string("-")
16170
+ if _tmp
16171
+ while true
16172
+ _tmp = match_string("-")
16173
+ break unless _tmp
16174
+ end
16175
+ _tmp = true
16176
+ else
16177
+ self.pos = _save3
16178
+ end
16179
+ unless _tmp
16180
+ self.pos = _save2
16181
+ break
16182
+ end
16183
+ _save4 = self.pos
16184
+ _tmp = match_string(":")
16185
+ unless _tmp
16186
+ _tmp = true
16187
+ self.pos = _save4
16188
+ end
16189
+ unless _tmp
16190
+ self.pos = _save2
16191
+ end
16192
+ break
16193
+ end # end sequence
16194
+
16195
+ break if _tmp
16196
+ self.pos = _save1
16197
+
16198
+ _save5 = self.pos
16199
+ while true # sequence
16200
+ _tmp = match_string(":")
16201
+ unless _tmp
16202
+ self.pos = _save5
16203
+ break
16204
+ end
16205
+ while true
16206
+ _tmp = match_string("-")
16207
+ break unless _tmp
16208
+ end
16209
+ _tmp = true
16210
+ unless _tmp
16211
+ self.pos = _save5
16212
+ end
16213
+ break
16214
+ end # end sequence
16215
+
16216
+ break if _tmp
16217
+ self.pos = _save1
16218
+ break
16219
+ end # end choice
16220
+
16221
+ if _tmp
16222
+ text = get_text(_text_start)
16223
+ end
16224
+ unless _tmp
16225
+ self.pos = _save
16226
+ break
16227
+ end
16228
+ @result = begin; text.start_with?(":") ? :left :
16229
+ text.end_with?(":") ? :right : nil
16230
+ ; end
16231
+ _tmp = true
16232
+ unless _tmp
16233
+ self.pos = _save
16234
+ end
16235
+ break
16236
+ end # end sequence
16237
+
16238
+ set_failed_rule :_TableColumn unless _tmp
16239
+ return _tmp
16240
+ end
16241
+
15850
16242
  # DefinitionList = &{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }
15851
16243
  def _DefinitionList
15852
16244
 
@@ -16046,7 +16438,7 @@ class RDoc::Markdown
16046
16438
  Rules = {}
16047
16439
  Rules[:_root] = rule_info("root", "Doc")
16048
16440
  Rules[:_Doc] = rule_info("Doc", "BOM? Block*:a { RDoc::Markup::Document.new(*a.compact) }")
16049
- Rules[:_Block] = rule_info("Block", "@BlankLine* (BlockQuote | Verbatim | CodeFence | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)")
16441
+ Rules[:_Block] = rule_info("Block", "@BlankLine* (BlockQuote | Verbatim | CodeFence | Table | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)")
16050
16442
  Rules[:_Para] = rule_info("Para", "@NonindentSpace Inlines:a @BlankLine+ { paragraph a }")
16051
16443
  Rules[:_Plain] = rule_info("Plain", "Inlines:a { paragraph a }")
16052
16444
  Rules[:_AtxInline] = rule_info("AtxInline", "!@Newline !(@Sp /\#*/ @Sp @Newline) Inline")
@@ -16190,7 +16582,7 @@ class RDoc::Markdown
16190
16582
  Rules[:_StyleClose] = rule_info("StyleClose", "\"<\" Spnl \"/\" (\"style\" | \"STYLE\") Spnl \">\"")
16191
16583
  Rules[:_InStyleTags] = rule_info("InStyleTags", "StyleOpen (!StyleClose .)* StyleClose")
16192
16584
  Rules[:_StyleBlock] = rule_info("StyleBlock", "< InStyleTags > @BlankLine* { if css? then RDoc::Markup::Raw.new text end }")
16193
- Rules[:_Inlines] = rule_info("Inlines", "(!@Endline Inline:i { i } | @Endline:c &Inline { c })+:chunks @Endline? { chunks }")
16585
+ Rules[:_Inlines] = rule_info("Inlines", "(!@Endline Inline:i { i } | @Endline:c !(&{ github? } Ticks3 /[^`\\n]*$/) &Inline { c })+:chunks @Endline? { chunks }")
16194
16586
  Rules[:_Inline] = rule_info("Inline", "(Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)")
16195
16587
  Rules[:_Space] = rule_info("Space", "@Spacechar+ { \" \" }")
16196
16588
  Rules[:_Str] = rule_info("Str", "@StartList:a < @NormalChar+ > { a = text } (StrChunk:c { a << c })* { a }")
@@ -16279,6 +16671,11 @@ class RDoc::Markdown
16279
16671
  Rules[:_Notes] = rule_info("Notes", "(Note | SkipBlock)*")
16280
16672
  Rules[:_RawNoteBlock] = rule_info("RawNoteBlock", "@StartList:a (!@BlankLine OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }")
16281
16673
  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 }")
16674
+ Rules[:_Table] = rule_info("Table", "&{ github? } TableRow:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) }")
16675
+ Rules[:_TableRow] = rule_info("TableRow", "TableItem+:row \"|\" @Newline { row }")
16676
+ Rules[:_TableItem] = rule_info("TableItem", "\"|\" < (!\"|\" !@Newline .)+ > { text.strip }")
16677
+ Rules[:_TableLine] = rule_info("TableLine", "TableColumn+:line \"|\" @Newline { line }")
16678
+ Rules[:_TableColumn] = rule_info("TableColumn", "\"|\" < (\"-\"+ \":\"? | \":\" \"-\"*) > { text.start_with?(\":\") ? :left : text.end_with?(\":\") ? :right : nil }")
16282
16679
  Rules[:_DefinitionList] = rule_info("DefinitionList", "&{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }")
16283
16680
  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 }")
16284
16681
  Rules[:_DefinitionListLabel] = rule_info("DefinitionListLabel", "StrChunk:label @Sp @Newline { label }")