rdoc 6.4.1.1 → 6.5.0

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.rdoc +1 -2
  3. data/LEGAL.rdoc +1 -1
  4. data/exe/rdoc +0 -1
  5. data/lib/rdoc/any_method.rb +2 -2
  6. data/lib/rdoc/code_objects.rb +1 -2
  7. data/lib/rdoc/context/section.rb +2 -0
  8. data/lib/rdoc/context.rb +1 -3
  9. data/lib/rdoc/cross_reference.rb +17 -1
  10. data/lib/rdoc/generator/markup.rb +1 -1
  11. data/lib/rdoc/generator/template/darkfish/_head.rhtml +10 -10
  12. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +27 -3
  13. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +22 -2
  14. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +25 -4
  15. data/lib/rdoc/generator/template/darkfish/class.rhtml +22 -20
  16. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +24 -1
  17. data/lib/rdoc/generator/template/darkfish/index.rhtml +1 -1
  18. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +1 -1
  19. data/lib/rdoc/generator/template/darkfish/js/search.js +1 -1
  20. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +2 -2
  21. data/lib/rdoc/generator.rb +5 -5
  22. data/lib/rdoc/i18n.rb +1 -1
  23. data/lib/rdoc/known_classes.rb +5 -4
  24. data/lib/rdoc/markdown/literals.rb +43 -66
  25. data/lib/rdoc/markdown.kpeg +25 -18
  26. data/lib/rdoc/markdown.rb +252 -194
  27. data/lib/rdoc/markup/attribute_manager.rb +29 -35
  28. data/lib/rdoc/markup/parser.rb +12 -6
  29. data/lib/rdoc/markup/to_html.rb +18 -14
  30. data/lib/rdoc/markup/to_label.rb +1 -1
  31. data/lib/rdoc/markup/to_rdoc.rb +3 -20
  32. data/lib/rdoc/markup.rb +35 -667
  33. data/lib/rdoc/method_attr.rb +1 -1
  34. data/lib/rdoc/normal_class.rb +1 -1
  35. data/lib/rdoc/normal_module.rb +1 -1
  36. data/lib/rdoc/options.rb +33 -18
  37. data/lib/rdoc/parser/c.rb +89 -101
  38. data/lib/rdoc/parser/ruby.rb +25 -10
  39. data/lib/rdoc/parser.rb +19 -2
  40. data/lib/rdoc/rd/block_parser.rb +14 -12
  41. data/lib/rdoc/rd/block_parser.ry +12 -8
  42. data/lib/rdoc/rd/inline_parser.rb +2 -4
  43. data/lib/rdoc/rd.rb +3 -4
  44. data/lib/rdoc/rdoc.rb +17 -3
  45. data/lib/rdoc/ri/driver.rb +11 -78
  46. data/lib/rdoc/ri.rb +4 -5
  47. data/lib/rdoc/rubygems_hook.rb +1 -1
  48. data/lib/rdoc/servlet.rb +1 -1
  49. data/lib/rdoc/single_class.rb +5 -0
  50. data/lib/rdoc/stats.rb +3 -4
  51. data/lib/rdoc/store.rb +19 -26
  52. data/lib/rdoc/task.rb +3 -3
  53. data/lib/rdoc/version.rb +3 -1
  54. data/lib/rdoc.rb +46 -46
  55. metadata +7 -9
  56. data/Gemfile +0 -12
  57. data/Rakefile +0 -107
  58. data/bin/console +0 -7
  59. data/bin/setup +0 -6
  60. data/rdoc.gemspec +0 -249
data/lib/rdoc/markdown.rb CHANGED
@@ -466,7 +466,6 @@ class RDoc::Markdown
466
466
  end
467
467
 
468
468
  def apply_with_args(rule, *args)
469
- @result = nil
470
469
  memo_key = [rule, args]
471
470
  if m = @memoizations[memo_key][@pos]
472
471
  @pos = m.pos
@@ -500,7 +499,6 @@ class RDoc::Markdown
500
499
  end
