1# 2# DO NOT MODIFY!!!! 3# This file is automatically generated by Racc 1.4.9 4# from Racc grammer file "". 5# 6 7require 'racc/parser.rb' 8 9class RDoc::RD 10 11## 12# RD format parser for headings, paragraphs, lists, verbatim sections that 13# exist as blocks. 14 15class BlockParser < Racc::Parser 16 17 18# :stopdoc: 19 20TMPFILE = ["rdtmp", $$, 0] 21 22MARK_TO_LEVEL = { 23 '=' => 1, 24 '==' => 2, 25 '===' => 3, 26 '====' => 4, 27 '+' => 5, 28 '++' => 6, 29} 30 31# :startdoc: 32 33## 34# Footnotes for this document 35 36attr_reader :footnotes 37 38## 39# Labels for items in this document 40 41attr_reader :labels 42 43## 44# Path to find included files in 45 46attr_accessor :include_path 47 48## 49# Creates a new RDoc::RD::BlockParser. Use #parse to parse an rd-format 50# document. 51 52def initialize 53 @inline_parser = RDoc::RD::InlineParser.new self 54 @include_path = [] 55 56 # for testing 57 @footnotes = [] 58 @labels = {} 59end 60 61## 62# Parses +src+ and returns an RDoc::Markup::Document. 63 64def parse src 65 @src = src 66 @src.push false 67 68 @footnotes = [] 69 @labels = {} 70 71 # @i: index(line no.) of src 72 @i = 0 73 74 # stack for current indentation 75 @indent_stack = [] 76 77 # how indented. 78 @current_indent = @indent_stack.join("") 79 80 # RDoc::RD::BlockParser for tmp src 81 @subparser = nil 82 83 # which part is in now 84 @in_part = nil 85 @part_content = [] 86 87 @in_verbatim = false 88 89 @yydebug = true 90 91 document = do_parse 92 93 unless @footnotes.empty? then 94 blankline = document.parts.pop 95 96 document.parts << RDoc::Markup::Rule.new(1) 97 document.parts.concat @footnotes 98 99 document.parts.push blankline 100 end 101 102 document 103end 104 105## 106# Returns the next token from the document 107 108def next_token # :nodoc: 109 # preprocessing 110 # if it is not in RD part 111 # => method 112 while @in_part != "rd" 113 line = @src[@i] 114 @i += 1 # next line 115 116 case line 117 # src end 118 when false 119 return [false, false] 120 # RD part begin 121 when /^=begin\s*(?:\bRD\b.*)?\s*$/ 122 if @in_part # if in non-RD part 123 @part_content.push(line) 124 else 125 @in_part = "rd" 126 return [:WHITELINE, "=begin\n"] # <= for textblockand 127 end 128 # non-RD part begin 129 when /^=begin\s+(\w+)/ 130 part = $1 131 if @in_part # if in non-RD part 132 @part_content.push(line) 133 else 134 @in_part = part if @tree.filter[part] # if filter exists 135# p "BEGIN_PART: #{@in_part}" # DEBUG 136 end 137 # non-RD part end 138 when /^=end/ 139 if @in_part # if in non-RD part 140# p "END_PART: #{@in_part}" # DEBUG 141 # make Part-in object 142 part = RDoc::RD::Part.new(@part_content.join(""), @tree, "r") 143 @part_content.clear 144 # call filter, part_out is output(Part object) 145 part_out = @tree.filter[@in_part].call(part) 146 147 if @tree.filter[@in_part].mode == :rd # if output is RD formated 148 subtree = parse_subtree(part_out.to_a) 149 else # if output is target formated 150 basename = TMPFILE.join('.') 151 TMPFILE[-1] += 1 152 tmpfile = open(@tree.tmp_dir + "/" + basename + ".#{@in_part}", "w") 153 tmpfile.print(part_out) 154 tmpfile.close 155 subtree = parse_subtree(["=begin\n", "<<< #{basename}\n", "=end\n"]) 156 end 157 @in_part = nil 158 return [:SUBTREE, subtree] 159 end 160 else 161 if @in_part # if in non-RD part 162 @part_content.push(line) 163 end 164 end 165 end 166 167 @current_indent = @indent_stack.join("") 168 line = @src[@i] 169 case line 170 when false 171 if_current_indent_equal("") do 172 [false, false] 173 end 174 when /^=end/ 175 if_current_indent_equal("") do 176 @in_part = nil 177 [:WHITELINE, "=end"] # MUST CHANGE?? 178 end 179 when /^\s*$/ 180 @i += 1 # next line 181 return [:WHITELINE, ':WHITELINE'] 182 when /^\#/ # comment line 183 @i += 1 # next line 184 self.next_token() 185 when /^(={1,4})(?!=)\s*(?=\S)/, /^(\+{1,2})(?!\+)\s*(?=\S)/ 186 rest = $' # ' 187 rest.strip! 188 mark = $1 189 if_current_indent_equal("") do 190 return [:HEADLINE, [MARK_TO_LEVEL[mark], rest]] 191 end 192 when /^<<<\s*(\S+)/ 193 file = $1 194 if_current_indent_equal("") do 195 suffix = file[-3 .. -1] 196 if suffix == ".rd" or suffix == ".rb" 197 subtree = parse_subtree(get_included(file)) 198 [:SUBTREE, subtree] 199 else 200 [:INCLUDE, file] 201 end 202 end 203 when /^(\s*)\*(\s*)/ 204 rest = $' # ' 205 newIndent = $2 206 if_current_indent_equal($1) do 207 if @in_verbatim 208 [:STRINGLINE, line] 209 else 210 @indent_stack.push("\s" << newIndent) 211 [:ITEMLISTLINE, rest] 212 end 213 end 214 when /^(\s*)(\(\d+\))(\s*)/ 215 rest = $' # ' 216 mark = $2 217 newIndent = $3 218 if_current_indent_equal($1) do 219 if @in_verbatim 220 [:STRINGLINE, line] 221 else 222 @indent_stack.push("\s" * mark.size << newIndent) 223 [:ENUMLISTLINE, rest] 224 end 225 end 226 when /^(\s*):(\s*)/ 227 rest = $' # ' 228 newIndent = $2 229 if_current_indent_equal($1) do 230 if @in_verbatim 231 [:STRINGLINE, line] 232 else 233 @indent_stack.push("\s#{$2}") 234 [:DESCLISTLINE, rest] 235 end 236 end 237 when /^(\s*)---(?!-|\s*$)/ 238 indent = $1 239 rest = $' 240 /\s*/ === rest 241 term = $' 242 new_indent = $& 243 if_current_indent_equal(indent) do 244 if @in_verbatim 245 [:STRINGLINE, line] 246 else 247 @indent_stack.push("\s\s\s" + new_indent) 248 [:METHODLISTLINE, term] 249 end 250 end 251 when /^(\s*)/ 252 if_current_indent_equal($1) do 253 [:STRINGLINE, line] 254 end 255 else 256 raise "[BUG] parsing error may occurred." 257 end 258end 259 260## 261# Yields to the given block if +indent+ matches the current indent, otherwise 262# an indentation token is processed. 263 264def if_current_indent_equal(indent) 265 indent = indent.sub(/\t/, "\s" * 8) 266 if @current_indent == indent 267 @i += 1 # next line 268 yield 269 elsif indent.index(@current_indent) == 0 270 @indent_stack.push(indent[@current_indent.size .. -1]) 271 [:INDENT, ":INDENT"] 272 else 273 @indent_stack.pop 274 [:DEDENT, ":DEDENT"] 275 end 276end 277private :if_current_indent_equal 278 279## 280# Cuts off excess whitespace in +src+ 281 282def cut_off(src) 283 ret = [] 284 whiteline_buf = [] 285 286 line = src.shift 287 /^\s*/ =~ line 288 289 indent = Regexp.quote($&) 290 ret.push($') 291 292 while line = src.shift 293 if /^(\s*)$/ =~ line 294 whiteline_buf.push(line) 295 elsif /^#{indent}/ =~ line 296 unless whiteline_buf.empty? 297 ret.concat(whiteline_buf) 298 whiteline_buf.clear 299 end 300 ret.push($') 301 else 302 raise "[BUG]: probably Parser Error while cutting off.\n" 303 end 304 end 305 ret 306end 307private :cut_off 308 309def set_term_to_element(parent, term) 310# parent.set_term_under_document_struct(term, @tree.document_struct) 311 parent.set_term_without_document_struct(term) 312end 313private :set_term_to_element 314 315## 316# Raises a ParseError when invalid formatting is found 317 318def on_error(et, ev, _values) 319 prv, cur, nxt = format_line_num(@i, @i+1, @i+2) 320 321 raise ParseError, <<Msg 322 323RD syntax error: line #{@i+1}: 324 #{prv} |#{@src[@i-1].chomp} 325 #{cur}=>|#{@src[@i].chomp} 326 #{nxt} |#{@src[@i+1].chomp} 327 328Msg 329end 330 331## 332# Current line number 333 334def line_index 335 @i 336end 337 338## 339# Parses subtree +src+ 340 341def parse_subtree src 342 @subparser ||= RDoc::RD::BlockParser.new 343 344 @subparser.parse src 345end 346private :parse_subtree 347 348## 349# Retrieves the content for +file+ from the include_path 350 351def get_included(file) 352 included = [] 353 354 @include_path.each do |dir| 355 file_name = File.join dir, file 356 357 if File.exist? file_name then 358 included = IO.readlines file_name 359 break 360 end 361 end 362 363 included 364end 365private :get_included 366 367## 368# Formats line numbers +line_numbers+ prettily 369 370def format_line_num(*line_numbers) 371 width = line_numbers.collect{|i| i.to_s.length }.max 372 line_numbers.collect{|i| sprintf("%#{width}d", i) } 373end 374private :format_line_num 375 376## 377# Retrieves the content of +values+ as a single String 378 379def content values 380 values.map { |value| value.content }.join 381end 382 383## 384# Creates a paragraph for +value+ 385 386def paragraph value 387 content = cut_off(value).join(' ').rstrip 388 contents = @inline_parser.parse content 389 390 RDoc::Markup::Paragraph.new(*contents) 391end 392 393## 394# Adds footnote +content+ to the document 395 396def add_footnote content 397 index = @footnotes.length / 2 + 1 398 399 footmark_link = "{^#{index}}[rdoc-label:footmark-#{index}:foottext-#{index}]" 400 401 @footnotes << RDoc::Markup::Paragraph.new(footmark_link, ' ', *content) 402 @footnotes << RDoc::Markup::BlankLine.new 403 404 index 405end 406 407## 408# Adds label +label+ to the document 409 410def add_label label 411 @labels[label] = true 412 413 label 414end 415 416# :stopdoc: 417 418##### State transition tables begin ### 419 420racc_action_table = [ 421 34, 35, 30, 33, 14, 73, 38, 33, 76, 15, 422 88, 34, 35, 30, 33, 40, 34, 35, 30, 33, 423 40, 65, 34, 35, 30, 33, 14, 73, 77, 14, 424 54, 15, 34, 35, 30, 33, 14, 9, 10, 11, 425 12, 15, 34, 35, 30, 33, 14, 73, 81, 54, 426 38, 15, 34, 35, 30, 33, 14, 73, 40, 67, 427 83, 15, 34, 35, 30, 33, 14, 73, 54, 30, 428 35, 15, 34, 35, 30, 33, 34, 47, 36, 14, 429 59, 15, 34, 35, 30, 33, 14, 73, 38, nil, 430 nil, 15, 34, 35, 30, 33, nil, 47, nil, nil, 431 nil, 15, 34, 35, 30, 33, 14, 73, nil, nil, 432 nil, 15, 34, 35, 30, 33, 14, 73, nil, nil, 433 nil, 15, 34, 35, 30, 33, 14, 9, 10, 11, 434 12, 15, 34, 35, 30, 33, 14, 73, nil, nil, 435 nil, 15, 34, 35, 30, 33, 14, 73, 61, 63, 436 nil, 15, nil, 62, 60, 61, 63, 61, 63, 14, 437 62, 87, 62, nil, 79, 34, 35, 30, 33 ] 438 439racc_action_check = [ 440 86, 86, 86, 86, 86, 86, 57, 31, 49, 86, 441 86, 41, 41, 41, 41, 41, 15, 15, 15, 15, 442 15, 41, 45, 45, 45, 45, 45, 45, 51, 34, 443 54, 45, 0, 0, 0, 0, 0, 0, 0, 0, 444 0, 0, 85, 85, 85, 85, 85, 85, 56, 33, 445 58, 85, 79, 79, 79, 79, 79, 79, 62, 44, 446 66, 79, 78, 78, 78, 78, 78, 78, 30, 28, 447 25, 78, 24, 24, 24, 24, 22, 24, 1, 35, 448 36, 24, 75, 75, 75, 75, 75, 75, 13, nil, 449 nil, 75, 27, 27, 27, 27, nil, 27, nil, nil, 450 nil, 27, 74, 74, 74, 74, 74, 74, nil, nil, 451 nil, 74, 68, 68, 68, 68, 68, 68, nil, nil, 452 nil, 68, 2, 2, 2, 2, 2, 2, 2, 2, 453 2, 2, 46, 46, 46, 46, 46, 46, nil, nil, 454 nil, 46, 47, 47, 47, 47, 47, 47, 39, 39, 455 nil, 47, nil, 39, 39, 82, 82, 64, 64, 52, 456 82, 82, 64, nil, 52, 20, 20, 20, 20 ] 457 458racc_action_pointer = [ 459 29, 78, 119, nil, nil, nil, nil, nil, nil, nil, 460 nil, nil, nil, 81, nil, 13, nil, nil, nil, nil, 461 162, nil, 73, nil, 69, 66, nil, 89, 64, nil, 462 60, 1, nil, 41, 22, 72, 80, nil, nil, 141, 463 nil, 8, nil, nil, 46, 19, 129, 139, nil, -5, 464 nil, 15, 152, nil, 22, nil, 35, -1, 43, nil, 465 nil, nil, 51, nil, 150, nil, 47, nil, 109, nil, 466 nil, nil, nil, nil, 99, 79, nil, nil, 59, 49, 467 nil, nil, 148, nil, nil, 39, -3, nil, nil ] 468 469racc_action_default = [ 470 -2, -73, -1, -4, -5, -6, -7, -8, -9, -10, 471 -11, -12, -13, -14, -16, -73, -23, -24, -25, -26, 472 -27, -31, -32, -34, -72, -36, -38, -72, -40, -42, 473 -59, -44, -46, -59, -63, -65, -73, -3, -15, -73, 474 -22, -73, -30, -33, -73, -69, -70, -71, -37, -73, 475 -41, -73, -51, -58, -61, -45, -73, -62, -64, 89, 476 -17, -19, -73, -21, -18, -28, -73, -35, -66, -53, 477 -54, -55, -56, -57, -67, -68, -39, -43, -49, -73, 478 -60, -47, -73, -29, -52, -48, -73, -20, -50 ] 479 480racc_goto_table = [ 481 4, 39, 4, 68, 74, 75, 5, 6, 5, 6, 482 51, 42, 44, 56, 3, 49, 37, 57, 58, 41, 483 43, 48, 84, 50, 66, 55, 1, 64, 84, 84, 484 45, 46, 42, 45, 46, 2, 85, 86, 80, 84, 485 84, nil, nil, nil, nil, nil, nil, nil, 82, nil, 486 nil, nil, 78 ] 487 488racc_goto_check = [ 489 4, 10, 4, 31, 31, 31, 5, 6, 5, 6, 490 27, 12, 21, 27, 3, 21, 3, 9, 9, 17, 491 19, 23, 32, 26, 11, 29, 1, 10, 32, 32, 492 5, 6, 12, 5, 6, 2, 31, 31, 33, 32, 493 32, nil, nil, nil, nil, nil, nil, nil, 10, nil, 494 nil, nil, 4 ] 495 496racc_goto_pointer = [ 497 nil, 26, 35, 14, 0, 6, 7, nil, nil, -17, 498 -14, -17, -9, nil, nil, nil, nil, 4, nil, -2, 499 nil, -12, nil, -4, nil, nil, -5, -20, nil, -6, 500 nil, -42, -46, -16 ] 501 502racc_goto_default = [ 503 nil, nil, nil, nil, 70, 71, 72, 7, 8, 13, 504 nil, nil, 21, 16, 17, 18, 19, 20, 22, 23, 505 24, nil, 25, 26, 27, 28, 29, nil, 31, 32, 506 52, nil, 69, 53 ] 507 508racc_reduce_table = [ 509 0, 0, :racc_error, 510 1, 15, :_reduce_1, 511 0, 15, :_reduce_2, 512 2, 16, :_reduce_3, 513 1, 16, :_reduce_4, 514 1, 17, :_reduce_5, 515 1, 17, :_reduce_6, 516 1, 17, :_reduce_none, 517 1, 17, :_reduce_8, 518 1, 17, :_reduce_9, 519 1, 17, :_reduce_10, 520 1, 17, :_reduce_11, 521 1, 21, :_reduce_12, 522 1, 22, :_reduce_13, 523 1, 18, :_reduce_14, 524 2, 23, :_reduce_15, 525 1, 23, :_reduce_16, 526 3, 19, :_reduce_17, 527 1, 25, :_reduce_18, 528 2, 24, :_reduce_19, 529 4, 24, :_reduce_20, 530 2, 24, :_reduce_21, 531 1, 24, :_reduce_22, 532 1, 26, :_reduce_none, 533 1, 26, :_reduce_none, 534 1, 26, :_reduce_none, 535 1, 26, :_reduce_none, 536 1, 20, :_reduce_27, 537 3, 20, :_reduce_28, 538 4, 20, :_reduce_29, 539 2, 31, :_reduce_30, 540 1, 31, :_reduce_31, 541 1, 27, :_reduce_32, 542 2, 32, :_reduce_33, 543 1, 32, :_reduce_34, 544 3, 33, :_reduce_35, 545 1, 28, :_reduce_36, 546 2, 36, :_reduce_37, 547 1, 36, :_reduce_38, 548 3, 37, :_reduce_39, 549 1, 29, :_reduce_40, 550 2, 39, :_reduce_41, 551 1, 39, :_reduce_42, 552 3, 40, :_reduce_43, 553 1, 30, :_reduce_44, 554 2, 42, :_reduce_45, 555 1, 42, :_reduce_46, 556 3, 43, :_reduce_47, 557 3, 41, :_reduce_48, 558 2, 41, :_reduce_49, 559 4, 41, :_reduce_50, 560 1, 41, :_reduce_51, 561 2, 45, :_reduce_52, 562 1, 45, :_reduce_none, 563 1, 46, :_reduce_54, 564 1, 46, :_reduce_55, 565 1, 46, :_reduce_none, 566 1, 46, :_reduce_57, 567 1, 44, :_reduce_none, 568 0, 44, :_reduce_none, 569 2, 47, :_reduce_none, 570 1, 47, :_reduce_none, 571 2, 34, :_reduce_62, 572 1, 34, :_reduce_63, 573 2, 38, :_reduce_64, 574 1, 38, :_reduce_65, 575 2, 35, :_reduce_66, 576 2, 35, :_reduce_67, 577 2, 35, :_reduce_68, 578 1, 35, :_reduce_69, 579 1, 35, :_reduce_none, 580 1, 35, :_reduce_71, 581 0, 35, :_reduce_72 ] 582 583racc_reduce_n = 73 584 585racc_shift_n = 89 586 587racc_token_table = { 588 false => 0, 589 :error => 1, 590 :DUMMY => 2, 591 :ITEMLISTLINE => 3, 592 :ENUMLISTLINE => 4, 593 :DESCLISTLINE => 5, 594 :METHODLISTLINE => 6, 595 :STRINGLINE => 7, 596 :WHITELINE => 8, 597 :SUBTREE => 9, 598 :HEADLINE => 10, 599 :INCLUDE => 11, 600 :INDENT => 12, 601 :DEDENT => 13 } 602 603racc_nt_base = 14 604 605racc_use_result_var = true 606 607Racc_arg = [ 608 racc_action_table, 609 racc_action_check, 610 racc_action_default, 611 racc_action_pointer, 612 racc_goto_table, 613 racc_goto_check, 614 racc_goto_default, 615 racc_goto_pointer, 616 racc_nt_base, 617 racc_reduce_table, 618 racc_token_table, 619 racc_shift_n, 620 racc_reduce_n, 621 racc_use_result_var ] 622 623Racc_token_to_s_table = [ 624 "$end", 625 "error", 626 "DUMMY", 627 "ITEMLISTLINE", 628 "ENUMLISTLINE", 629 "DESCLISTLINE", 630 "METHODLISTLINE", 631 "STRINGLINE", 632 "WHITELINE", 633 "SUBTREE", 634 "HEADLINE", 635 "INCLUDE", 636 "INDENT", 637 "DEDENT", 638 "$start", 639 "document", 640 "blocks", 641 "block", 642 "textblock", 643 "verbatim", 644 "lists", 645 "headline", 646 "include", 647 "textblockcontent", 648 "verbatimcontent", 649 "verbatim_after_lists", 650 "list", 651 "itemlist", 652 "enumlist", 653 "desclist", 654 "methodlist", 655 "lists2", 656 "itemlistitems", 657 "itemlistitem", 658 "first_textblock_in_itemlist", 659 "other_blocks_in_list", 660 "enumlistitems", 661 "enumlistitem", 662 "first_textblock_in_enumlist", 663 "desclistitems", 664 "desclistitem", 665 "description_part", 666 "methodlistitems", 667 "methodlistitem", 668 "whitelines", 669 "blocks_in_list", 670 "block_in_list", 671 "whitelines2" ] 672 673Racc_debug_parser = false 674 675##### State transition tables end ##### 676 677# reduce 0 omitted 678 679def _reduce_1(val, _values, result) 680 result = RDoc::Markup::Document.new(*val[0]) 681 result 682end 683 684def _reduce_2(val, _values, result) 685 raise ParseError, "file empty" 686 result 687end 688 689def _reduce_3(val, _values, result) 690 result = val[0].concat val[1] 691 result 692end 693 694def _reduce_4(val, _values, result) 695 result = val[0] 696 result 697end 698 699def _reduce_5(val, _values, result) 700 result = val 701 result 702end 703 704def _reduce_6(val, _values, result) 705 result = val 706 result 707end 708 709# reduce 7 omitted 710 711def _reduce_8(val, _values, result) 712 result = val 713 result 714end 715 716def _reduce_9(val, _values, result) 717 result = val 718 result 719end 720 721def _reduce_10(val, _values, result) 722 result = [RDoc::Markup::BlankLine.new] 723 result 724end 725 726def _reduce_11(val, _values, result) 727 result = val[0].parts 728 result 729end 730 731def _reduce_12(val, _values, result) 732 # val[0] is like [level, title] 733 title = @inline_parser.parse(val[0][1]) 734 result = RDoc::Markup::Heading.new(val[0][0], title) 735 736 result 737end 738 739def _reduce_13(val, _values, result) 740 result = RDoc::Markup::Include.new val[0], @include_path 741 742 result 743end 744 745def _reduce_14(val, _values, result) 746 # val[0] is Array of String 747 result = paragraph val[0] 748 749 result 750end 751 752def _reduce_15(val, _values, result) 753 result << val[1].rstrip 754 result 755end 756 757def _reduce_16(val, _values, result) 758 result = [val[0].rstrip] 759 result 760end 761 762def _reduce_17(val, _values, result) 763 # val[1] is Array of String 764 content = cut_off val[1] 765 result = RDoc::Markup::Verbatim.new(*content) 766 767 # imform to lexer. 768 @in_verbatim = false 769 770 result 771end 772 773def _reduce_18(val, _values, result) 774 # val[0] is Array of String 775 content = cut_off val[0] 776 result = RDoc::Markup::Verbatim.new(*content) 777 778 # imform to lexer. 779 @in_verbatim = false 780 781 result 782end 783 784def _reduce_19(val, _values, result) 785 result << val[1] 786 787 result 788end 789 790def _reduce_20(val, _values, result) 791 result.concat val[2] 792 793 result 794end 795 796def _reduce_21(val, _values, result) 797 result << "\n" 798 799 result 800end 801 802def _reduce_22(val, _values, result) 803 result = val 804 # inform to lexer. 805 @in_verbatim = true 806 807 result 808end 809 810# reduce 23 omitted 811 812# reduce 24 omitted 813 814# reduce 25 omitted 815 816# reduce 26 omitted 817 818def _reduce_27(val, _values, result) 819 result = val[0] 820 821 result 822end 823 824def _reduce_28(val, _values, result) 825 result = val[1] 826 827 result 828end 829 830def _reduce_29(val, _values, result) 831 result = val[1].push(val[2]) 832 833 result 834end 835 836def _reduce_30(val, _values, result) 837 result = val[0] << val[1] 838 result 839end 840 841def _reduce_31(val, _values, result) 842 result = [val[0]] 843 result 844end 845 846def _reduce_32(val, _values, result) 847 result = RDoc::Markup::List.new :BULLET, *val[0] 848 849 result 850end 851 852def _reduce_33(val, _values, result) 853 result.push(val[1]) 854 result 855end 856 857def _reduce_34(val, _values, result) 858 result = val 859 result 860end 861 862def _reduce_35(val, _values, result) 863 result = RDoc::Markup::ListItem.new nil, val[0], *val[1] 864 865 result 866end 867 868def _reduce_36(val, _values, result) 869 result = RDoc::Markup::List.new :NUMBER, *val[0] 870 871 result 872end 873 874def _reduce_37(val, _values, result) 875 result.push(val[1]) 876 result 877end 878 879def _reduce_38(val, _values, result) 880 result = val 881 result 882end 883 884def _reduce_39(val, _values, result) 885 result = RDoc::Markup::ListItem.new nil, val[0], *val[1] 886 887 result 888end 889 890def _reduce_40(val, _values, result) 891 result = RDoc::Markup::List.new :NOTE, *val[0] 892 893 result 894end 895 896def _reduce_41(val, _values, result) 897 result.push(val[1]) 898 result 899end 900 901def _reduce_42(val, _values, result) 902 result = val 903 result 904end 905 906def _reduce_43(val, _values, result) 907 term = @inline_parser.parse val[0].strip 908 909 result = RDoc::Markup::ListItem.new term, *val[1] 910 911 result 912end 913 914def _reduce_44(val, _values, result) 915 result = RDoc::Markup::List.new :LABEL, *val[0] 916 917 result 918end 919 920def _reduce_45(val, _values, result) 921 result.push(val[1]) 922 result 923end 924 925def _reduce_46(val, _values, result) 926 result = val 927 result 928end 929 930def _reduce_47(val, _values, result) 931 result = RDoc::Markup::ListItem.new "<tt>#{val[0].strip}</tt>", *val[1] 932 933 result 934end 935 936def _reduce_48(val, _values, result) 937 result = [val[1]].concat(val[2]) 938 939 result 940end 941 942def _reduce_49(val, _values, result) 943 result = [val[1]] 944 945 result 946end 947 948def _reduce_50(val, _values, result) 949 result = val[2] 950 951 result 952end 953 954def _reduce_51(val, _values, result) 955 result = [] 956 957 result 958end 959 960def _reduce_52(val, _values, result) 961 result.concat val[1] 962 result 963end 964 965# reduce 53 omitted 966 967def _reduce_54(val, _values, result) 968 result = val 969 result 970end 971 972def _reduce_55(val, _values, result) 973 result = val 974 result 975end 976 977# reduce 56 omitted 978 979def _reduce_57(val, _values, result) 980 result = [] 981 result 982end 983 984# reduce 58 omitted 985 986# reduce 59 omitted 987 988# reduce 60 omitted 989 990# reduce 61 omitted 991 992def _reduce_62(val, _values, result) 993 result = paragraph [val[0]].concat(val[1]) 994 995 result 996end 997 998def _reduce_63(val, _values, result) 999 result = paragraph [val[0]] 1000 1001 result 1002end 1003 1004def _reduce_64(val, _values, result) 1005 result = paragraph [val[0]].concat(val[1]) 1006 1007 result 1008end 1009 1010def _reduce_65(val, _values, result) 1011 result = paragraph [val[0]] 1012 1013 result 1014end 1015 1016def _reduce_66(val, _values, result) 1017 result = [val[0]].concat(val[1]) 1018 1019 result 1020end 1021 1022def _reduce_67(val, _values, result) 1023 result.concat val[1] 1024 result 1025end 1026 1027def _reduce_68(val, _values, result) 1028 result = val[1] 1029 result 1030end 1031 1032def _reduce_69(val, _values, result) 1033 result = val 1034 result 1035end 1036 1037# reduce 70 omitted 1038 1039def _reduce_71(val, _values, result) 1040 result = [] 1041 result 1042end 1043 1044def _reduce_72(val, _values, result) 1045 result = [] 1046 result 1047end 1048 1049def _reduce_none(val, _values, result) 1050 val[0] 1051end 1052 1053end # class BlockParser 1054 1055end 1056