ruby-changes:73878
From: Nobuyoshi <ko1@a...>
Date: Thu, 6 Oct 2022 23:23:33 +0900 (JST)
Subject: [ruby-changes:73878] f6c916c7ef (master): [ruby/rdoc] Allow leading pipes to be ommitted
https://git.ruby-lang.org/ruby.git/commit/?id=f6c916c7ef From f6c916c7ef546b5ed59ac5ca5f5a0a547accdf3c Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada <nobu@r...> Date: Thu, 6 Oct 2022 17:12:09 +0900 Subject: [ruby/rdoc] Allow leading pipes to be ommitted https://github.com/ruby/rdoc/commit/d263a2c9c4 --- lib/rdoc/markdown.rb | 291 +++++++++++++++++++++++++++------------- test/rdoc/test_rdoc_markdown.rb | 6 +- 2 files changed, 204 insertions(+), 93 deletions(-) diff --git a/lib/rdoc/markdown.rb b/lib/rdoc/markdown.rb index 1149359927..aa7b1b800c 100644 --- a/lib/rdoc/markdown.rb +++ b/lib/rdoc/markdown.rb @@ -15910,7 +15910,7 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L15910 return _tmp end - # Table = &{ github? } TableRow:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) } + # Table = &{ github? } TableHead:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) } def _Table _save = self.pos @@ -15922,7 +15922,7 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L15922 self.pos = _save break end - _tmp = apply(:_TableRow) + _tmp = apply(:_TableHead) header = @result unless _tmp self.pos = _save @@ -15966,18 +15966,18 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L15966 return _tmp end - # TableRow = TableItem+:row "|"? @Newline { row } - def _TableRow + # TableHead = TableItem2+:items "|"? @Newline { items } + def _TableHead _save = self.pos while true # sequence _save1 = self.pos _ary = [] - _tmp = apply(:_TableItem) + _tmp = apply(:_TableItem2) if _tmp _ary << @result while true - _tmp = apply(:_TableItem) + _tmp = apply(:_TableItem2) _ary << @result if _tmp break unless _tmp end @@ -15986,7 +15986,7 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L15986 else self.pos = _save1 end - row = @result + items = @result unless _tmp self.pos = _save break @@ -16006,6 +16006,99 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L16006 self.pos = _save break end + @result = begin; items ; end + _tmp = true + unless _tmp + self.pos = _save + end + break + end # end sequence + + set_failed_rule :_TableHead unless _tmp + return _tmp + end + + # TableRow = ((TableItem:item1 TableItem2*:items { [item1, *items] }):row | TableItem2+:row) "|"? @Newline { row } + def _TableRow + + _save = self.pos + while true # sequence + + _save1 = self.pos + while true # choice + + _save2 = self.pos + while true # sequence + _tmp = apply(:_TableItem) + item1 = @result + unless _tmp + self.pos = _save2 + break + end + _ary = [] + while true + _tmp = apply(:_TableItem2) + _ary << @result if _tmp + break unless _tmp + end + _tmp = true + @result = _ary + items = @result + unless _tmp + self.pos = _save2 + break + end + @result = begin; [item1, *items] ; end + _tmp = true + unless _tmp + self.pos = _save2 + end + break + end # end sequence + + row = @result + break if _tmp + self.pos = _save1 + _save4 = self.pos + _ary = [] + _tmp = apply(:_TableItem2) + if _tmp + _ary << @result + while true + _tmp = apply(:_TableItem2) + _ary << @result if _tmp + break unless _tmp + end + _tmp = true + @result = _ary + else + self.pos = _save4 + end + row = @result + break if _tmp + self.pos = _save1 + break + end # end choice + + unless _tmp + self.pos = _save + break + end + _save5 = self.pos + _tmp = match_string("|") + unless _tmp + _tmp = true + self.pos = _save5 + end + unless _tmp + self.pos = _save + break + end + _tmp = _Newline() + unless _tmp + self.pos = _save + break + end @result = begin; row ; end _tmp = true unless _tmp @@ -16018,8 +16111,8 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L16111 return _tmp end - # TableItem = "|" < (!"|" !@Newline .)+ > { text.strip } - def _TableItem + # TableItem2 = "|" TableItem + def _TableItem2 _save = self.pos while true # sequence @@ -16028,6 +16121,22 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L16121 self.pos = _save break end + _tmp = apply(:_TableItem) + unless _tmp + self.pos = _save + end + break + end # end sequence + + set_failed_rule :_TableItem2 unless _tmp + return _tmp + end + + # TableItem = < (!"|" !@Newline .)+ > { text.strip } + def _TableItem + + _save = self.pos + while true # sequence _text_start = self.pos _save1 = self.pos @@ -16109,36 +16218,77 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L16218 return _tmp end - # TableLine = TableColumn+:line "|"? @Newline { line } + # TableLine = ((TableAlign:align1 TableAlign2*:aligns {[align1, *aligns] }):line | TableAlign2+:line) "|"? @Newline { line } def _TableLine _save = self.pos while true # sequence + _save1 = self.pos - _ary = [] - _tmp = apply(:_TableColumn) - if _tmp - _ary << @result - while true - _tmp = apply(:_TableColumn) - _ary << @result if _tmp - break unless _tmp + while true # choice + + _save2 = self.pos + while true # sequence + _tmp = apply(:_TableAlign) + align1 = @result + unless _tmp + self.pos = _save2 + break + end + _ary = [] + while true + _tmp = apply(:_TableAlign2) + _ary << @result if _tmp + break unless _tmp + end + _tmp = true + @result = _ary + aligns = @result + unless _tmp + self.pos = _save2 + break + end + @result = begin; [align1, *aligns] ; end + _tmp = true + unless _tmp + self.pos = _save2 + end + break + end # end sequence + + line = @result + break if _tmp + self.pos = _save1 + _save4 = self.pos + _ary = [] + _tmp = apply(:_TableAlign2) + if _tmp + _ary << @result + while true + _tmp = apply(:_TableAlign2) + _ary << @result if _tmp + break unless _tmp + end + _tmp = true + @result = _ary + else + self.pos = _save4 end - _tmp = true - @result = _ary - else + line = @result + break if _tmp self.pos = _save1 - end - line = @result + break + end # end choice + unless _tmp self.pos = _save break end - _save2 = self.pos + _save5 = self.pos _tmp = match_string("|") unless _tmp _tmp = true - self.pos = _save2 + self.pos = _save5 end unless _tmp self.pos = _save @@ -16161,8 +16311,8 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L16311 return _tmp end - # TableColumn = "|" < ("-"+ ":"? | ":" "-"*) > { text.start_with?(":") ? :left : text.end_with?(":") ? :right : nil } - def _TableColumn + # TableAlign2 = "|" TableAlign + def _TableAlign2 _save = self.pos while true # sequence @@ -16171,66 +16321,24 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L16321 self.pos = _save break end - _text_start = self.pos - - _save1 = self.pos - while true # choice - - _save2 = self.pos - while true # sequence - _save3 = self.pos - _tmp = match_string("-") - if _tmp - while true - _tmp = match_string("-") - break unless _tmp - end - _tmp = true - else - self.pos = _save3 - end - unless _tmp - self.pos = _save2 - break - end - _save4 = self.pos - _tmp = match_string(":") - unless _tmp - _tmp = true - self.pos = _save4 - end - unless _tmp - self.pos = _save2 - end - break - end # end sequence - - break if _tmp - self.pos = _save1 + _tmp = apply(:_TableAlign) + unless _tmp + self.pos = _save + end + break + end # end sequence - _save5 = self.pos - while true # sequence - _tmp = match_string(":") - unless _tmp - self.pos = _save5 - break - end - while true - _tmp = match_string("-") - break unless _tmp - end - _tmp = true - unless _tmp - self.pos = _save5 - end - break - end # end sequence + set_failed_rule :_TableAlign2 unless _tmp + return _tmp + end - break if _tmp - self.pos = _save1 - break - end # end choice + # TableAlign = < (... truncated) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/