501
500
 
502
501
  def apply(rule)
503
- @result = nil
504
502
  if m = @memoizations[rule][@pos]
505
503
  @pos = m.pos
506
504
  if !m.set
@@ -572,11 +570,11 @@ class RDoc::Markdown
572
570
 
573
571
 
574
572
 
575
- require 'rdoc'
576
- require 'rdoc/markup/to_joined_paragraph'
577
- require 'rdoc/markdown/entities'
573
+ require_relative '../rdoc'
574
+ require_relative 'markup/to_joined_paragraph'
575
+ require_relative 'markdown/entities'
578
576
 
579
- require 'rdoc/markdown/literals'
577
+ require_relative 'markdown/literals'
580
578
 
581
579
  ##
582
580
  # Supported extensions
@@ -834,7 +832,7 @@ class RDoc::Markdown
834
832
 
835
833
  @note_order.each_with_index do |ref, index|
836
834
  label = index + 1
837
- note = @footnotes[ref]
835
+ note = @footnotes[ref] or raise ParseError, "footnote [^#{ref}] not found"
838
836
 
839
837
  link = "{^#{label}}[rdoc-label:footmark-#{label}:foottext-#{label}] "
840
838
  note.parts.unshift link
@@ -14957,7 +14955,7 @@ class RDoc::Markdown
14957
14955
  return _tmp
14958
14956
  end
14959
14957
 
14960
- # RawLine = (< (!"\r" !"\n" .)* @Newline > | < .+ > @Eof) { text }
14958
+ # RawLine = (< /[^\r\n]*/ @Newline > | < .+ > @Eof) { text }
14961
14959
  def _RawLine
14962
14960
 
14963
14961
  _save = self.pos
@@ -14969,36 +14967,7 @@ class RDoc::Markdown
14969
14967
 
14970
14968
  _save2 = self.pos
14971
14969
  while true # sequence
14972
- while true
14973
-
14974
- _save4 = self.pos
14975
- while true # sequence
14976
- _save5 = self.pos
14977
- _tmp = match_string("\r")
14978
- _tmp = _tmp ? nil : true
14979
- self.pos = _save5
14980
- unless _tmp
14981
- self.pos = _save4
14982
- break
14983
- end
14984
- _save6 = self.pos
14985
- _tmp = match_string("\n")
14986
- _tmp = _tmp ? nil : true
14987
- self.pos = _save6
14988
- unless _tmp
14989
- self.pos = _save4
14990
- break
14991
- end
14992
- _tmp = get_byte
14993
- unless _tmp
14994
- self.pos = _save4
14995
- end
14996
- break
14997
- end # end sequence
14998
-
14999
- break unless _tmp
15000
- end
15001
- _tmp = true
14970
+ _tmp = scan(/\G(?-mix:[^\r\n]*)/)
15002
14971
  unless _tmp
15003
14972
  self.pos = _save2
15004
14973
  break
@@ -15016,10 +14985,10 @@ class RDoc::Markdown
15016
14985
  break if _tmp
15017
14986
  self.pos = _save1
15018
14987
 
15019
- _save7 = self.pos
14988
+ _save3 = self.pos
15020
14989
  while true # sequence
15021
14990
  _text_start = self.pos
15022
- _save8 = self.pos
14991
+ _save4 = self.pos
15023
14992
  _tmp = get_byte
15024
14993
  if _tmp
15025
14994
  while true
@@ -15028,18 +14997,18 @@ class RDoc::Markdown
15028
14997
  end
15029
14998
  _tmp = true
15030
14999
  else
15031
- self.pos = _save8
15000
+ self.pos = _save4
15032
15001
  end
15033
15002
  if _tmp
15034
15003
  text = get_text(_text_start)
15035
15004
  end
15036
15005
  unless _tmp
15037
- self.pos = _save7
15006
+ self.pos = _save3
15038
15007
  break
15039
15008
  end
15040
15009
  _tmp = _Eof()
15041
15010
  unless _tmp
15042
- self.pos = _save7
15011
+ self.pos = _save3
15043
15012
  end
15044
15013
  break
15045
15014
  end # end sequence
@@ -15585,7 +15554,7 @@ class RDoc::Markdown
15585
15554
  return _tmp
15586
15555
  end
15587
15556
 
15588
- # RawNoteBlock = @StartList:a (!@BlankLine OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }
15557
+ # RawNoteBlock = @StartList:a (!@BlankLine !RawNoteReference OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }
15589
15558
  def _RawNoteBlock
15590
15559
 
15591
15560
  _save = self.pos
@@ -15608,6 +15577,14 @@ class RDoc::Markdown
15608
15577
  self.pos = _save2
15609
15578
  break
15610
15579
  end
15580
+ _save4 = self.pos
15581
+ _tmp = apply(:_RawNoteReference)
15582
+ _tmp = _tmp ? nil : true
15583
+ self.pos = _save4
15584
+ unless _tmp
15585
+ self.pos = _save2
15586
+ break
15587
+ end
15611
15588
  _tmp = apply(:_OptionallyIndentedLine)
15612
15589
  l = @result
15613
15590
  unless _tmp
@@ -15625,26 +15602,34 @@ class RDoc::Markdown
15625
15602
  if _tmp
15626
15603
  while true
15627
15604
 
15628
- _save4 = self.pos
15605
+ _save5 = self.pos
15629
15606
  while true # sequence
15630
- _save5 = self.pos
15607
+ _save6 = self.pos
15631
15608
  _tmp = _BlankLine()
15632
15609
  _tmp = _tmp ? nil : true
15633
- self.pos = _save5
15610
+ self.pos = _save6
15634
15611
  unless _tmp
15635
- self.pos = _save4
15612
+ self.pos = _save5
15613
+ break
15614
+ end
15615
+ _save7 = self.pos
15616
+ _tmp = apply(:_RawNoteReference)
15617
+ _tmp = _tmp ? nil : true
15618
+ self.pos = _save7
15619
+ unless _tmp
15620
+ self.pos = _save5
15636
15621
  break
15637
15622
  end
15638
15623
  _tmp = apply(:_OptionallyIndentedLine)
15639
15624
  l = @result
15640
15625
  unless _tmp
15641
- self.pos = _save4
15626
+ self.pos = _save5
15642
15627
  break
15643
15628
  end
15644
15629
  @result = begin; a << l ; end
15645
15630
  _tmp = true
15646
15631
  unless _tmp
15647
- self.pos = _save4
15632
+ self.pos = _save5
15648
15633
  end
15649
15634
  break
15650
15635
  end # end sequence
@@ -15946,7 +15931,7 @@ class RDoc::Markdown
15946
15931
  return _tmp
15947
15932
  end
15948
15933
 
15949
- # Table = &{ github? } TableRow:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) }
15934
+ # Table = &{ github? } TableHead:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) }
15950
15935
  def _Table
15951
15936
 
15952
15937
  _save = self.pos
@@ -15958,7 +15943,7 @@ class RDoc::Markdown
15958
15943
  self.pos = _save
15959
15944
  break
15960
15945
  end
15961
- _tmp = apply(:_TableRow)
15946
+ _tmp = apply(:_TableHead)
15962
15947
  header = @result
15963
15948
  unless _tmp
15964
15949
  self.pos = _save
@@ -16002,18 +15987,18 @@ class RDoc::Markdown
16002
15987
  return _tmp
16003
15988
  end
16004
15989
 
16005
- # TableRow = TableItem+:row "|" @Newline { row }
16006
- def _TableRow
15990
+ # TableHead = TableItem2+:items "|"? @Newline { items }
15991
+ def _TableHead
16007
15992
 
16008
15993
  _save = self.pos
16009
15994
  while true # sequence
16010
15995
  _save1 = self.pos
16011
15996
  _ary = []
16012
- _tmp = apply(:_TableItem)
15997
+ _tmp = apply(:_TableItem2)
16013
15998
  if _tmp
16014
15999
  _ary << @result
16015
16000
  while true
16016
- _tmp = apply(:_TableItem)
16001
+ _tmp = apply(:_TableItem2)
16017
16002
  _ary << @result if _tmp
16018
16003
  break unless _tmp
16019
16004
  end
@@ -16022,12 +16007,17 @@ class RDoc::Markdown
16022
16007
  else
16023
16008
  self.pos = _save1
16024
16009
  end
16025
- row = @result
16010
+ items = @result
16026
16011
  unless _tmp
16027
16012
  self.pos = _save
16028
16013
  break
16029
16014
  end
16015
+ _save2 = self.pos
16030
16016
  _tmp = match_string("|")
16017
+ unless _tmp
16018
+ _tmp = true
16019
+ self.pos = _save2
16020
+ end
16031
16021
  unless _tmp
16032
16022
  self.pos = _save
16033
16023
  break
@@ -16037,7 +16027,7 @@ class RDoc::Markdown
16037
16027
  self.pos = _save
16038
16028
  break
16039
16029
  end
16040
- @result = begin; row ; end
16030
+ @result = begin; items ; end
16041
16031
  _tmp = true
16042
16032
  unless _tmp
16043
16033
  self.pos = _save
@@ -16045,90 +16035,92 @@ class RDoc::Markdown
16045
16035
  break
16046
16036
  end # end sequence
16047
16037
 
16048
- set_failed_rule :_TableRow unless _tmp
16038
+ set_failed_rule :_TableHead unless _tmp
16049
16039
  return _tmp
16050
16040
  end
16051
16041
 
16052
- # TableItem = "|" < (!"|" !@Newline .)+ > { text.strip }
16053
- def _TableItem
16042
+ # TableRow = ((TableItem:item1 TableItem2*:items { [item1, *items] }):row | TableItem2+:row) "|"? @Newline { row }
16043
+ def _TableRow
16054
16044
 
16055
16045
  _save = self.pos
16056
16046
  while true # sequence
16057
- _tmp = match_string("|")
16058
- unless _tmp
16059
- self.pos = _save
16060
- break
16061
- end
16062
- _text_start = self.pos
16047
+
16063
16048
  _save1 = self.pos
16049
+ while true # choice
16064
16050
 
16065
- _save2 = self.pos
16066
- while true # sequence
16067
- _save3 = self.pos
16068
- _tmp = match_string("|")
16069
- _tmp = _tmp ? nil : true
16070
- self.pos = _save3
16071
- unless _tmp
16072
- self.pos = _save2
16051
+ _save2 = self.pos
16052
+ while true # sequence
16053
+ _tmp = apply(:_TableItem)
16054
+ item1 = @result
16055
+ unless _tmp
16056
+ self.pos = _save2
16057
+ break
16058
+ end
16059
+ _ary = []
16060
+ while true
16061
+ _tmp = apply(:_TableItem2)
16062
+ _ary << @result if _tmp
16063
+ break unless _tmp
16064
+ end
16065
+ _tmp = true
16066
+ @result = _ary
16067
+ items = @result
16068
+ unless _tmp
16069
+ self.pos = _save2
16070
+ break
16071
+ end
16072
+ @result = begin; [item1, *items] ; end
16073
+ _tmp = true
16074
+ unless _tmp
16075
+ self.pos = _save2
16076
+ end
16073
16077
  break
16074
- end
16078
+ end # end sequence
16079
+
16080
+ row = @result
16081
+ break if _tmp
16082
+ self.pos = _save1
16075
16083
  _save4 = self.pos
16076
- _tmp = _Newline()
16077
- _tmp = _tmp ? nil : true
16078
- self.pos = _save4
16079
- unless _tmp
16080
- self.pos = _save2
16081
- break
16082
- end
16083
- _tmp = get_byte
16084
- unless _tmp
16085
- self.pos = _save2
16084
+ _ary = []
16085
+ _tmp = apply(:_TableItem2)
16086
+ if _tmp
16087
+ _ary << @result
16088
+ while true
16089
+ _tmp = apply(:_TableItem2)
16090
+ _ary << @result if _tmp
16091
+ break unless _tmp
16092
+ end
16093
+ _tmp = true
16094
+ @result = _ary
16095
+ else
16096
+ self.pos = _save4
16086
16097
  end
16098
+ row = @result
16099
+ break if _tmp
16100
+ self.pos = _save1
16087
16101
  break
16088
- end # end sequence
16089
-
16090
- if _tmp
16091
- while true
16092
-
16093
- _save5 = self.pos
16094
- while true # sequence
16095
- _save6 = self.pos
16096
- _tmp = match_string("|")
16097
- _tmp = _tmp ? nil : true
16098
- self.pos = _save6
16099
- unless _tmp
16100
- self.pos = _save5
16101
- break
16102
- end
16103
- _save7 = self.pos
16104
- _tmp = _Newline()
16105
- _tmp = _tmp ? nil : true
16106
- self.pos = _save7
16107
- unless _tmp
16108
- self.pos = _save5
16109
- break
16110
- end
16111
- _tmp = get_byte
16112
- unless _tmp
16113
- self.pos = _save5
16114
- end
16115
- break
16116
- end # end sequence
16102
+ end # end choice
16117
16103
 
16118
- break unless _tmp
16119
- end
16104
+ unless _tmp
16105
+ self.pos = _save
16106
+ break
16107
+ end
16108
+ _save5 = self.pos
16109
+ _tmp = match_string("|")
16110
+ unless _tmp
16120
16111
  _tmp = true
16121
- else
16122
- self.pos = _save1
16112
+ self.pos = _save5
16123
16113
  end
16124
- if _tmp
16125
- text = get_text(_text_start)
16114
+ unless _tmp
16115
+ self.pos = _save
16116
+ break
16126
16117
  end
16118
+ _tmp = _Newline()
16127
16119
  unless _tmp
16128
16120
  self.pos = _save
16129
16121
  break
16130
16122
  end
16131
- @result = begin; text.strip ; end
16123
+ @result = begin; row ; end
16132
16124
  _tmp = true
16133
16125
  unless _tmp
16134
16126
  self.pos = _save
@@ -16136,46 +16128,46 @@ class RDoc::Markdown
16136
16128
  break
16137
16129
  end # end sequence
16138
16130
 
16139
- set_failed_rule :_TableItem unless _tmp
16131
+ set_failed_rule :_TableRow unless _tmp
16140
16132
  return _tmp
16141
16133
  end
16142
16134
 
16143
- # TableLine = TableColumn+:line "|" @Newline { line }
16144
- def _TableLine
16135
+ # TableItem2 = "|" TableItem
16136
+ def _TableItem2
16145
16137
 
16146
16138
  _save = self.pos
16147
16139
  while true # sequence
16148
- _save1 = self.pos
16149
- _ary = []
16150
- _tmp = apply(:_TableColumn)
16151
- if _tmp
16152
- _ary << @result
16153
- while true
16154
- _tmp = apply(:_TableColumn)
16155
- _ary << @result if _tmp
16156
- break unless _tmp
16157
- end
16158
- _tmp = true
16159
- @result = _ary
16160
- else
16161
- self.pos = _save1
16162
- end
16163
- line = @result
16140
+ _tmp = match_string("|")
16164
16141
  unless _tmp
16165
16142
  self.pos = _save
16166
16143
  break
16167
16144
  end
16168
- _tmp = match_string("|")
16145
+ _tmp = apply(:_TableItem)
16169
16146
  unless _tmp
16170
16147
  self.pos = _save
16171
- break
16172
16148
  end
16173
- _tmp = _Newline()
16149
+ break
16150
+ end # end sequence
16151
+
16152
+ set_failed_rule :_TableItem2 unless _tmp
16153
+ return _tmp
16154
+ end
16155
+
16156
+ # TableItem = < /(?:\\.|[^|\n])+/ > { text.strip.gsub(/\\(.)/, '\1') }
16157
+ def _TableItem
16158
+
16159
+ _save = self.pos
16160
+ while true # sequence
16161
+ _text_start = self.pos
16162
+ _tmp = scan(/\G(?-mix:(?:\\.|[^|\n])+)/)
16163
+ if _tmp
16164
+ text = get_text(_text_start)
16165
+ end
16174
16166
  unless _tmp
16175
16167
  self.pos = _save
16176
16168
  break
16177
16169
  end
16178
- @result = begin; line ; end
16170
+ @result = begin; text.strip.gsub(/\\(.)/, '\1') ; end
16179
16171
  _tmp = true
16180
16172
  unless _tmp
16181
16173
  self.pos = _save
@@ -16183,80 +16175,136 @@ class RDoc::Markdown
16183
16175
  break
16184
16176
  end # end sequence
16185
16177
 
16186
- set_failed_rule :_TableLine unless _tmp
16178
+ set_failed_rule :_TableItem unless _tmp
16187
16179
  return _tmp
16188
16180
  end
16189
16181
 
16190
- # TableColumn = "|" < ("-"+ ":"? | ":" "-"*) > { text.start_with?(":") ? :left : text.end_with?(":") ? :right : nil }
16191
- def _TableColumn
16182
+ # TableLine = ((TableAlign:align1 TableAlign2*:aligns {[align1, *aligns] }):line | TableAlign2+:line) "|"? @Newline { line }
16183
+ def _TableLine
16192
16184
 
16193
16185
  _save = self.pos
16194
16186
  while true # sequence
16195
- _tmp = match_string("|")
16196
- unless _tmp
16197
- self.pos = _save
16198
- break
16199
- end
16200
- _text_start = self.pos
16201
16187
 
16202
16188
  _save1 = self.pos
16203
16189
  while true # choice
16204
16190
 
16205
16191
  _save2 = self.pos
16206
16192
  while true # sequence
16207
- _save3 = self.pos
16208
- _tmp = match_string("-")
16209
- if _tmp
16210
- while true
16211
- _tmp = match_string("-")
16212
- break unless _tmp
16213
- end
16214
- _tmp = true
16215
- else
16216
- self.pos = _save3
16217
- end
16193
+ _tmp = apply(:_TableAlign)
16194
+ align1 = @result
16218
16195
  unless _tmp
16219
16196
  self.pos = _save2
16220
16197
  break
16221
16198
  end
16222
- _save4 = self.pos
16223
- _tmp = match_string(":")
16199
+ _ary = []
16200
+ while true
16201
+ _tmp = apply(:_TableAlign2)
16202
+ _ary << @result if _tmp
16203
+ break unless _tmp
16204
+ end
16205
+ _tmp = true
16206
+ @result = _ary
16207
+ aligns = @result
16224
16208
  unless _tmp
16225
- _tmp = true
16226
- self.pos = _save4
16209
+ self.pos = _save2
16210
+ break
16227
16211
  end
16212
+ @result = begin; [align1, *aligns] ; end
16213
+ _tmp = true
16228
16214
  unless _tmp
16229
16215
  self.pos = _save2
16230
16216
  end
16231
16217
  break
16232
16218
  end # end sequence
16233
16219
 
16220
+ line = @result
16234
16221
  break if _tmp
16235
16222
  self.pos = _save1
16236
-
16237
- _save5 = self.pos
16238
- while true # sequence
16239
- _tmp = match_string(":")
16240
- unless _tmp
16241
- self.pos = _save5
16242
- break
16243
- end
16223
+ _save4 = self.pos
16224
+ _ary = []
16225
+ _tmp = apply(:_TableAlign2)
16226
+ if _tmp
16227
+ _ary << @result
16244
16228
  while true
16245
- _tmp = match_string("-")
16229
+ _tmp = apply(:_TableAlign2)
16230
+ _ary << @result if _tmp
16246
16231
  break unless _tmp
16247
16232
  end
16248
16233
  _tmp = true
16249
- unless _tmp
16250
- self.pos = _save5
16251
- end
16252
- break
16253
- end # end sequence
16254
-
16234
+ @result = _ary
16235
+ else
16236
+ self.pos = _save4
16237
+ end
16238
+ line = @result
16255
16239
  break if _tmp
16256
16240
  self.pos = _save1
16257
16241
  break
16258
16242
  end # end choice
16259
16243
 
16244
+ unless _tmp
16245
+ self.pos = _save
16246
+ break
16247
+ end
16248
+ _save5 = self.pos
16249
+ _tmp = match_string("|")
16250
+ unless _tmp
16251
+ _tmp = true
16252
+ self.pos = _save5
16253
+ end
16254
+ unless _tmp
16255
+ self.pos = _save
16256
+ break
16257
+ end
16258
+ _tmp = _Newline()
16259
+ unless _tmp
16260
+ self.pos = _save
16261
+ break
16262
+ end
16263
+ @result = begin; line ; end
16264
+ _tmp = true
16265
+ unless _tmp
16266
+ self.pos = _save
16267
+ end
16268
+ break
16269
+ end # end sequence
16270
+
16271
+ set_failed_rule :_TableLine unless _tmp
16272
+ return _tmp
16273
+ end
16274
+
16275
+ # TableAlign2 = "|" @Sp TableAlign
16276
+ def _TableAlign2
16277
+
16278
+ _save = self.pos
16279
+ while true # sequence
16280
+ _tmp = match_string("|")
16281
+ unless _tmp
16282
+ self.pos = _save
16283
+ break
16284
+ end
16285
+ _tmp = _Sp()
16286
+ unless _tmp
16287
+ self.pos = _save
16288
+ break
16289
+ end
16290
+ _tmp = apply(:_TableAlign)
16291
+ unless _tmp
16292
+ self.pos = _save
16293
+ end
16294
+ break
16295
+ end # end sequence
16296
+
16297
+ set_failed_rule :_TableAlign2 unless _tmp
16298
+ return _tmp
16299
+ end
16300
+
16301
+ # TableAlign = < /:?-+:?/ > @Sp { text.start_with?(":") ? (text.end_with?(":") ? :center : :left) : (text.end_with?(":") ? :right : nil) }
16302
+ def _TableAlign
16303
+
16304
+ _save = self.pos
16305
+ while true # sequence
16306
+ _text_start = self.pos
16307
+ _tmp = scan(/\G(?-mix::?-+:?)/)
16260
16308
  if _tmp
16261
16309
  text = get_text(_text_start)
16262
16310
  end
@@ -16264,8 +16312,15 @@ class RDoc::Markdown
16264
16312
  self.pos = _save
16265
16313
  break
16266
16314
  end
16267
- @result = begin; text.start_with?(":") ? :left :
16268
- text.end_with?(":") ? :right : nil
16315
+ _tmp = _Sp()
16316
+ unless _tmp
16317
+ self.pos = _save
16318
+ break
16319
+ end
16320
+ @result = begin;
16321
+ text.start_with?(":") ?
16322
+ (text.end_with?(":") ? :center : :left) :
16323
+ (text.end_with?(":") ? :right : nil)
16269
16324
  ; end
16270
16325
  _tmp = true
16271
16326
  unless _tmp
@@ -16274,7 +16329,7 @@ class RDoc::Markdown
16274
16329
  break
16275
16330
  end # end sequence
16276
16331
 
16277
- set_failed_rule :_TableColumn unless _tmp
16332
+ set_failed_rule :_TableAlign unless _tmp
16278
16333
  return _tmp
16279
16334
  end
16280
16335
 
@@ -16700,7 +16755,7 @@ class RDoc::Markdown
16700
16755
  Rules[:_OptionallyIndentedLine] = rule_info("OptionallyIndentedLine", "Indent? Line")
16701
16756
  Rules[:_StartList] = rule_info("StartList", "&. { [] }")
16702
16757
  Rules[:_Line] = rule_info("Line", "@RawLine:a { a }")
16703
- Rules[:_RawLine] = rule_info("RawLine", "(< (!\"\\r\" !\"\\n\" .)* @Newline > | < .+ > @Eof) { text }")
16758
+ Rules[:_RawLine] = rule_info("RawLine", "(< /[^\\r\\n]*/ @Newline > | < .+ > @Eof) { text }")
16704
16759
  Rules[:_SkipBlock] = rule_info("SkipBlock", "(HtmlBlock | (!\"\#\" !SetextBottom1 !SetextBottom2 !@BlankLine @RawLine)+ @BlankLine* | @BlankLine+ | @RawLine)")
16705
16760
  Rules[:_ExtendedSpecialChar] = rule_info("ExtendedSpecialChar", "&{ notes? } \"^\"")
16706
16761
  Rules[:_NoteReference] = rule_info("NoteReference", "&{ notes? } RawNoteReference:ref { note_for ref }")
@@ -16708,13 +16763,16 @@ class RDoc::Markdown
16708
16763
  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 }")
16709
16764
  Rules[:_InlineNote] = rule_info("InlineNote", "&{ notes? } \"^[\" @StartList:a (!\"]\" Inline:l { a << l })+ \"]\" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref }")
16710
16765
  Rules[:_Notes] = rule_info("Notes", "(Note | SkipBlock)*")
16711
- Rules[:_RawNoteBlock] = rule_info("RawNoteBlock", "@StartList:a (!@BlankLine OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }")
16766
+ Rules[:_RawNoteBlock] = rule_info("RawNoteBlock", "@StartList:a (!@BlankLine !RawNoteReference OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }")
16712
16767
  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 }")
16713
- Rules[:_Table] = rule_info("Table", "&{ github? } TableRow:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) }")
16714
- Rules[:_TableRow] = rule_info("TableRow", "TableItem+:row \"|\" @Newline { row }")
16715
- Rules[:_TableItem] = rule_info("TableItem", "\"|\" < (!\"|\" !@Newline .)+ > { text.strip }")
16716
- Rules[:_TableLine] = rule_info("TableLine", "TableColumn+:line \"|\" @Newline { line }")
16717
- Rules[:_TableColumn] = rule_info("TableColumn", "\"|\" < (\"-\"+ \":\"? | \":\" \"-\"*) > { text.start_with?(\":\") ? :left : text.end_with?(\":\") ? :right : nil }")
16768
+ Rules[:_Table] = rule_info("Table", "&{ github? } TableHead:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) }")
16769
+ Rules[:_TableHead] = rule_info("TableHead", "TableItem2+:items \"|\"? @Newline { items }")
16770
+ Rules[:_TableRow] = rule_info("TableRow", "((TableItem:item1 TableItem2*:items { [item1, *items] }):row | TableItem2+:row) \"|\"? @Newline { row }")
16771
+ Rules[:_TableItem2] = rule_info("TableItem2", "\"|\" TableItem")
16772
+ Rules[:_TableItem] = rule_info("TableItem", "< /(?:\\\\.|[^|\\n])+/ > { text.strip.gsub(/\\\\(.)/, '\\1') }")
16773
+ Rules[:_TableLine] = rule_info("TableLine", "((TableAlign:align1 TableAlign2*:aligns {[align1, *aligns] }):line | TableAlign2+:line) \"|\"? @Newline { line }")
16774
+ Rules[:_TableAlign2] = rule_info("TableAlign2", "\"|\" @Sp TableAlign")
16775
+ Rules[:_TableAlign] = rule_info("TableAlign", "< /:?-+:?/ > @Sp { text.start_with?(\":\") ? (text.end_with?(\":\") ? :center : :left) : (text.end_with?(\":\") ? :right : nil) }")
16718
16776
  Rules[:_DefinitionList] = rule_info("DefinitionList", "&{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }")
16719
16777
  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 }")
16720
16778
  Rules[:_DefinitionListLabel] = rule_info("DefinitionListLabel", "StrChunk:label @Sp @Newline { label }")