1# coding: UTF-8 2# frozen_string_literal: true 3# :markup: markdown 4 5## 6# RDoc::Markdown as described by the [markdown syntax][syntax]. 7# 8# To choose Markdown as your only default format see 9# RDoc::Options@Saved+Options for instructions on setting up a `.doc_options` 10# file to store your project default. 11# 12# ## Usage 13# 14# Here is a brief example of using this parse to read a markdown file by hand. 15# 16# data = File.read("README.md") 17# formatter = RDoc::Markup::ToHtml.new(RDoc::Options.new, nil) 18# html = RDoc::Markdown.parse(data).accept(formatter) 19# 20# # do something with html 21# 22# ## Extensions 23# 24# The following markdown extensions are supported by the parser, but not all 25# are used in RDoc output by default. 26# 27# ### RDoc 28# 29# The RDoc Markdown parser has the following built-in behaviors that cannot be 30# disabled. 31# 32# Underscores embedded in words are never interpreted as emphasis. (While the 33# [markdown dingus][dingus] emphasizes in-word underscores, neither the 34# Markdown syntax nor MarkdownTest mention this behavior.) 35# 36# For HTML output, RDoc always auto-links bare URLs. 37# 38# ### Break on Newline 39# 40# The break_on_newline extension converts all newlines into hard line breaks 41# as in [Github Flavored Markdown][GFM]. This extension is disabled by 42# default. 43# 44# ### CSS 45# 46# The #css extension enables CSS blocks to be included in the output, but they 47# are not used for any built-in RDoc output format. This extension is disabled 48# by default. 49# 50# Example: 51# 52# <style type="text/css"> 53# h1 { font-size: 3em } 54# </style> 55# 56# ### Definition Lists 57# 58# The definition_lists extension allows definition lists using the [PHP 59# Markdown Extra syntax][PHPE], but only one label and definition are supported 60# at this time. This extension is enabled by default. 61# 62# Example: 63# 64# ``` 65# cat 66# : A small furry mammal 67# that seems to sleep a lot 68# 69# ant 70# : A little insect that is known 71# to enjoy picnics 72# 73# ``` 74# 75# Produces: 76# 77# cat 78# : A small furry mammal 79# that seems to sleep a lot 80# 81# ant 82# : A little insect that is known 83# to enjoy picnics 84# 85# ### Strike 86# 87# Example: 88# 89# ``` 90# This is ~~striked~~. 91# ``` 92# 93# Produces: 94# 95# This is ~~striked~~. 96# 97# ### Github 98# 99# The #github extension enables a partial set of [Github Flavored Markdown] 100# [GFM]. This extension is enabled by default. 101# 102# Supported github extensions include: 103# 104# #### Fenced code blocks 105# 106# Use ` ``` ` around a block of code instead of indenting it four spaces. 107# 108# #### Syntax highlighting 109# 110# Use ` ``` ruby ` as the start of a code fence to add syntax highlighting. 111# (Currently only `ruby` syntax is supported). 112# 113# ### HTML 114# 115# Enables raw HTML to be included in the output. This extension is enabled by 116# default. 117# 118# Example: 119# 120# <table> 121# ... 122# </table> 123# 124# ### Notes 125# 126# The #notes extension enables footnote support. This extension is enabled by 127# default. 128# 129# Example: 130# 131# Here is some text[^1] including an inline footnote ^[for short footnotes] 132# 133# ... 134# 135# [^1]: With the footnote text down at the bottom 136# 137# Produces: 138# 139# Here is some text[^1] including an inline footnote ^[for short footnotes] 140# 141# [^1]: With the footnote text down at the bottom 142# 143# ## Limitations 144# 145# * Link titles are not used 146# * Footnotes are collapsed into a single paragraph 147# 148# ## Author 149# 150# This markdown parser is a port to kpeg from [peg-markdown][pegmarkdown] by 151# John MacFarlane. 152# 153# It is used under the MIT license: 154# 155# Permission is hereby granted, free of charge, to any person obtaining a copy 156# of this software and associated documentation files (the "Software"), to deal 157# in the Software without restriction, including without limitation the rights 158# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 159# copies of the Software, and to permit persons to whom the Software is 160# furnished to do so, subject to the following conditions: 161# 162# The above copyright notice and this permission notice shall be included in 163# all copies or substantial portions of the Software. 164# 165# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 166# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 167# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 168# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 169# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 170# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 171# THE SOFTWARE. 172# 173# The port to kpeg was performed by Eric Hodel and Evan Phoenix 174# 175# [dingus]: http://daringfireball.net/projects/markdown/dingus 176# [GFM]: http://github.github.com/github-flavored-markdown/ 177# [pegmarkdown]: https://github.com/jgm/peg-markdown 178# [PHPE]: http://michelf.com/projects/php-markdown/extra/#def-list 179# [syntax]: http://daringfireball.net/projects/markdown/syntax 180#-- 181# Last updated to jgm/peg-markdown commit 8f8fc22ef0 182class RDoc::Markdown 183 # :stopdoc: 184 185 # This is distinct from setup_parser so that a standalone parser 186 # can redefine #initialize and still have access to the proper 187 # parser setup code. 188 def initialize(str, debug=false) 189 setup_parser(str, debug) 190 end 191 192 193 194 # Prepares for parsing +str+. If you define a custom initialize you must 195 # call this method before #parse 196 def setup_parser(str, debug=false) 197 set_string str, 0 198 @memoizations = Hash.new { |h,k| h[k] = {} } 199 @result = nil 200 @failed_rule = nil 201 @failing_rule_offset = -1 202 203 setup_foreign_grammar 204 end 205 206 attr_reader :string 207 attr_reader :failing_rule_offset 208 attr_accessor :result, :pos 209 210 def current_column(target=pos) 211 if c = string.rindex("\n", target-1) 212 return target - c - 1 213 end 214 215 target + 1 216 end 217 218 def current_line(target=pos) 219 cur_offset = 0 220 cur_line = 0 221 222 string.each_line do |line| 223 cur_line += 1 224 cur_offset += line.size 225 return cur_line if cur_offset >= target 226 end 227 228 -1 229 end 230 231 def lines 232 lines = [] 233 string.each_line { |l| lines << l } 234 lines 235 end 236 237 238 239 def get_text(start) 240 @string[start..@pos-1] 241 end 242 243 # Sets the string and current parsing position for the parser. 244 def set_string string, pos 245 @string = string 246 @string_size = string ? string.size : 0 247 @pos = pos 248 end 249 250 def show_pos 251 width = 10 252 if @pos < width 253 "#{@pos} (\"#{@string[0,@pos]}\" @ \"#{@string[@pos,width]}\")" 254 else 255 "#{@pos} (\"... #{@string[@pos - width, width]}\" @ \"#{@string[@pos,width]}\")" 256 end 257 end 258 259 def failure_info 260 l = current_line @failing_rule_offset 261 c = current_column @failing_rule_offset 262 263 if @failed_rule.kind_of? Symbol 264 info = self.class::Rules[@failed_rule] 265 "line #{l}, column #{c}: failed rule '#{info.name}' = '#{info.rendered}'" 266 else 267 "line #{l}, column #{c}: failed rule '#{@failed_rule}'" 268 end 269 end 270 271 def failure_caret 272 l = current_line @failing_rule_offset 273 c = current_column @failing_rule_offset 274 275 line = lines[l-1] 276 "#{line}\n#{' ' * (c - 1)}^" 277 end 278 279 def failure_character 280 l = current_line @failing_rule_offset 281 c = current_column @failing_rule_offset 282 lines[l-1][c-1, 1] 283 end 284 285 def failure_oneline 286 l = current_line @failing_rule_offset 287 c = current_column @failing_rule_offset 288 289 char = lines[l-1][c-1, 1] 290 291 if @failed_rule.kind_of? Symbol 292 info = self.class::Rules[@failed_rule] 293 "@#{l}:#{c} failed rule '#{info.name}', got '#{char}'" 294 else 295 "@#{l}:#{c} failed rule '#{@failed_rule}', got '#{char}'" 296 end 297 end 298 299 class ParseError < RuntimeError 300 end 301 302 def raise_error 303 raise ParseError, failure_oneline 304 end 305 306 def show_error(io=STDOUT) 307 error_pos = @failing_rule_offset 308 line_no = current_line(error_pos) 309 col_no = current_column(error_pos) 310 311 io.puts "On line #{line_no}, column #{col_no}:" 312 313 if @failed_rule.kind_of? Symbol 314 info = self.class::Rules[@failed_rule] 315 io.puts "Failed to match '#{info.rendered}' (rule '#{info.name}')" 316 else 317 io.puts "Failed to match rule '#{@failed_rule}'" 318 end 319 320 io.puts "Got: #{string[error_pos,1].inspect}" 321 line = lines[line_no-1] 322 io.puts "=> #{line}" 323 io.print(" " * (col_no + 3)) 324 io.puts "^" 325 end 326 327 def set_failed_rule(name) 328 if @pos > @failing_rule_offset 329 @failed_rule = name 330 @failing_rule_offset = @pos 331 end 332 end 333 334 attr_reader :failed_rule 335 336 def match_string(str) 337 len = str.size 338 if @string[pos,len] == str 339 @pos += len 340 return str 341 end 342 343 return nil 344 end 345 346 def scan(reg) 347 if m = reg.match(@string[@pos..-1]) 348 width = m.end(0) 349 @pos += width 350 return true 351 end 352 353 return nil 354 end 355 356 if "".respond_to? :ord 357 def get_byte 358 if @pos >= @string_size 359 return nil 360 end 361 362 s = @string[@pos].ord 363 @pos += 1 364 s 365 end 366 else 367 def get_byte 368 if @pos >= @string_size 369 return nil 370 end 371 372 s = @string[@pos] 373 @pos += 1 374 s 375 end 376 end 377 378 def parse(rule=nil) 379 # We invoke the rules indirectly via apply 380 # instead of by just calling them as methods because 381 # if the rules use left recursion, apply needs to 382 # manage that. 383 384 if !rule 385 apply(:_root) 386 else 387 method = rule.gsub("-","_hyphen_") 388 apply :"_#{method}" 389 end 390 end 391 392 class MemoEntry 393 def initialize(ans, pos) 394 @ans = ans 395 @pos = pos 396 @result = nil 397 @set = false 398 @left_rec = false 399 end 400 401 attr_reader :ans, :pos, :result, :set 402 attr_accessor :left_rec 403 404 def move!(ans, pos, result) 405 @ans = ans 406 @pos = pos 407 @result = result 408 @set = true 409 @left_rec = false 410 end 411 end 412 413 def external_invoke(other, rule, *args) 414 old_pos = @pos 415 old_string = @string 416 417 set_string other.string, other.pos 418 419 begin 420 if val = __send__(rule, *args) 421 other.pos = @pos 422 other.result = @result 423 else 424 other.set_failed_rule "#{self.class}##{rule}" 425 end 426 val 427 ensure 428 set_string old_string, old_pos 429 end 430 end 431 432 def apply_with_args(rule, *args) 433 memo_key = [rule, args] 434 if m = @memoizations[memo_key][@pos] 435 @pos = m.pos 436 if !m.set 437 m.left_rec = true 438 return nil 439 end 440 441 @result = m.result 442 443 return m.ans 444 else 445 m = MemoEntry.new(nil, @pos) 446 @memoizations[memo_key][@pos] = m 447 start_pos = @pos 448 449 ans = __send__ rule, *args 450 451 lr = m.left_rec 452 453 m.move! ans, @pos, @result 454 455 # Don't bother trying to grow the left recursion 456 # if it's failing straight away (thus there is no seed) 457 if ans and lr 458 return grow_lr(rule, args, start_pos, m) 459 else 460 return ans 461 end 462 end 463 end 464 465 def apply(rule) 466 if m = @memoizations[rule][@pos] 467 @pos = m.pos 468 if !m.set 469 m.left_rec = true 470 return nil 471 end 472 473 @result = m.result 474 475 return m.ans 476 else 477 m = MemoEntry.new(nil, @pos) 478 @memoizations[rule][@pos] = m 479 start_pos = @pos 480 481 ans = __send__ rule 482 483 lr = m.left_rec 484 485 m.move! ans, @pos, @result 486 487 # Don't bother trying to grow the left recursion 488 # if it's failing straight away (thus there is no seed) 489 if ans and lr 490 return grow_lr(rule, nil, start_pos, m) 491 else 492 return ans 493 end 494 end 495 end 496 497 def grow_lr(rule, args, start_pos, m) 498 while true 499 @pos = start_pos 500 @result = m.result 501 502 if args 503 ans = __send__ rule, *args 504 else 505 ans = __send__ rule 506 end 507 return nil unless ans 508 509 break if @pos <= m.pos 510 511 m.move! ans, @pos, @result 512 end 513 514 @result = m.result 515 @pos = m.pos 516 return m.ans 517 end 518 519 class RuleInfo 520 def initialize(name, rendered) 521 @name = name 522 @rendered = rendered 523 end 524 525 attr_reader :name, :rendered 526 end 527 528 def self.rule_info(name, rendered) 529 RuleInfo.new(name, rendered) 530 end 531 532 533 # :startdoc: 534 535 536 537 require 'rdoc' 538 require 'rdoc/markup/to_joined_paragraph' 539 require 'rdoc/markdown/entities' 540 541 require 'rdoc/markdown/literals' 542 543 ## 544 # Supported extensions 545 546 EXTENSIONS = [] 547 548 ## 549 # Extensions enabled by default 550 551 DEFAULT_EXTENSIONS = [ 552 :definition_lists, 553 :github, 554 :html, 555 :notes, 556 :strike, 557 ] 558 559 # :section: Extensions 560 561 ## 562 # Creates extension methods for the `name` extension to enable and disable 563 # the extension and to query if they are active. 564 565 def self.extension name 566 EXTENSIONS << name 567 568 define_method "#{name}?" do 569 extension? name 570 end 571 572 define_method "#{name}=" do |enable| 573 extension name, enable 574 end 575 end 576 577 ## 578 # Converts all newlines into hard breaks 579 580 extension :break_on_newline 581 582 ## 583 # Allow style blocks 584 585 extension :css 586 587 ## 588 # Allow PHP Markdown Extras style definition lists 589 590 extension :definition_lists 591 592 ## 593 # Allow Github Flavored Markdown 594 595 extension :github 596 597 ## 598 # Allow HTML 599 600 extension :html 601 602 ## 603 # Enables the notes extension 604 605 extension :notes 606 607 ## 608 # Enables the strike extension 609 610 extension :strike 611 612 # :section: 613 614 ## 615 # Parses the `markdown` document into an RDoc::Document using the default 616 # extensions. 617 618 def self.parse markdown 619 parser = new 620 621 parser.parse markdown 622 end 623 624 # TODO remove when kpeg 0.10 is released 625 alias orig_initialize initialize # :nodoc: 626 627 ## 628 # Creates a new markdown parser that enables the given +extensions+. 629 630 def initialize extensions = DEFAULT_EXTENSIONS, debug = false 631 @debug = debug 632 @formatter = RDoc::Markup::ToJoinedParagraph.new 633 @extensions = extensions 634 635 @references = nil 636 @unlinked_references = nil 637 638 @footnotes = nil 639 @note_order = nil 640 end 641 642 ## 643 # Wraps `text` in emphasis for rdoc inline formatting 644 645 def emphasis text 646 if text =~ /\A[a-z\d.\/]+\z/i then 647 "_#{text}_" 648 else 649 "<em>#{text}</em>" 650 end 651 end 652 653 ## 654 # :category: Extensions 655 # 656 # Is the extension `name` enabled? 657 658 def extension? name 659 @extensions.include? name 660 end 661 662 ## 663 # :category: Extensions 664 # 665 # Enables or disables the extension with `name` 666 667 def extension name, enable 668 if enable then 669 @extensions |= [name] 670 else 671 @extensions -= [name] 672 end 673 end 674 675 ## 676 # Parses `text` in a clone of this parser. This is used for handling nested 677 # lists the same way as markdown_parser. 678 679 def inner_parse text # :nodoc: 680 parser = clone 681 682 parser.setup_parser text, @debug 683 684 parser.peg_parse 685 686 doc = parser.result 687 688 doc.accept @formatter 689 690 doc.parts 691 end 692 693 ## 694 # Finds a link reference for `label` and creates a new link to it with 695 # `content` as the link text. If `label` was not encountered in the 696 # reference-gathering parser pass the label and content are reconstructed 697 # with the linking `text` (usually whitespace). 698 699 def link_to content, label = content, text = nil 700 raise ParseError, 'enable notes extension' if 701 content.start_with? '^' and label.equal? content 702 703 if ref = @references[label] then 704 "{#{content}}[#{ref}]" 705 elsif label.equal? content then 706 "[#{content}]#{text}" 707 else 708 "[#{content}]#{text}[#{label}]" 709 end 710 end 711 712 ## 713 # Creates an RDoc::Markup::ListItem by parsing the `unparsed` content from 714 # the first parsing pass. 715 716 def list_item_from unparsed 717 parsed = inner_parse unparsed.join 718 RDoc::Markup::ListItem.new nil, *parsed 719 end 720 721 ## 722 # Stores `label` as a note and fills in previously unknown note references. 723 724 def note label 725 #foottext = "rdoc-label:foottext-#{label}:footmark-#{label}" 726 727 #ref.replace foottext if ref = @unlinked_notes.delete(label) 728 729 @notes[label] = foottext 730 731 #"{^1}[rdoc-label:footmark-#{label}:foottext-#{label}] " 732 end 733 734 ## 735 # Creates a new link for the footnote `reference` and adds the reference to 736 # the note order list for proper display at the end of the document. 737 738 def note_for ref 739 @note_order << ref 740 741 label = @note_order.length 742 743 "{*#{label}}[rdoc-label:foottext-#{label}:footmark-#{label}]" 744 end 745 746 ## 747 # The internal kpeg parse method 748 749 alias peg_parse parse # :nodoc: 750 751 ## 752 # Creates an RDoc::Markup::Paragraph from `parts` and including 753 # extension-specific behavior 754 755 def paragraph parts 756 parts = parts.map do |part| 757 if "\n" == part then 758 RDoc::Markup::HardBreak.new 759 else 760 part 761 end 762 end if break_on_newline? 763 764 RDoc::Markup::Paragraph.new(*parts) 765 end 766 767 ## 768 # Parses `markdown` into an RDoc::Document 769 770 def parse markdown 771 @references = {} 772 @unlinked_references = {} 773 774 markdown += "\n\n" 775 776 setup_parser markdown, @debug 777 peg_parse 'References' 778 779 if notes? then 780 @footnotes = {} 781 782 setup_parser markdown, @debug 783 peg_parse 'Notes' 784 785 # using note_order on the first pass would be a bug 786 @note_order = [] 787 end 788 789 setup_parser markdown, @debug 790 peg_parse 791 792 doc = result 793 794 if notes? and not @footnotes.empty? then 795 doc << RDoc::Markup::Rule.new(1) 796 797 @note_order.each_with_index do |ref, index| 798 label = index + 1 799 note = @footnotes[ref] 800 801 link = "{^#{label}}[rdoc-label:footmark-#{label}:foottext-#{label}] " 802 note.parts.unshift link 803 804 doc << note 805 end 806 end 807 808 doc.accept @formatter 809 810 doc 811 end 812 813 ## 814 # Stores `label` as a reference to `link` and fills in previously unknown 815 # link references. 816 817 def reference label, link 818 if ref = @unlinked_references.delete(label) then 819 ref.replace link 820 end 821 822 @references[label] = link 823 end 824 825 ## 826 # Wraps `text` in strong markup for rdoc inline formatting 827 828 def strong text 829 if text =~ /\A[a-z\d.\/-]+\z/i then 830 "*#{text}*" 831 else 832 "<b>#{text}</b>" 833 end 834 end 835 836 ## 837 # Wraps `text` in strike markup for rdoc inline formatting 838 839 def strike text 840 if text =~ /\A[a-z\d.\/-]+\z/i then 841 "~#{text}~" 842 else 843 "<s>#{text}</s>" 844 end 845 end 846 847 848 # :stopdoc: 849 def setup_foreign_grammar 850 @_grammar_literals = RDoc::Markdown::Literals.new(nil) 851 end 852 853 # root = Doc 854 def _root 855 _tmp = apply(:_Doc) 856 set_failed_rule :_root unless _tmp 857 return _tmp 858 end 859 860 # Doc = BOM? Block*:a { RDoc::Markup::Document.new(*a.compact) } 861 def _Doc 862 863 _save = self.pos 864 while true # sequence 865 _save1 = self.pos 866 _tmp = apply(:_BOM) 867 unless _tmp 868 _tmp = true 869 self.pos = _save1 870 end 871 unless _tmp 872 self.pos = _save 873 break 874 end 875 _ary = [] 876 while true 877 _tmp = apply(:_Block) 878 _ary << @result if _tmp 879 break unless _tmp 880 end 881 _tmp = true 882 @result = _ary 883 a = @result 884 unless _tmp 885 self.pos = _save 886 break 887 end 888 @result = begin; RDoc::Markup::Document.new(*a.compact) ; end 889 _tmp = true 890 unless _tmp 891 self.pos = _save 892 end 893 break 894 end # end sequence 895 896 set_failed_rule :_Doc unless _tmp 897 return _tmp 898 end 899 900 # Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain) 901 def _Block 902 903 _save = self.pos 904 while true # sequence 905 while true 906 _tmp = _BlankLine() 907 break unless _tmp 908 end 909 _tmp = true 910 unless _tmp 911 self.pos = _save 912 break 913 end 914 915 _save2 = self.pos 916 while true # choice 917 _tmp = apply(:_BlockQuote) 918 break if _tmp 919 self.pos = _save2 920 _tmp = apply(:_Verbatim) 921 break if _tmp 922 self.pos = _save2 923 _tmp = apply(:_CodeFence) 924 break if _tmp 925 self.pos = _save2 926 _tmp = apply(:_Note) 927 break if _tmp 928 self.pos = _save2 929 _tmp = apply(:_Reference) 930 break if _tmp 931 self.pos = _save2 932 _tmp = apply(:_HorizontalRule) 933 break if _tmp 934 self.pos = _save2 935 _tmp = apply(:_Heading) 936 break if _tmp 937 self.pos = _save2 938 _tmp = apply(:_OrderedList) 939 break if _tmp 940 self.pos = _save2 941 _tmp = apply(:_BulletList) 942 break if _tmp 943 self.pos = _save2 944 _tmp = apply(:_DefinitionList) 945 break if _tmp 946 self.pos = _save2 947 _tmp = apply(:_HtmlBlock) 948 break if _tmp 949 self.pos = _save2 950 _tmp = apply(:_StyleBlock) 951 break if _tmp 952 self.pos = _save2 953 _tmp = apply(:_Para) 954 break if _tmp 955 self.pos = _save2 956 _tmp = apply(:_Plain) 957 break if _tmp 958 self.pos = _save2 959 break 960 end # end choice 961 962 unless _tmp 963 self.pos = _save 964 end 965 break 966 end # end sequence 967 968 set_failed_rule :_Block unless _tmp 969 return _tmp 970 end 971 972 # Para = @NonindentSpace Inlines:a @BlankLine+ { paragraph a } 973 def _Para 974 975 _save = self.pos 976 while true # sequence 977 _tmp = _NonindentSpace() 978 unless _tmp 979 self.pos = _save 980 break 981 end 982 _tmp = apply(:_Inlines) 983 a = @result 984 unless _tmp 985 self.pos = _save 986 break 987 end 988 _save1 = self.pos 989 _tmp = _BlankLine() 990 if _tmp 991 while true 992 _tmp = _BlankLine() 993 break unless _tmp 994 end 995 _tmp = true 996 else 997 self.pos = _save1 998 end 999 unless _tmp 1000 self.pos = _save 1001 break 1002 end 1003 @result = begin; paragraph a ; end 1004 _tmp = true 1005 unless _tmp 1006 self.pos = _save 1007 end 1008 break 1009 end # end sequence 1010 1011 set_failed_rule :_Para unless _tmp 1012 return _tmp 1013 end 1014 1015 # Plain = Inlines:a { paragraph a } 1016 def _Plain 1017 1018 _save = self.pos 1019 while true # sequence 1020 _tmp = apply(:_Inlines) 1021 a = @result 1022 unless _tmp 1023 self.pos = _save 1024 break 1025 end 1026 @result = begin; paragraph a ; end 1027 _tmp = true 1028 unless _tmp 1029 self.pos = _save 1030 end 1031 break 1032 end # end sequence 1033 1034 set_failed_rule :_Plain unless _tmp 1035 return _tmp 1036 end 1037 1038 # AtxInline = !@Newline !(@Sp /#*/ @Sp @Newline) Inline 1039 def _AtxInline 1040 1041 _save = self.pos 1042 while true # sequence 1043 _save1 = self.pos 1044 _tmp = _Newline() 1045 _tmp = _tmp ? nil : true 1046 self.pos = _save1 1047 unless _tmp 1048 self.pos = _save 1049 break 1050 end 1051 _save2 = self.pos 1052 1053 _save3 = self.pos 1054 while true # sequence 1055 _tmp = _Sp() 1056 unless _tmp 1057 self.pos = _save3 1058 break 1059 end 1060 _tmp = scan(/\A(?-mix:#*)/) 1061 unless _tmp 1062 self.pos = _save3 1063 break 1064 end 1065 _tmp = _Sp() 1066 unless _tmp 1067 self.pos = _save3 1068 break 1069 end 1070 _tmp = _Newline() 1071 unless _tmp 1072 self.pos = _save3 1073 end 1074 break 1075 end # end sequence 1076 1077 _tmp = _tmp ? nil : true 1078 self.pos = _save2 1079 unless _tmp 1080 self.pos = _save 1081 break 1082 end 1083 _tmp = apply(:_Inline) 1084 unless _tmp 1085 self.pos = _save 1086 end 1087 break 1088 end # end sequence 1089 1090 set_failed_rule :_AtxInline unless _tmp 1091 return _tmp 1092 end 1093 1094 # AtxStart = < /\#{1,6}/ > { text.length } 1095 def _AtxStart 1096 1097 _save = self.pos 1098 while true # sequence 1099 _text_start = self.pos 1100 _tmp = scan(/\A(?-mix:\#{1,6})/) 1101 if _tmp 1102 text = get_text(_text_start) 1103 end 1104 unless _tmp 1105 self.pos = _save 1106 break 1107 end 1108 @result = begin; text.length ; end 1109 _tmp = true 1110 unless _tmp 1111 self.pos = _save 1112 end 1113 break 1114 end # end sequence 1115 1116 set_failed_rule :_AtxStart unless _tmp 1117 return _tmp 1118 end 1119 1120 # AtxHeading = AtxStart:s @Sp AtxInline+:a (@Sp /#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) } 1121 def _AtxHeading 1122 1123 _save = self.pos 1124 while true # sequence 1125 _tmp = apply(:_AtxStart) 1126 s = @result 1127 unless _tmp 1128 self.pos = _save 1129 break 1130 end 1131 _tmp = _Sp() 1132 unless _tmp 1133 self.pos = _save 1134 break 1135 end 1136 _save1 = self.pos 1137 _ary = [] 1138 _tmp = apply(:_AtxInline) 1139 if _tmp 1140 _ary << @result 1141 while true 1142 _tmp = apply(:_AtxInline) 1143 _ary << @result if _tmp 1144 break unless _tmp 1145 end 1146 _tmp = true 1147 @result = _ary 1148 else 1149 self.pos = _save1 1150 end 1151 a = @result 1152 unless _tmp 1153 self.pos = _save 1154 break 1155 end 1156 _save2 = self.pos 1157 1158 _save3 = self.pos 1159 while true # sequence 1160 _tmp = _Sp() 1161 unless _tmp 1162 self.pos = _save3 1163 break 1164 end 1165 _tmp = scan(/\A(?-mix:#*)/) 1166 unless _tmp 1167 self.pos = _save3 1168 break 1169 end 1170 _tmp = _Sp() 1171 unless _tmp 1172 self.pos = _save3 1173 end 1174 break 1175 end # end sequence 1176 1177 unless _tmp 1178 _tmp = true 1179 self.pos = _save2 1180 end 1181 unless _tmp 1182 self.pos = _save 1183 break 1184 end 1185 _tmp = _Newline() 1186 unless _tmp 1187 self.pos = _save 1188 break 1189 end 1190 @result = begin; RDoc::Markup::Heading.new(s, a.join) ; end 1191 _tmp = true 1192 unless _tmp 1193 self.pos = _save 1194 end 1195 break 1196 end # end sequence 1197 1198 set_failed_rule :_AtxHeading unless _tmp 1199 return _tmp 1200 end 1201 1202 # SetextHeading = (SetextHeading1 | SetextHeading2) 1203 def _SetextHeading 1204 1205 _save = self.pos 1206 while true # choice 1207 _tmp = apply(:_SetextHeading1) 1208 break if _tmp 1209 self.pos = _save 1210 _tmp = apply(:_SetextHeading2) 1211 break if _tmp 1212 self.pos = _save 1213 break 1214 end # end choice 1215 1216 set_failed_rule :_SetextHeading unless _tmp 1217 return _tmp 1218 end 1219 1220 # SetextBottom1 = /={1,}/ @Newline 1221 def _SetextBottom1 1222 1223 _save = self.pos 1224 while true # sequence 1225 _tmp = scan(/\A(?-mix:={1,})/) 1226 unless _tmp 1227 self.pos = _save 1228 break 1229 end 1230 _tmp = _Newline() 1231 unless _tmp 1232 self.pos = _save 1233 end 1234 break 1235 end # end sequence 1236 1237 set_failed_rule :_SetextBottom1 unless _tmp 1238 return _tmp 1239 end 1240 1241 # SetextBottom2 = /-{1,}/ @Newline 1242 def _SetextBottom2 1243 1244 _save = self.pos 1245 while true # sequence 1246 _tmp = scan(/\A(?-mix:-{1,})/) 1247 unless _tmp 1248 self.pos = _save 1249 break 1250 end 1251 _tmp = _Newline() 1252 unless _tmp 1253 self.pos = _save 1254 end 1255 break 1256 end # end sequence 1257 1258 set_failed_rule :_SetextBottom2 unless _tmp 1259 return _tmp 1260 end 1261 1262 # SetextHeading1 = &(@RawLine SetextBottom1) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom1 { RDoc::Markup::Heading.new(1, a.join) } 1263 def _SetextHeading1 1264 1265 _save = self.pos 1266 while true # sequence 1267 _save1 = self.pos 1268 1269 _save2 = self.pos 1270 while true # sequence 1271 _tmp = _RawLine() 1272 unless _tmp 1273 self.pos = _save2 1274 break 1275 end 1276 _tmp = apply(:_SetextBottom1) 1277 unless _tmp 1278 self.pos = _save2 1279 end 1280 break 1281 end # end sequence 1282 1283 self.pos = _save1 1284 unless _tmp 1285 self.pos = _save 1286 break 1287 end 1288 _tmp = _StartList() 1289 a = @result 1290 unless _tmp 1291 self.pos = _save 1292 break 1293 end 1294 _save3 = self.pos 1295 1296 _save4 = self.pos 1297 while true # sequence 1298 _save5 = self.pos 1299 _tmp = _Endline() 1300 _tmp = _tmp ? nil : true 1301 self.pos = _save5 1302 unless _tmp 1303 self.pos = _save4 1304 break 1305 end 1306 _tmp = apply(:_Inline) 1307 b = @result 1308 unless _tmp 1309 self.pos = _save4 1310 break 1311 end 1312 @result = begin; a << b ; end 1313 _tmp = true 1314 unless _tmp 1315 self.pos = _save4 1316 end 1317 break 1318 end # end sequence 1319 1320 if _tmp 1321 while true 1322 1323 _save6 = self.pos 1324 while true # sequence 1325 _save7 = self.pos 1326 _tmp = _Endline() 1327 _tmp = _tmp ? nil : true 1328 self.pos = _save7 1329 unless _tmp 1330 self.pos = _save6 1331 break 1332 end 1333 _tmp = apply(:_Inline) 1334 b = @result 1335 unless _tmp 1336 self.pos = _save6 1337 break 1338 end 1339 @result = begin; a << b ; end 1340 _tmp = true 1341 unless _tmp 1342 self.pos = _save6 1343 end 1344 break 1345 end # end sequence 1346 1347 break unless _tmp 1348 end 1349 _tmp = true 1350 else 1351 self.pos = _save3 1352 end 1353 unless _tmp 1354 self.pos = _save 1355 break 1356 end 1357 _tmp = _Sp() 1358 unless _tmp 1359 self.pos = _save 1360 break 1361 end 1362 _tmp = _Newline() 1363 unless _tmp 1364 self.pos = _save 1365 break 1366 end 1367 _tmp = apply(:_SetextBottom1) 1368 unless _tmp 1369 self.pos = _save 1370 break 1371 end 1372 @result = begin; RDoc::Markup::Heading.new(1, a.join) ; end 1373 _tmp = true 1374 unless _tmp 1375 self.pos = _save 1376 end 1377 break 1378 end # end sequence 1379 1380 set_failed_rule :_SetextHeading1 unless _tmp 1381 return _tmp 1382 end 1383 1384 # SetextHeading2 = &(@RawLine SetextBottom2) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom2 { RDoc::Markup::Heading.new(2, a.join) } 1385 def _SetextHeading2 1386 1387 _save = self.pos 1388 while true # sequence 1389 _save1 = self.pos 1390 1391 _save2 = self.pos 1392 while true # sequence 1393 _tmp = _RawLine() 1394 unless _tmp 1395 self.pos = _save2 1396 break 1397 end 1398 _tmp = apply(:_SetextBottom2) 1399 unless _tmp 1400 self.pos = _save2 1401 end 1402 break 1403 end # end sequence 1404 1405 self.pos = _save1 1406 unless _tmp 1407 self.pos = _save 1408 break 1409 end 1410 _tmp = _StartList() 1411 a = @result 1412 unless _tmp 1413 self.pos = _save 1414 break 1415 end 1416 _save3 = self.pos 1417 1418 _save4 = self.pos 1419 while true # sequence 1420 _save5 = self.pos 1421 _tmp = _Endline() 1422 _tmp = _tmp ? nil : true 1423 self.pos = _save5 1424 unless _tmp 1425 self.pos = _save4 1426 break 1427 end 1428 _tmp = apply(:_Inline) 1429 b = @result 1430 unless _tmp 1431 self.pos = _save4 1432 break 1433 end 1434 @result = begin; a << b ; end 1435 _tmp = true 1436 unless _tmp 1437 self.pos = _save4 1438 end 1439 break 1440 end # end sequence 1441 1442 if _tmp 1443 while true 1444 1445 _save6 = self.pos 1446 while true # sequence 1447 _save7 = self.pos 1448 _tmp = _Endline() 1449 _tmp = _tmp ? nil : true 1450 self.pos = _save7 1451 unless _tmp 1452 self.pos = _save6 1453 break 1454 end 1455 _tmp = apply(:_Inline) 1456 b = @result 1457 unless _tmp 1458 self.pos = _save6 1459 break 1460 end 1461 @result = begin; a << b ; end 1462 _tmp = true 1463 unless _tmp 1464 self.pos = _save6 1465 end 1466 break 1467 end # end sequence 1468 1469 break unless _tmp 1470 end 1471 _tmp = true 1472 else 1473 self.pos = _save3 1474 end 1475 unless _tmp 1476 self.pos = _save 1477 break 1478 end 1479 _tmp = _Sp() 1480 unless _tmp 1481 self.pos = _save 1482 break 1483 end 1484 _tmp = _Newline() 1485 unless _tmp 1486 self.pos = _save 1487 break 1488 end 1489 _tmp = apply(:_SetextBottom2) 1490 unless _tmp 1491 self.pos = _save 1492 break 1493 end 1494 @result = begin; RDoc::Markup::Heading.new(2, a.join) ; end 1495 _tmp = true 1496 unless _tmp 1497 self.pos = _save 1498 end 1499 break 1500 end # end sequence 1501 1502 set_failed_rule :_SetextHeading2 unless _tmp 1503 return _tmp 1504 end 1505 1506 # Heading = (SetextHeading | AtxHeading) 1507 def _Heading 1508 1509 _save = self.pos 1510 while true # choice 1511 _tmp = apply(:_SetextHeading) 1512 break if _tmp 1513 self.pos = _save 1514 _tmp = apply(:_AtxHeading) 1515 break if _tmp 1516 self.pos = _save 1517 break 1518 end # end choice 1519 1520 set_failed_rule :_Heading unless _tmp 1521 return _tmp 1522 end 1523 1524 # BlockQuote = BlockQuoteRaw:a { RDoc::Markup::BlockQuote.new(*a) } 1525 def _BlockQuote 1526 1527 _save = self.pos 1528 while true # sequence 1529 _tmp = apply(:_BlockQuoteRaw) 1530 a = @result 1531 unless _tmp 1532 self.pos = _save 1533 break 1534 end 1535 @result = begin; RDoc::Markup::BlockQuote.new(*a) ; end 1536 _tmp = true 1537 unless _tmp 1538 self.pos = _save 1539 end 1540 break 1541 end # end sequence 1542 1543 set_failed_rule :_BlockQuote unless _tmp 1544 return _tmp 1545 end 1546 1547 # BlockQuoteRaw = @StartList:a (">" " "? Line:l { a << l } (!">" !@BlankLine Line:c { a << c })* (@BlankLine:n { a << n })*)+ { inner_parse a.join } 1548 def _BlockQuoteRaw 1549 1550 _save = self.pos 1551 while true # sequence 1552 _tmp = _StartList() 1553 a = @result 1554 unless _tmp 1555 self.pos = _save 1556 break 1557 end 1558 _save1 = self.pos 1559 1560 _save2 = self.pos 1561 while true # sequence 1562 _tmp = match_string(">") 1563 unless _tmp 1564 self.pos = _save2 1565 break 1566 end 1567 _save3 = self.pos 1568 _tmp = match_string(" ") 1569 unless _tmp 1570 _tmp = true 1571 self.pos = _save3 1572 end 1573 unless _tmp 1574 self.pos = _save2 1575 break 1576 end 1577 _tmp = apply(:_Line) 1578 l = @result 1579 unless _tmp 1580 self.pos = _save2 1581 break 1582 end 1583 @result = begin; a << l ; end 1584 _tmp = true 1585 unless _tmp 1586 self.pos = _save2 1587 break 1588 end 1589 while true 1590 1591 _save5 = self.pos 1592 while true # sequence 1593 _save6 = self.pos 1594 _tmp = match_string(">") 1595 _tmp = _tmp ? nil : true 1596 self.pos = _save6 1597 unless _tmp 1598 self.pos = _save5 1599 break 1600 end 1601 _save7 = self.pos 1602 _tmp = _BlankLine() 1603 _tmp = _tmp ? nil : true 1604 self.pos = _save7 1605 unless _tmp 1606 self.pos = _save5 1607 break 1608 end 1609 _tmp = apply(:_Line) 1610 c = @result 1611 unless _tmp 1612 self.pos = _save5 1613 break 1614 end 1615 @result = begin; a << c ; end 1616 _tmp = true 1617 unless _tmp 1618 self.pos = _save5 1619 end 1620 break 1621 end # end sequence 1622 1623 break unless _tmp 1624 end 1625 _tmp = true 1626 unless _tmp 1627 self.pos = _save2 1628 break 1629 end 1630 while true 1631 1632 _save9 = self.pos 1633 while true # sequence 1634 _tmp = _BlankLine() 1635 n = @result 1636 unless _tmp 1637 self.pos = _save9 1638 break 1639 end 1640 @result = begin; a << n ; end 1641 _tmp = true 1642 unless _tmp 1643 self.pos = _save9 1644 end 1645 break 1646 end # end sequence 1647 1648 break unless _tmp 1649 end 1650 _tmp = true 1651 unless _tmp 1652 self.pos = _save2 1653 end 1654 break 1655 end # end sequence 1656 1657 if _tmp 1658 while true 1659 1660 _save10 = self.pos 1661 while true # sequence 1662 _tmp = match_string(">") 1663 unless _tmp 1664 self.pos = _save10 1665 break 1666 end 1667 _save11 = self.pos 1668 _tmp = match_string(" ") 1669 unless _tmp 1670 _tmp = true 1671 self.pos = _save11 1672 end 1673 unless _tmp 1674 self.pos = _save10 1675 break 1676 end 1677 _tmp = apply(:_Line) 1678 l = @result 1679 unless _tmp 1680 self.pos = _save10 1681 break 1682 end 1683 @result = begin; a << l ; end 1684 _tmp = true 1685 unless _tmp 1686 self.pos = _save10 1687 break 1688 end 1689 while true 1690 1691 _save13 = self.pos 1692 while true # sequence 1693 _save14 = self.pos 1694 _tmp = match_string(">") 1695 _tmp = _tmp ? nil : true 1696 self.pos = _save14 1697 unless _tmp 1698 self.pos = _save13 1699 break 1700 end 1701 _save15 = self.pos 1702 _tmp = _BlankLine() 1703 _tmp = _tmp ? nil : true 1704 self.pos = _save15 1705 unless _tmp 1706 self.pos = _save13 1707 break 1708 end 1709 _tmp = apply(:_Line) 1710 c = @result 1711 unless _tmp 1712 self.pos = _save13 1713 break 1714 end 1715 @result = begin; a << c ; end 1716 _tmp = true 1717 unless _tmp 1718 self.pos = _save13 1719 end 1720 break 1721 end # end sequence 1722 1723 break unless _tmp 1724 end 1725 _tmp = true 1726 unless _tmp 1727 self.pos = _save10 1728 break 1729 end 1730 while true 1731 1732 _save17 = self.pos 1733 while true # sequence 1734 _tmp = _BlankLine() 1735 n = @result 1736 unless _tmp 1737 self.pos = _save17 1738 break 1739 end 1740 @result = begin; a << n ; end 1741 _tmp = true 1742 unless _tmp 1743 self.pos = _save17 1744 end 1745 break 1746 end # end sequence 1747 1748 break unless _tmp 1749 end 1750 _tmp = true 1751 unless _tmp 1752 self.pos = _save10 1753 end 1754 break 1755 end # end sequence 1756 1757 break unless _tmp 1758 end 1759 _tmp = true 1760 else 1761 self.pos = _save1 1762 end 1763 unless _tmp 1764 self.pos = _save 1765 break 1766 end 1767 @result = begin; inner_parse a.join ; end 1768 _tmp = true 1769 unless _tmp 1770 self.pos = _save 1771 end 1772 break 1773 end # end sequence 1774 1775 set_failed_rule :_BlockQuoteRaw unless _tmp 1776 return _tmp 1777 end 1778 1779 # NonblankIndentedLine = !@BlankLine IndentedLine 1780 def _NonblankIndentedLine 1781 1782 _save = self.pos 1783 while true # sequence 1784 _save1 = self.pos 1785 _tmp = _BlankLine() 1786 _tmp = _tmp ? nil : true 1787 self.pos = _save1 1788 unless _tmp 1789 self.pos = _save 1790 break 1791 end 1792 _tmp = apply(:_IndentedLine) 1793 unless _tmp 1794 self.pos = _save 1795 end 1796 break 1797 end # end sequence 1798 1799 set_failed_rule :_NonblankIndentedLine unless _tmp 1800 return _tmp 1801 end 1802 1803 # VerbatimChunk = @BlankLine*:a NonblankIndentedLine+:b { a.concat b } 1804 def _VerbatimChunk 1805 1806 _save = self.pos 1807 while true # sequence 1808 _ary = [] 1809 while true 1810 _tmp = _BlankLine() 1811 _ary << @result if _tmp 1812 break unless _tmp 1813 end 1814 _tmp = true 1815 @result = _ary 1816 a = @result 1817 unless _tmp 1818 self.pos = _save 1819 break 1820 end 1821 _save2 = self.pos 1822 _ary = [] 1823 _tmp = apply(:_NonblankIndentedLine) 1824 if _tmp 1825 _ary << @result 1826 while true 1827 _tmp = apply(:_NonblankIndentedLine) 1828 _ary << @result if _tmp 1829 break unless _tmp 1830 end 1831 _tmp = true 1832 @result = _ary 1833 else 1834 self.pos = _save2 1835 end 1836 b = @result 1837 unless _tmp 1838 self.pos = _save 1839 break 1840 end 1841 @result = begin; a.concat b ; end 1842 _tmp = true 1843 unless _tmp 1844 self.pos = _save 1845 end 1846 break 1847 end # end sequence 1848 1849 set_failed_rule :_VerbatimChunk unless _tmp 1850 return _tmp 1851 end 1852 1853 # Verbatim = VerbatimChunk+:a { RDoc::Markup::Verbatim.new(*a.flatten) } 1854 def _Verbatim 1855 1856 _save = self.pos 1857 while true # sequence 1858 _save1 = self.pos 1859 _ary = [] 1860 _tmp = apply(:_VerbatimChunk) 1861 if _tmp 1862 _ary << @result 1863 while true 1864 _tmp = apply(:_VerbatimChunk) 1865 _ary << @result if _tmp 1866 break unless _tmp 1867 end 1868 _tmp = true 1869 @result = _ary 1870 else 1871 self.pos = _save1 1872 end 1873 a = @result 1874 unless _tmp 1875 self.pos = _save 1876 break 1877 end 1878 @result = begin; RDoc::Markup::Verbatim.new(*a.flatten) ; end 1879 _tmp = true 1880 unless _tmp 1881 self.pos = _save 1882 end 1883 break 1884 end # end sequence 1885 1886 set_failed_rule :_Verbatim unless _tmp 1887 return _tmp 1888 end 1889 1890 # HorizontalRule = @NonindentSpace ("*" @Sp "*" @Sp "*" (@Sp "*")* | "-" @Sp "-" @Sp "-" (@Sp "-")* | "_" @Sp "_" @Sp "_" (@Sp "_")*) @Sp @Newline @BlankLine+ { RDoc::Markup::Rule.new 1 } 1891 def _HorizontalRule 1892 1893 _save = self.pos 1894 while true # sequence 1895 _tmp = _NonindentSpace() 1896 unless _tmp 1897 self.pos = _save 1898 break 1899 end 1900 1901 _save1 = self.pos 1902 while true # choice 1903 1904 _save2 = self.pos 1905 while true # sequence 1906 _tmp = match_string("*") 1907 unless _tmp 1908 self.pos = _save2 1909 break 1910 end 1911 _tmp = _Sp() 1912 unless _tmp 1913 self.pos = _save2 1914 break 1915 end 1916 _tmp = match_string("*") 1917 unless _tmp 1918 self.pos = _save2 1919 break 1920 end 1921 _tmp = _Sp() 1922 unless _tmp 1923 self.pos = _save2 1924 break 1925 end 1926 _tmp = match_string("*") 1927 unless _tmp 1928 self.pos = _save2 1929 break 1930 end 1931 while true 1932 1933 _save4 = self.pos 1934 while true # sequence 1935 _tmp = _Sp() 1936 unless _tmp 1937 self.pos = _save4 1938 break 1939 end 1940 _tmp = match_string("*") 1941 unless _tmp 1942 self.pos = _save4 1943 end 1944 break 1945 end # end sequence 1946 1947 break unless _tmp 1948 end 1949 _tmp = true 1950 unless _tmp 1951 self.pos = _save2 1952 end 1953 break 1954 end # end sequence 1955 1956 break if _tmp 1957 self.pos = _save1 1958 1959 _save5 = self.pos 1960 while true # sequence 1961 _tmp = match_string("-") 1962 unless _tmp 1963 self.pos = _save5 1964 break 1965 end 1966 _tmp = _Sp() 1967 unless _tmp 1968 self.pos = _save5 1969 break 1970 end 1971 _tmp = match_string("-") 1972 unless _tmp 1973 self.pos = _save5 1974 break 1975 end 1976 _tmp = _Sp() 1977 unless _tmp 1978 self.pos = _save5 1979 break 1980 end 1981 _tmp = match_string("-") 1982 unless _tmp 1983 self.pos = _save5 1984 break 1985 end 1986 while true 1987 1988 _save7 = self.pos 1989 while true # sequence 1990 _tmp = _Sp() 1991 unless _tmp 1992 self.pos = _save7 1993 break 1994 end 1995 _tmp = match_string("-") 1996 unless _tmp 1997 self.pos = _save7 1998 end 1999 break 2000 end # end sequence 2001 2002 break unless _tmp 2003 end 2004 _tmp = true 2005 unless _tmp 2006 self.pos = _save5 2007 end 2008 break 2009 end # end sequence 2010 2011 break if _tmp 2012 self.pos = _save1 2013 2014 _save8 = self.pos 2015 while true # sequence 2016 _tmp = match_string("_") 2017 unless _tmp 2018 self.pos = _save8 2019 break 2020 end 2021 _tmp = _Sp() 2022 unless _tmp 2023 self.pos = _save8 2024 break 2025 end 2026 _tmp = match_string("_") 2027 unless _tmp 2028 self.pos = _save8 2029 break 2030 end 2031 _tmp = _Sp() 2032 unless _tmp 2033 self.pos = _save8 2034 break 2035 end 2036 _tmp = match_string("_") 2037 unless _tmp 2038 self.pos = _save8 2039 break 2040 end 2041 while true 2042 2043 _save10 = self.pos 2044 while true # sequence 2045 _tmp = _Sp() 2046 unless _tmp 2047 self.pos = _save10 2048 break 2049 end 2050 _tmp = match_string("_") 2051 unless _tmp 2052 self.pos = _save10 2053 end 2054 break 2055 end # end sequence 2056 2057 break unless _tmp 2058 end 2059 _tmp = true 2060 unless _tmp 2061 self.pos = _save8 2062 end 2063 break 2064 end # end sequence 2065 2066 break if _tmp 2067 self.pos = _save1 2068 break 2069 end # end choice 2070 2071 unless _tmp 2072 self.pos = _save 2073 break 2074 end 2075 _tmp = _Sp() 2076 unless _tmp 2077 self.pos = _save 2078 break 2079 end 2080 _tmp = _Newline() 2081 unless _tmp 2082 self.pos = _save 2083 break 2084 end 2085 _save11 = self.pos 2086 _tmp = _BlankLine() 2087 if _tmp 2088 while true 2089 _tmp = _BlankLine() 2090 break unless _tmp 2091 end 2092 _tmp = true 2093 else 2094 self.pos = _save11 2095 end 2096 unless _tmp 2097 self.pos = _save 2098 break 2099 end 2100 @result = begin; RDoc::Markup::Rule.new 1 ; end 2101 _tmp = true 2102 unless _tmp 2103 self.pos = _save 2104 end 2105 break 2106 end # end sequence 2107 2108 set_failed_rule :_HorizontalRule unless _tmp 2109 return _tmp 2110 end 2111 2112 # Bullet = !HorizontalRule @NonindentSpace /[+*-]/ @Spacechar+ 2113 def _Bullet 2114 2115 _save = self.pos 2116 while true # sequence 2117 _save1 = self.pos 2118 _tmp = apply(:_HorizontalRule) 2119 _tmp = _tmp ? nil : true 2120 self.pos = _save1 2121 unless _tmp 2122 self.pos = _save 2123 break 2124 end 2125 _tmp = _NonindentSpace() 2126 unless _tmp 2127 self.pos = _save 2128 break 2129 end 2130 _tmp = scan(/\A(?-mix:[+*-])/) 2131 unless _tmp 2132 self.pos = _save 2133 break 2134 end 2135 _save2 = self.pos 2136 _tmp = _Spacechar() 2137 if _tmp 2138 while true 2139 _tmp = _Spacechar() 2140 break unless _tmp 2141 end 2142 _tmp = true 2143 else 2144 self.pos = _save2 2145 end 2146 unless _tmp 2147 self.pos = _save 2148 end 2149 break 2150 end # end sequence 2151 2152 set_failed_rule :_Bullet unless _tmp 2153 return _tmp 2154 end 2155 2156 # BulletList = &Bullet (ListTight | ListLoose):a { RDoc::Markup::List.new(:BULLET, *a) } 2157 def _BulletList 2158 2159 _save = self.pos 2160 while true # sequence 2161 _save1 = self.pos 2162 _tmp = apply(:_Bullet) 2163 self.pos = _save1 2164 unless _tmp 2165 self.pos = _save 2166 break 2167 end 2168 2169 _save2 = self.pos 2170 while true # choice 2171 _tmp = apply(:_ListTight) 2172 break if _tmp 2173 self.pos = _save2 2174 _tmp = apply(:_ListLoose) 2175 break if _tmp 2176 self.pos = _save2 2177 break 2178 end # end choice 2179 2180 a = @result 2181 unless _tmp 2182 self.pos = _save 2183 break 2184 end 2185 @result = begin; RDoc::Markup::List.new(:BULLET, *a) ; end 2186 _tmp = true 2187 unless _tmp 2188 self.pos = _save 2189 end 2190 break 2191 end # end sequence 2192 2193 set_failed_rule :_BulletList unless _tmp 2194 return _tmp 2195 end 2196 2197 # ListTight = ListItemTight+:a @BlankLine* !(Bullet | Enumerator) { a } 2198 def _ListTight 2199 2200 _save = self.pos 2201 while true # sequence 2202 _save1 = self.pos 2203 _ary = [] 2204 _tmp = apply(:_ListItemTight) 2205 if _tmp 2206 _ary << @result 2207 while true 2208 _tmp = apply(:_ListItemTight) 2209 _ary << @result if _tmp 2210 break unless _tmp 2211 end 2212 _tmp = true 2213 @result = _ary 2214 else 2215 self.pos = _save1 2216 end 2217 a = @result 2218 unless _tmp 2219 self.pos = _save 2220 break 2221 end 2222 while true 2223 _tmp = _BlankLine() 2224 break unless _tmp 2225 end 2226 _tmp = true 2227 unless _tmp 2228 self.pos = _save 2229 break 2230 end 2231 _save3 = self.pos 2232 2233 _save4 = self.pos 2234 while true # choice 2235 _tmp = apply(:_Bullet) 2236 break if _tmp 2237 self.pos = _save4 2238 _tmp = apply(:_Enumerator) 2239 break if _tmp 2240 self.pos = _save4 2241 break 2242 end # end choice 2243 2244 _tmp = _tmp ? nil : true 2245 self.pos = _save3 2246 unless _tmp 2247 self.pos = _save 2248 break 2249 end 2250 @result = begin; a ; end 2251 _tmp = true 2252 unless _tmp 2253 self.pos = _save 2254 end 2255 break 2256 end # end sequence 2257 2258 set_failed_rule :_ListTight unless _tmp 2259 return _tmp 2260 end 2261 2262 # ListLoose = @StartList:a (ListItem:b @BlankLine* { a << b })+ { a } 2263 def _ListLoose 2264 2265 _save = self.pos 2266 while true # sequence 2267 _tmp = _StartList() 2268 a = @result 2269 unless _tmp 2270 self.pos = _save 2271 break 2272 end 2273 _save1 = self.pos 2274 2275 _save2 = self.pos 2276 while true # sequence 2277 _tmp = apply(:_ListItem) 2278 b = @result 2279 unless _tmp 2280 self.pos = _save2 2281 break 2282 end 2283 while true 2284 _tmp = _BlankLine() 2285 break unless _tmp 2286 end 2287 _tmp = true 2288 unless _tmp 2289 self.pos = _save2 2290 break 2291 end 2292 @result = begin; a << b ; end 2293 _tmp = true 2294 unless _tmp 2295 self.pos = _save2 2296 end 2297 break 2298 end # end sequence 2299 2300 if _tmp 2301 while true 2302 2303 _save4 = self.pos 2304 while true # sequence 2305 _tmp = apply(:_ListItem) 2306 b = @result 2307 unless _tmp 2308 self.pos = _save4 2309 break 2310 end 2311 while true 2312 _tmp = _BlankLine() 2313 break unless _tmp 2314 end 2315 _tmp = true 2316 unless _tmp 2317 self.pos = _save4 2318 break 2319 end 2320 @result = begin; a << b ; end 2321 _tmp = true 2322 unless _tmp 2323 self.pos = _save4 2324 end 2325 break 2326 end # end sequence 2327 2328 break unless _tmp 2329 end 2330 _tmp = true 2331 else 2332 self.pos = _save1 2333 end 2334 unless _tmp 2335 self.pos = _save 2336 break 2337 end 2338 @result = begin; a ; end 2339 _tmp = true 2340 unless _tmp 2341 self.pos = _save 2342 end 2343 break 2344 end # end sequence 2345 2346 set_failed_rule :_ListLoose unless _tmp 2347 return _tmp 2348 end 2349 2350 # ListItem = (Bullet | Enumerator) @StartList:a ListBlock:b { a << b } (ListContinuationBlock:c { a.push(*c) })* { list_item_from a } 2351 def _ListItem 2352 2353 _save = self.pos 2354 while true # sequence 2355 2356 _save1 = self.pos 2357 while true # choice 2358 _tmp = apply(:_Bullet) 2359 break if _tmp 2360 self.pos = _save1 2361 _tmp = apply(:_Enumerator) 2362 break if _tmp 2363 self.pos = _save1 2364 break 2365 end # end choice 2366 2367 unless _tmp 2368 self.pos = _save 2369 break 2370 end 2371 _tmp = _StartList() 2372 a = @result 2373 unless _tmp 2374 self.pos = _save 2375 break 2376 end 2377 _tmp = apply(:_ListBlock) 2378 b = @result 2379 unless _tmp 2380 self.pos = _save 2381 break 2382 end 2383 @result = begin; a << b ; end 2384 _tmp = true 2385 unless _tmp 2386 self.pos = _save 2387 break 2388 end 2389 while true 2390 2391 _save3 = self.pos 2392 while true # sequence 2393 _tmp = apply(:_ListContinuationBlock) 2394 c = @result 2395 unless _tmp 2396 self.pos = _save3 2397 break 2398 end 2399 @result = begin; a.push(*c) ; end 2400 _tmp = true 2401 unless _tmp 2402 self.pos = _save3 2403 end 2404 break 2405 end # end sequence 2406 2407 break unless _tmp 2408 end 2409 _tmp = true 2410 unless _tmp 2411 self.pos = _save 2412 break 2413 end 2414 @result = begin; list_item_from a ; end 2415 _tmp = true 2416 unless _tmp 2417 self.pos = _save 2418 end 2419 break 2420 end # end sequence 2421 2422 set_failed_rule :_ListItem unless _tmp 2423 return _tmp 2424 end 2425 2426 # ListItemTight = (Bullet | Enumerator) ListBlock:a (!@BlankLine ListContinuationBlock:b { a.push(*b) })* !ListContinuationBlock { list_item_from a } 2427 def _ListItemTight 2428 2429 _save = self.pos 2430 while true # sequence 2431 2432 _save1 = self.pos 2433 while true # choice 2434 _tmp = apply(:_Bullet) 2435 break if _tmp 2436 self.pos = _save1 2437 _tmp = apply(:_Enumerator) 2438 break if _tmp 2439 self.pos = _save1 2440 break 2441 end # end choice 2442 2443 unless _tmp 2444 self.pos = _save 2445 break 2446 end 2447 _tmp = apply(:_ListBlock) 2448 a = @result 2449 unless _tmp 2450 self.pos = _save 2451 break 2452 end 2453 while true 2454 2455 _save3 = self.pos 2456 while true # sequence 2457 _save4 = self.pos 2458 _tmp = _BlankLine() 2459 _tmp = _tmp ? nil : true 2460 self.pos = _save4 2461 unless _tmp 2462 self.pos = _save3 2463 break 2464 end 2465 _tmp = apply(:_ListContinuationBlock) 2466 b = @result 2467 unless _tmp 2468 self.pos = _save3 2469 break 2470 end 2471 @result = begin; a.push(*b) ; end 2472 _tmp = true 2473 unless _tmp 2474 self.pos = _save3 2475 end 2476 break 2477 end # end sequence 2478 2479 break unless _tmp 2480 end 2481 _tmp = true 2482 unless _tmp 2483 self.pos = _save 2484 break 2485 end 2486 _save5 = self.pos 2487 _tmp = apply(:_ListContinuationBlock) 2488 _tmp = _tmp ? nil : true 2489 self.pos = _save5 2490 unless _tmp 2491 self.pos = _save 2492 break 2493 end 2494 @result = begin; list_item_from a ; end 2495 _tmp = true 2496 unless _tmp 2497 self.pos = _save 2498 end 2499 break 2500 end # end sequence 2501 2502 set_failed_rule :_ListItemTight unless _tmp 2503 return _tmp 2504 end 2505 2506 # ListBlock = !@BlankLine Line:a ListBlockLine*:c { [a, *c] } 2507 def _ListBlock 2508 2509 _save = self.pos 2510 while true # sequence 2511 _save1 = self.pos 2512 _tmp = _BlankLine() 2513 _tmp = _tmp ? nil : true 2514 self.pos = _save1 2515 unless _tmp 2516 self.pos = _save 2517 break 2518 end 2519 _tmp = apply(:_Line) 2520 a = @result 2521 unless _tmp 2522 self.pos = _save 2523 break 2524 end 2525 _ary = [] 2526 while true 2527 _tmp = apply(:_ListBlockLine) 2528 _ary << @result if _tmp 2529 break unless _tmp 2530 end 2531 _tmp = true 2532 @result = _ary 2533 c = @result 2534 unless _tmp 2535 self.pos = _save 2536 break 2537 end 2538 @result = begin; [a, *c] ; end 2539 _tmp = true 2540 unless _tmp 2541 self.pos = _save 2542 end 2543 break 2544 end # end sequence 2545 2546 set_failed_rule :_ListBlock unless _tmp 2547 return _tmp 2548 end 2549 2550 # ListContinuationBlock = @StartList:a @BlankLine* { a << "\n" } (Indent ListBlock:b { a.concat b })+ { a } 2551 def _ListContinuationBlock 2552 2553 _save = self.pos 2554 while true # sequence 2555 _tmp = _StartList() 2556 a = @result 2557 unless _tmp 2558 self.pos = _save 2559 break 2560 end 2561 while true 2562 _tmp = _BlankLine() 2563 break unless _tmp 2564 end 2565 _tmp = true 2566 unless _tmp 2567 self.pos = _save 2568 break 2569 end 2570 @result = begin; a << "\n" ; end 2571 _tmp = true 2572 unless _tmp 2573 self.pos = _save 2574 break 2575 end 2576 _save2 = self.pos 2577 2578 _save3 = self.pos 2579 while true # sequence 2580 _tmp = apply(:_Indent) 2581 unless _tmp 2582 self.pos = _save3 2583 break 2584 end 2585 _tmp = apply(:_ListBlock) 2586 b = @result 2587 unless _tmp 2588 self.pos = _save3 2589 break 2590 end 2591 @result = begin; a.concat b ; end 2592 _tmp = true 2593 unless _tmp 2594 self.pos = _save3 2595 end 2596 break 2597 end # end sequence 2598 2599 if _tmp 2600 while true 2601 2602 _save4 = self.pos 2603 while true # sequence 2604 _tmp = apply(:_Indent) 2605 unless _tmp 2606 self.pos = _save4 2607 break 2608 end 2609 _tmp = apply(:_ListBlock) 2610 b = @result 2611 unless _tmp 2612 self.pos = _save4 2613 break 2614 end 2615 @result = begin; a.concat b ; end 2616 _tmp = true 2617 unless _tmp 2618 self.pos = _save4 2619 end 2620 break 2621 end # end sequence 2622 2623 break unless _tmp 2624 end 2625 _tmp = true 2626 else 2627 self.pos = _save2 2628 end 2629 unless _tmp 2630 self.pos = _save 2631 break 2632 end 2633 @result = begin; a ; end 2634 _tmp = true 2635 unless _tmp 2636 self.pos = _save 2637 end 2638 break 2639 end # end sequence 2640 2641 set_failed_rule :_ListContinuationBlock unless _tmp 2642 return _tmp 2643 end 2644 2645 # Enumerator = @NonindentSpace [0-9]+ "." @Spacechar+ 2646 def _Enumerator 2647 2648 _save = self.pos 2649 while true # sequence 2650 _tmp = _NonindentSpace() 2651 unless _tmp 2652 self.pos = _save 2653 break 2654 end 2655 _save1 = self.pos 2656 _save2 = self.pos 2657 _tmp = get_byte 2658 if _tmp 2659 unless _tmp >= 48 and _tmp <= 57 2660 self.pos = _save2 2661 _tmp = nil 2662 end 2663 end 2664 if _tmp 2665 while true 2666 _save3 = self.pos 2667 _tmp = get_byte 2668 if _tmp 2669 unless _tmp >= 48 and _tmp <= 57 2670 self.pos = _save3 2671 _tmp = nil 2672 end 2673 end 2674 break unless _tmp 2675 end 2676 _tmp = true 2677 else 2678 self.pos = _save1 2679 end 2680 unless _tmp 2681 self.pos = _save 2682 break 2683 end 2684 _tmp = match_string(".") 2685 unless _tmp 2686 self.pos = _save 2687 break 2688 end 2689 _save4 = self.pos 2690 _tmp = _Spacechar() 2691 if _tmp 2692 while true 2693 _tmp = _Spacechar() 2694 break unless _tmp 2695 end 2696 _tmp = true 2697 else 2698 self.pos = _save4 2699 end 2700 unless _tmp 2701 self.pos = _save 2702 end 2703 break 2704 end # end sequence 2705 2706 set_failed_rule :_Enumerator unless _tmp 2707 return _tmp 2708 end 2709 2710 # OrderedList = &Enumerator (ListTight | ListLoose):a { RDoc::Markup::List.new(:NUMBER, *a) } 2711 def _OrderedList 2712 2713 _save = self.pos 2714 while true # sequence 2715 _save1 = self.pos 2716 _tmp = apply(:_Enumerator) 2717 self.pos = _save1 2718 unless _tmp 2719 self.pos = _save 2720 break 2721 end 2722 2723 _save2 = self.pos 2724 while true # choice 2725 _tmp = apply(:_ListTight) 2726 break if _tmp 2727 self.pos = _save2 2728 _tmp = apply(:_ListLoose) 2729 break if _tmp 2730 self.pos = _save2 2731 break 2732 end # end choice 2733 2734 a = @result 2735 unless _tmp 2736 self.pos = _save 2737 break 2738 end 2739 @result = begin; RDoc::Markup::List.new(:NUMBER, *a) ; end 2740 _tmp = true 2741 unless _tmp 2742 self.pos = _save 2743 end 2744 break 2745 end # end sequence 2746 2747 set_failed_rule :_OrderedList unless _tmp 2748 return _tmp 2749 end 2750 2751 # ListBlockLine = !@BlankLine !(Indent? (Bullet | Enumerator)) !HorizontalRule OptionallyIndentedLine 2752 def _ListBlockLine 2753 2754 _save = self.pos 2755 while true # sequence 2756 _save1 = self.pos 2757 _tmp = _BlankLine() 2758 _tmp = _tmp ? nil : true 2759 self.pos = _save1 2760 unless _tmp 2761 self.pos = _save 2762 break 2763 end 2764 _save2 = self.pos 2765 2766 _save3 = self.pos 2767 while true # sequence 2768 _save4 = self.pos 2769 _tmp = apply(:_Indent) 2770 unless _tmp 2771 _tmp = true 2772 self.pos = _save4 2773 end 2774 unless _tmp 2775 self.pos = _save3 2776 break 2777 end 2778 2779 _save5 = self.pos 2780 while true # choice 2781 _tmp = apply(:_Bullet) 2782 break if _tmp 2783 self.pos = _save5 2784 _tmp = apply(:_Enumerator) 2785 break if _tmp 2786 self.pos = _save5 2787 break 2788 end # end choice 2789 2790 unless _tmp 2791 self.pos = _save3 2792 end 2793 break 2794 end # end sequence 2795 2796 _tmp = _tmp ? nil : true 2797 self.pos = _save2 2798 unless _tmp 2799 self.pos = _save 2800 break 2801 end 2802 _save6 = self.pos 2803 _tmp = apply(:_HorizontalRule) 2804 _tmp = _tmp ? nil : true 2805 self.pos = _save6 2806 unless _tmp 2807 self.pos = _save 2808 break 2809 end 2810 _tmp = apply(:_OptionallyIndentedLine) 2811 unless _tmp 2812 self.pos = _save 2813 end 2814 break 2815 end # end sequence 2816 2817 set_failed_rule :_ListBlockLine unless _tmp 2818 return _tmp 2819 end 2820 2821 # HtmlOpenAnchor = "<" Spnl ("a" | "A") Spnl HtmlAttribute* ">" 2822 def _HtmlOpenAnchor 2823 2824 _save = self.pos 2825 while true # sequence 2826 _tmp = match_string("<") 2827 unless _tmp 2828 self.pos = _save 2829 break 2830 end 2831 _tmp = apply(:_Spnl) 2832 unless _tmp 2833 self.pos = _save 2834 break 2835 end 2836 2837 _save1 = self.pos 2838 while true # choice 2839 _tmp = match_string("a") 2840 break if _tmp 2841 self.pos = _save1 2842 _tmp = match_string("A") 2843 break if _tmp 2844 self.pos = _save1 2845 break 2846 end # end choice 2847 2848 unless _tmp 2849 self.pos = _save 2850 break 2851 end 2852 _tmp = apply(:_Spnl) 2853 unless _tmp 2854 self.pos = _save 2855 break 2856 end 2857 while true 2858 _tmp = apply(:_HtmlAttribute) 2859 break unless _tmp 2860 end 2861 _tmp = true 2862 unless _tmp 2863 self.pos = _save 2864 break 2865 end 2866 _tmp = match_string(">") 2867 unless _tmp 2868 self.pos = _save 2869 end 2870 break 2871 end # end sequence 2872 2873 set_failed_rule :_HtmlOpenAnchor unless _tmp 2874 return _tmp 2875 end 2876 2877 # HtmlCloseAnchor = "<" Spnl "/" ("a" | "A") Spnl ">" 2878 def _HtmlCloseAnchor 2879 2880 _save = self.pos 2881 while true # sequence 2882 _tmp = match_string("<") 2883 unless _tmp 2884 self.pos = _save 2885 break 2886 end 2887 _tmp = apply(:_Spnl) 2888 unless _tmp 2889 self.pos = _save 2890 break 2891 end 2892 _tmp = match_string("/") 2893 unless _tmp 2894 self.pos = _save 2895 break 2896 end 2897 2898 _save1 = self.pos 2899 while true # choice 2900 _tmp = match_string("a") 2901 break if _tmp 2902 self.pos = _save1 2903 _tmp = match_string("A") 2904 break if _tmp 2905 self.pos = _save1 2906 break 2907 end # end choice 2908 2909 unless _tmp 2910 self.pos = _save 2911 break 2912 end 2913 _tmp = apply(:_Spnl) 2914 unless _tmp 2915 self.pos = _save 2916 break 2917 end 2918 _tmp = match_string(">") 2919 unless _tmp 2920 self.pos = _save 2921 end 2922 break 2923 end # end sequence 2924 2925 set_failed_rule :_HtmlCloseAnchor unless _tmp 2926 return _tmp 2927 end 2928 2929 # HtmlAnchor = HtmlOpenAnchor (HtmlAnchor | !HtmlCloseAnchor .)* HtmlCloseAnchor 2930 def _HtmlAnchor 2931 2932 _save = self.pos 2933 while true # sequence 2934 _tmp = apply(:_HtmlOpenAnchor) 2935 unless _tmp 2936 self.pos = _save 2937 break 2938 end 2939 while true 2940 2941 _save2 = self.pos 2942 while true # choice 2943 _tmp = apply(:_HtmlAnchor) 2944 break if _tmp 2945 self.pos = _save2 2946 2947 _save3 = self.pos 2948 while true # sequence 2949 _save4 = self.pos 2950 _tmp = apply(:_HtmlCloseAnchor) 2951 _tmp = _tmp ? nil : true 2952 self.pos = _save4 2953 unless _tmp 2954 self.pos = _save3 2955 break 2956 end 2957 _tmp = get_byte 2958 unless _tmp 2959 self.pos = _save3 2960 end 2961 break 2962 end # end sequence 2963 2964 break if _tmp 2965 self.pos = _save2 2966 break 2967 end # end choice 2968 2969 break unless _tmp 2970 end 2971 _tmp = true 2972 unless _tmp 2973 self.pos = _save 2974 break 2975 end 2976 _tmp = apply(:_HtmlCloseAnchor) 2977 unless _tmp 2978 self.pos = _save 2979 end 2980 break 2981 end # end sequence 2982 2983 set_failed_rule :_HtmlAnchor unless _tmp 2984 return _tmp 2985 end 2986 2987 # HtmlBlockOpenAddress = "<" Spnl ("address" | "ADDRESS") Spnl HtmlAttribute* ">" 2988 def _HtmlBlockOpenAddress 2989 2990 _save = self.pos 2991 while true # sequence 2992 _tmp = match_string("<") 2993 unless _tmp 2994 self.pos = _save 2995 break 2996 end 2997 _tmp = apply(:_Spnl) 2998 unless _tmp 2999 self.pos = _save 3000 break 3001 end 3002 3003 _save1 = self.pos 3004 while true # choice 3005 _tmp = match_string("address") 3006 break if _tmp 3007 self.pos = _save1 3008 _tmp = match_string("ADDRESS") 3009 break if _tmp 3010 self.pos = _save1 3011 break 3012 end # end choice 3013 3014 unless _tmp 3015 self.pos = _save 3016 break 3017 end 3018 _tmp = apply(:_Spnl) 3019 unless _tmp 3020 self.pos = _save 3021 break 3022 end 3023 while true 3024 _tmp = apply(:_HtmlAttribute) 3025 break unless _tmp 3026 end 3027 _tmp = true 3028 unless _tmp 3029 self.pos = _save 3030 break 3031 end 3032 _tmp = match_string(">") 3033 unless _tmp 3034 self.pos = _save 3035 end 3036 break 3037 end # end sequence 3038 3039 set_failed_rule :_HtmlBlockOpenAddress unless _tmp 3040 return _tmp 3041 end 3042 3043 # HtmlBlockCloseAddress = "<" Spnl "/" ("address" | "ADDRESS") Spnl ">" 3044 def _HtmlBlockCloseAddress 3045 3046 _save = self.pos 3047 while true # sequence 3048 _tmp = match_string("<") 3049 unless _tmp 3050 self.pos = _save 3051 break 3052 end 3053 _tmp = apply(:_Spnl) 3054 unless _tmp 3055 self.pos = _save 3056 break 3057 end 3058 _tmp = match_string("/") 3059 unless _tmp 3060 self.pos = _save 3061 break 3062 end 3063 3064 _save1 = self.pos 3065 while true # choice 3066 _tmp = match_string("address") 3067 break if _tmp 3068 self.pos = _save1 3069 _tmp = match_string("ADDRESS") 3070 break if _tmp 3071 self.pos = _save1 3072 break 3073 end # end choice 3074 3075 unless _tmp 3076 self.pos = _save 3077 break 3078 end 3079 _tmp = apply(:_Spnl) 3080 unless _tmp 3081 self.pos = _save 3082 break 3083 end 3084 _tmp = match_string(">") 3085 unless _tmp 3086 self.pos = _save 3087 end 3088 break 3089 end # end sequence 3090 3091 set_failed_rule :_HtmlBlockCloseAddress unless _tmp 3092 return _tmp 3093 end 3094 3095 # HtmlBlockAddress = HtmlBlockOpenAddress (HtmlBlockAddress | !HtmlBlockCloseAddress .)* HtmlBlockCloseAddress 3096 def _HtmlBlockAddress 3097 3098 _save = self.pos 3099 while true # sequence 3100 _tmp = apply(:_HtmlBlockOpenAddress) 3101 unless _tmp 3102 self.pos = _save 3103 break 3104 end 3105 while true 3106 3107 _save2 = self.pos 3108 while true # choice 3109 _tmp = apply(:_HtmlBlockAddress) 3110 break if _tmp 3111 self.pos = _save2 3112 3113 _save3 = self.pos 3114 while true # sequence 3115 _save4 = self.pos 3116 _tmp = apply(:_HtmlBlockCloseAddress) 3117 _tmp = _tmp ? nil : true 3118 self.pos = _save4 3119 unless _tmp 3120 self.pos = _save3 3121 break 3122 end 3123 _tmp = get_byte 3124 unless _tmp 3125 self.pos = _save3 3126 end 3127 break 3128 end # end sequence 3129 3130 break if _tmp 3131 self.pos = _save2 3132 break 3133 end # end choice 3134 3135 break unless _tmp 3136 end 3137 _tmp = true 3138 unless _tmp 3139 self.pos = _save 3140 break 3141 end 3142 _tmp = apply(:_HtmlBlockCloseAddress) 3143 unless _tmp 3144 self.pos = _save 3145 end 3146 break 3147 end # end sequence 3148 3149 set_failed_rule :_HtmlBlockAddress unless _tmp 3150 return _tmp 3151 end 3152 3153 # HtmlBlockOpenBlockquote = "<" Spnl ("blockquote" | "BLOCKQUOTE") Spnl HtmlAttribute* ">" 3154 def _HtmlBlockOpenBlockquote 3155 3156 _save = self.pos 3157 while true # sequence 3158 _tmp = match_string("<") 3159 unless _tmp 3160 self.pos = _save 3161 break 3162 end 3163 _tmp = apply(:_Spnl) 3164 unless _tmp 3165 self.pos = _save 3166 break 3167 end 3168 3169 _save1 = self.pos 3170 while true # choice 3171 _tmp = match_string("blockquote") 3172 break if _tmp 3173 self.pos = _save1 3174 _tmp = match_string("BLOCKQUOTE") 3175 break if _tmp 3176 self.pos = _save1 3177 break 3178 end # end choice 3179 3180 unless _tmp 3181 self.pos = _save 3182 break 3183 end 3184 _tmp = apply(:_Spnl) 3185 unless _tmp 3186 self.pos = _save 3187 break 3188 end 3189 while true 3190 _tmp = apply(:_HtmlAttribute) 3191 break unless _tmp 3192 end 3193 _tmp = true 3194 unless _tmp 3195 self.pos = _save 3196 break 3197 end 3198 _tmp = match_string(">") 3199 unless _tmp 3200 self.pos = _save 3201 end 3202 break 3203 end # end sequence 3204 3205 set_failed_rule :_HtmlBlockOpenBlockquote unless _tmp 3206 return _tmp 3207 end 3208 3209 # HtmlBlockCloseBlockquote = "<" Spnl "/" ("blockquote" | "BLOCKQUOTE") Spnl ">" 3210 def _HtmlBlockCloseBlockquote 3211 3212 _save = self.pos 3213 while true # sequence 3214 _tmp = match_string("<") 3215 unless _tmp 3216 self.pos = _save 3217 break 3218 end 3219 _tmp = apply(:_Spnl) 3220 unless _tmp 3221 self.pos = _save 3222 break 3223 end 3224 _tmp = match_string("/") 3225 unless _tmp 3226 self.pos = _save 3227 break 3228 end 3229 3230 _save1 = self.pos 3231 while true # choice 3232 _tmp = match_string("blockquote") 3233 break if _tmp 3234 self.pos = _save1 3235 _tmp = match_string("BLOCKQUOTE") 3236 break if _tmp 3237 self.pos = _save1 3238 break 3239 end # end choice 3240 3241 unless _tmp 3242 self.pos = _save 3243 break 3244 end 3245 _tmp = apply(:_Spnl) 3246 unless _tmp 3247 self.pos = _save 3248 break 3249 end 3250 _tmp = match_string(">") 3251 unless _tmp 3252 self.pos = _save 3253 end 3254 break 3255 end # end sequence 3256 3257 set_failed_rule :_HtmlBlockCloseBlockquote unless _tmp 3258 return _tmp 3259 end 3260 3261 # HtmlBlockBlockquote = HtmlBlockOpenBlockquote (HtmlBlockBlockquote | !HtmlBlockCloseBlockquote .)* HtmlBlockCloseBlockquote 3262 def _HtmlBlockBlockquote 3263 3264 _save = self.pos 3265 while true # sequence 3266 _tmp = apply(:_HtmlBlockOpenBlockquote) 3267 unless _tmp 3268 self.pos = _save 3269 break 3270 end 3271 while true 3272 3273 _save2 = self.pos 3274 while true # choice 3275 _tmp = apply(:_HtmlBlockBlockquote) 3276 break if _tmp 3277 self.pos = _save2 3278 3279 _save3 = self.pos 3280 while true # sequence 3281 _save4 = self.pos 3282 _tmp = apply(:_HtmlBlockCloseBlockquote) 3283 _tmp = _tmp ? nil : true 3284 self.pos = _save4 3285 unless _tmp 3286 self.pos = _save3 3287 break 3288 end 3289 _tmp = get_byte 3290 unless _tmp 3291 self.pos = _save3 3292 end 3293 break 3294 end # end sequence 3295 3296 break if _tmp 3297 self.pos = _save2 3298 break 3299 end # end choice 3300 3301 break unless _tmp 3302 end 3303 _tmp = true 3304 unless _tmp 3305 self.pos = _save 3306 break 3307 end 3308 _tmp = apply(:_HtmlBlockCloseBlockquote) 3309 unless _tmp 3310 self.pos = _save 3311 end 3312 break 3313 end # end sequence 3314 3315 set_failed_rule :_HtmlBlockBlockquote unless _tmp 3316 return _tmp 3317 end 3318 3319 # HtmlBlockOpenCenter = "<" Spnl ("center" | "CENTER") Spnl HtmlAttribute* ">" 3320 def _HtmlBlockOpenCenter 3321 3322 _save = self.pos 3323 while true # sequence 3324 _tmp = match_string("<") 3325 unless _tmp 3326 self.pos = _save 3327 break 3328 end 3329 _tmp = apply(:_Spnl) 3330 unless _tmp 3331 self.pos = _save 3332 break 3333 end 3334 3335 _save1 = self.pos 3336 while true # choice 3337 _tmp = match_string("center") 3338 break if _tmp 3339 self.pos = _save1 3340 _tmp = match_string("CENTER") 3341 break if _tmp 3342 self.pos = _save1 3343 break 3344 end # end choice 3345 3346 unless _tmp 3347 self.pos = _save 3348 break 3349 end 3350 _tmp = apply(:_Spnl) 3351 unless _tmp 3352 self.pos = _save 3353 break 3354 end 3355 while true 3356 _tmp = apply(:_HtmlAttribute) 3357 break unless _tmp 3358 end 3359 _tmp = true 3360 unless _tmp 3361 self.pos = _save 3362 break 3363 end 3364 _tmp = match_string(">") 3365 unless _tmp 3366 self.pos = _save 3367 end 3368 break 3369 end # end sequence 3370 3371 set_failed_rule :_HtmlBlockOpenCenter unless _tmp 3372 return _tmp 3373 end 3374 3375 # HtmlBlockCloseCenter = "<" Spnl "/" ("center" | "CENTER") Spnl ">" 3376 def _HtmlBlockCloseCenter 3377 3378 _save = self.pos 3379 while true # sequence 3380 _tmp = match_string("<") 3381 unless _tmp 3382 self.pos = _save 3383 break 3384 end 3385 _tmp = apply(:_Spnl) 3386 unless _tmp 3387 self.pos = _save 3388 break 3389 end 3390 _tmp = match_string("/") 3391 unless _tmp 3392 self.pos = _save 3393 break 3394 end 3395 3396 _save1 = self.pos 3397 while true # choice 3398 _tmp = match_string("center") 3399 break if _tmp 3400 self.pos = _save1 3401 _tmp = match_string("CENTER") 3402 break if _tmp 3403 self.pos = _save1 3404 break 3405 end # end choice 3406 3407 unless _tmp 3408 self.pos = _save 3409 break 3410 end 3411 _tmp = apply(:_Spnl) 3412 unless _tmp 3413 self.pos = _save 3414 break 3415 end 3416 _tmp = match_string(">") 3417 unless _tmp 3418 self.pos = _save 3419 end 3420 break 3421 end # end sequence 3422 3423 set_failed_rule :_HtmlBlockCloseCenter unless _tmp 3424 return _tmp 3425 end 3426 3427 # HtmlBlockCenter = HtmlBlockOpenCenter (HtmlBlockCenter | !HtmlBlockCloseCenter .)* HtmlBlockCloseCenter 3428 def _HtmlBlockCenter 3429 3430 _save = self.pos 3431 while true # sequence 3432 _tmp = apply(:_HtmlBlockOpenCenter) 3433 unless _tmp 3434 self.pos = _save 3435 break 3436 end 3437 while true 3438 3439 _save2 = self.pos 3440 while true # choice 3441 _tmp = apply(:_HtmlBlockCenter) 3442 break if _tmp 3443 self.pos = _save2 3444 3445 _save3 = self.pos 3446 while true # sequence 3447 _save4 = self.pos 3448 _tmp = apply(:_HtmlBlockCloseCenter) 3449 _tmp = _tmp ? nil : true 3450 self.pos = _save4 3451 unless _tmp 3452 self.pos = _save3 3453 break 3454 end 3455 _tmp = get_byte 3456 unless _tmp 3457 self.pos = _save3 3458 end 3459 break 3460 end # end sequence 3461 3462 break if _tmp 3463 self.pos = _save2 3464 break 3465 end # end choice 3466 3467 break unless _tmp 3468 end 3469 _tmp = true 3470 unless _tmp 3471 self.pos = _save 3472 break 3473 end 3474 _tmp = apply(:_HtmlBlockCloseCenter) 3475 unless _tmp 3476 self.pos = _save 3477 end 3478 break 3479 end # end sequence 3480 3481 set_failed_rule :_HtmlBlockCenter unless _tmp 3482 return _tmp 3483 end 3484 3485 # HtmlBlockOpenDir = "<" Spnl ("dir" | "DIR") Spnl HtmlAttribute* ">" 3486 def _HtmlBlockOpenDir 3487 3488 _save = self.pos 3489 while true # sequence 3490 _tmp = match_string("<") 3491 unless _tmp 3492 self.pos = _save 3493 break 3494 end 3495 _tmp = apply(:_Spnl) 3496 unless _tmp 3497 self.pos = _save 3498 break 3499 end 3500 3501 _save1 = self.pos 3502 while true # choice 3503 _tmp = match_string("dir") 3504 break if _tmp 3505 self.pos = _save1 3506 _tmp = match_string("DIR") 3507 break if _tmp 3508 self.pos = _save1 3509 break 3510 end # end choice 3511 3512 unless _tmp 3513 self.pos = _save 3514 break 3515 end 3516 _tmp = apply(:_Spnl) 3517 unless _tmp 3518 self.pos = _save 3519 break 3520 end 3521 while true 3522 _tmp = apply(:_HtmlAttribute) 3523 break unless _tmp 3524 end 3525 _tmp = true 3526 unless _tmp 3527 self.pos = _save 3528 break 3529 end 3530 _tmp = match_string(">") 3531 unless _tmp 3532 self.pos = _save 3533 end 3534 break 3535 end # end sequence 3536 3537 set_failed_rule :_HtmlBlockOpenDir unless _tmp 3538 return _tmp 3539 end 3540 3541 # HtmlBlockCloseDir = "<" Spnl "/" ("dir" | "DIR") Spnl ">" 3542 def _HtmlBlockCloseDir 3543 3544 _save = self.pos 3545 while true # sequence 3546 _tmp = match_string("<") 3547 unless _tmp 3548 self.pos = _save 3549 break 3550 end 3551 _tmp = apply(:_Spnl) 3552 unless _tmp 3553 self.pos = _save 3554 break 3555 end 3556 _tmp = match_string("/") 3557 unless _tmp 3558 self.pos = _save 3559 break 3560 end 3561 3562 _save1 = self.pos 3563 while true # choice 3564 _tmp = match_string("dir") 3565 break if _tmp 3566 self.pos = _save1 3567 _tmp = match_string("DIR") 3568 break if _tmp 3569 self.pos = _save1 3570 break 3571 end # end choice 3572 3573 unless _tmp 3574 self.pos = _save 3575 break 3576 end 3577 _tmp = apply(:_Spnl) 3578 unless _tmp 3579 self.pos = _save 3580 break 3581 end 3582 _tmp = match_string(">") 3583 unless _tmp 3584 self.pos = _save 3585 end 3586 break 3587 end # end sequence 3588 3589 set_failed_rule :_HtmlBlockCloseDir unless _tmp 3590 return _tmp 3591 end 3592 3593 # HtmlBlockDir = HtmlBlockOpenDir (HtmlBlockDir | !HtmlBlockCloseDir .)* HtmlBlockCloseDir 3594 def _HtmlBlockDir 3595 3596 _save = self.pos 3597 while true # sequence 3598 _tmp = apply(:_HtmlBlockOpenDir) 3599 unless _tmp 3600 self.pos = _save 3601 break 3602 end 3603 while true 3604 3605 _save2 = self.pos 3606 while true # choice 3607 _tmp = apply(:_HtmlBlockDir) 3608 break if _tmp 3609 self.pos = _save2 3610 3611 _save3 = self.pos 3612 while true # sequence 3613 _save4 = self.pos 3614 _tmp = apply(:_HtmlBlockCloseDir) 3615 _tmp = _tmp ? nil : true 3616 self.pos = _save4 3617 unless _tmp 3618 self.pos = _save3 3619 break 3620 end 3621 _tmp = get_byte 3622 unless _tmp 3623 self.pos = _save3 3624 end 3625 break 3626 end # end sequence 3627 3628 break if _tmp 3629 self.pos = _save2 3630 break 3631 end # end choice 3632 3633 break unless _tmp 3634 end 3635 _tmp = true 3636 unless _tmp 3637 self.pos = _save 3638 break 3639 end 3640 _tmp = apply(:_HtmlBlockCloseDir) 3641 unless _tmp 3642 self.pos = _save 3643 end 3644 break 3645 end # end sequence 3646 3647 set_failed_rule :_HtmlBlockDir unless _tmp 3648 return _tmp 3649 end 3650 3651 # HtmlBlockOpenDiv = "<" Spnl ("div" | "DIV") Spnl HtmlAttribute* ">" 3652 def _HtmlBlockOpenDiv 3653 3654 _save = self.pos 3655 while true # sequence 3656 _tmp = match_string("<") 3657 unless _tmp 3658 self.pos = _save 3659 break 3660 end 3661 _tmp = apply(:_Spnl) 3662 unless _tmp 3663 self.pos = _save 3664 break 3665 end 3666 3667 _save1 = self.pos 3668 while true # choice 3669 _tmp = match_string("div") 3670 break if _tmp 3671 self.pos = _save1 3672 _tmp = match_string("DIV") 3673 break if _tmp 3674 self.pos = _save1 3675 break 3676 end # end choice 3677 3678 unless _tmp 3679 self.pos = _save 3680 break 3681 end 3682 _tmp = apply(:_Spnl) 3683 unless _tmp 3684 self.pos = _save 3685 break 3686 end 3687 while true 3688 _tmp = apply(:_HtmlAttribute) 3689 break unless _tmp 3690 end 3691 _tmp = true 3692 unless _tmp 3693 self.pos = _save 3694 break 3695 end 3696 _tmp = match_string(">") 3697 unless _tmp 3698 self.pos = _save 3699 end 3700 break 3701 end # end sequence 3702 3703 set_failed_rule :_HtmlBlockOpenDiv unless _tmp 3704 return _tmp 3705 end 3706 3707 # HtmlBlockCloseDiv = "<" Spnl "/" ("div" | "DIV") Spnl ">" 3708 def _HtmlBlockCloseDiv 3709 3710 _save = self.pos 3711 while true # sequence 3712 _tmp = match_string("<") 3713 unless _tmp 3714 self.pos = _save 3715 break 3716 end 3717 _tmp = apply(:_Spnl) 3718 unless _tmp 3719 self.pos = _save 3720 break 3721 end 3722 _tmp = match_string("/") 3723 unless _tmp 3724 self.pos = _save 3725 break 3726 end 3727 3728 _save1 = self.pos 3729 while true # choice 3730 _tmp = match_string("div") 3731 break if _tmp 3732 self.pos = _save1 3733 _tmp = match_string("DIV") 3734 break if _tmp 3735 self.pos = _save1 3736 break 3737 end # end choice 3738 3739 unless _tmp 3740 self.pos = _save 3741 break 3742 end 3743 _tmp = apply(:_Spnl) 3744 unless _tmp 3745 self.pos = _save 3746 break 3747 end 3748 _tmp = match_string(">") 3749 unless _tmp 3750 self.pos = _save 3751 end 3752 break 3753 end # end sequence 3754 3755 set_failed_rule :_HtmlBlockCloseDiv unless _tmp 3756 return _tmp 3757 end 3758 3759 # HtmlBlockDiv = HtmlBlockOpenDiv (HtmlBlockDiv | !HtmlBlockCloseDiv .)* HtmlBlockCloseDiv 3760 def _HtmlBlockDiv 3761 3762 _save = self.pos 3763 while true # sequence 3764 _tmp = apply(:_HtmlBlockOpenDiv) 3765 unless _tmp 3766 self.pos = _save 3767 break 3768 end 3769 while true 3770 3771 _save2 = self.pos 3772 while true # choice 3773 _tmp = apply(:_HtmlBlockDiv) 3774 break if _tmp 3775 self.pos = _save2 3776 3777 _save3 = self.pos 3778 while true # sequence 3779 _save4 = self.pos 3780 _tmp = apply(:_HtmlBlockCloseDiv) 3781 _tmp = _tmp ? nil : true 3782 self.pos = _save4 3783 unless _tmp 3784 self.pos = _save3 3785 break 3786 end 3787 _tmp = get_byte 3788 unless _tmp 3789 self.pos = _save3 3790 end 3791 break 3792 end # end sequence 3793 3794 break if _tmp 3795 self.pos = _save2 3796 break 3797 end # end choice 3798 3799 break unless _tmp 3800 end 3801 _tmp = true 3802 unless _tmp 3803 self.pos = _save 3804 break 3805 end 3806 _tmp = apply(:_HtmlBlockCloseDiv) 3807 unless _tmp 3808 self.pos = _save 3809 end 3810 break 3811 end # end sequence 3812 3813 set_failed_rule :_HtmlBlockDiv unless _tmp 3814 return _tmp 3815 end 3816 3817 # HtmlBlockOpenDl = "<" Spnl ("dl" | "DL") Spnl HtmlAttribute* ">" 3818 def _HtmlBlockOpenDl 3819 3820 _save = self.pos 3821 while true # sequence 3822 _tmp = match_string("<") 3823 unless _tmp 3824 self.pos = _save 3825 break 3826 end 3827 _tmp = apply(:_Spnl) 3828 unless _tmp 3829 self.pos = _save 3830 break 3831 end 3832 3833 _save1 = self.pos 3834 while true # choice 3835 _tmp = match_string("dl") 3836 break if _tmp 3837 self.pos = _save1 3838 _tmp = match_string("DL") 3839 break if _tmp 3840 self.pos = _save1 3841 break 3842 end # end choice 3843 3844 unless _tmp 3845 self.pos = _save 3846 break 3847 end 3848 _tmp = apply(:_Spnl) 3849 unless _tmp 3850 self.pos = _save 3851 break 3852 end 3853 while true 3854 _tmp = apply(:_HtmlAttribute) 3855 break unless _tmp 3856 end 3857 _tmp = true 3858 unless _tmp 3859 self.pos = _save 3860 break 3861 end 3862 _tmp = match_string(">") 3863 unless _tmp 3864 self.pos = _save 3865 end 3866 break 3867 end # end sequence 3868 3869 set_failed_rule :_HtmlBlockOpenDl unless _tmp 3870 return _tmp 3871 end 3872 3873 # HtmlBlockCloseDl = "<" Spnl "/" ("dl" | "DL") Spnl ">" 3874 def _HtmlBlockCloseDl 3875 3876 _save = self.pos 3877 while true # sequence 3878 _tmp = match_string("<") 3879 unless _tmp 3880 self.pos = _save 3881 break 3882 end 3883 _tmp = apply(:_Spnl) 3884 unless _tmp 3885 self.pos = _save 3886 break 3887 end 3888 _tmp = match_string("/") 3889 unless _tmp 3890 self.pos = _save 3891 break 3892 end 3893 3894 _save1 = self.pos 3895 while true # choice 3896 _tmp = match_string("dl") 3897 break if _tmp 3898 self.pos = _save1 3899 _tmp = match_string("DL") 3900 break if _tmp 3901 self.pos = _save1 3902 break 3903 end # end choice 3904 3905 unless _tmp 3906 self.pos = _save 3907 break 3908 end 3909 _tmp = apply(:_Spnl) 3910 unless _tmp 3911 self.pos = _save 3912 break 3913 end 3914 _tmp = match_string(">") 3915 unless _tmp 3916 self.pos = _save 3917 end 3918 break 3919 end # end sequence 3920 3921 set_failed_rule :_HtmlBlockCloseDl unless _tmp 3922 return _tmp 3923 end 3924 3925 # HtmlBlockDl = HtmlBlockOpenDl (HtmlBlockDl | !HtmlBlockCloseDl .)* HtmlBlockCloseDl 3926 def _HtmlBlockDl 3927 3928 _save = self.pos 3929 while true # sequence 3930 _tmp = apply(:_HtmlBlockOpenDl) 3931 unless _tmp 3932 self.pos = _save 3933 break 3934 end 3935 while true 3936 3937 _save2 = self.pos 3938 while true # choice 3939 _tmp = apply(:_HtmlBlockDl) 3940 break if _tmp 3941 self.pos = _save2 3942 3943 _save3 = self.pos 3944 while true # sequence 3945 _save4 = self.pos 3946 _tmp = apply(:_HtmlBlockCloseDl) 3947 _tmp = _tmp ? nil : true 3948 self.pos = _save4 3949 unless _tmp 3950 self.pos = _save3 3951 break 3952 end 3953 _tmp = get_byte 3954 unless _tmp 3955 self.pos = _save3 3956 end 3957 break 3958 end # end sequence 3959 3960 break if _tmp 3961 self.pos = _save2 3962 break 3963 end # end choice 3964 3965 break unless _tmp 3966 end 3967 _tmp = true 3968 unless _tmp 3969 self.pos = _save 3970 break 3971 end 3972 _tmp = apply(:_HtmlBlockCloseDl) 3973 unless _tmp 3974 self.pos = _save 3975 end 3976 break 3977 end # end sequence 3978 3979 set_failed_rule :_HtmlBlockDl unless _tmp 3980 return _tmp 3981 end 3982 3983 # HtmlBlockOpenFieldset = "<" Spnl ("fieldset" | "FIELDSET") Spnl HtmlAttribute* ">" 3984 def _HtmlBlockOpenFieldset 3985 3986 _save = self.pos 3987 while true # sequence 3988 _tmp = match_string("<") 3989 unless _tmp 3990 self.pos = _save 3991 break 3992 end 3993 _tmp = apply(:_Spnl) 3994 unless _tmp 3995 self.pos = _save 3996 break 3997 end 3998 3999 _save1 = self.pos 4000 while true # choice 4001 _tmp = match_string("fieldset") 4002 break if _tmp 4003 self.pos = _save1 4004 _tmp = match_string("FIELDSET") 4005 break if _tmp 4006 self.pos = _save1 4007 break 4008 end # end choice 4009 4010 unless _tmp 4011 self.pos = _save 4012 break 4013 end 4014 _tmp = apply(:_Spnl) 4015 unless _tmp 4016 self.pos = _save 4017 break 4018 end 4019 while true 4020 _tmp = apply(:_HtmlAttribute) 4021 break unless _tmp 4022 end 4023 _tmp = true 4024 unless _tmp 4025 self.pos = _save 4026 break 4027 end 4028 _tmp = match_string(">") 4029 unless _tmp 4030 self.pos = _save 4031 end 4032 break 4033 end # end sequence 4034 4035 set_failed_rule :_HtmlBlockOpenFieldset unless _tmp 4036 return _tmp 4037 end 4038 4039 # HtmlBlockCloseFieldset = "<" Spnl "/" ("fieldset" | "FIELDSET") Spnl ">" 4040 def _HtmlBlockCloseFieldset 4041 4042 _save = self.pos 4043 while true # sequence 4044 _tmp = match_string("<") 4045 unless _tmp 4046 self.pos = _save 4047 break 4048 end 4049 _tmp = apply(:_Spnl) 4050 unless _tmp 4051 self.pos = _save 4052 break 4053 end 4054 _tmp = match_string("/") 4055 unless _tmp 4056 self.pos = _save 4057 break 4058 end 4059 4060 _save1 = self.pos 4061 while true # choice 4062 _tmp = match_string("fieldset") 4063 break if _tmp 4064 self.pos = _save1 4065 _tmp = match_string("FIELDSET") 4066 break if _tmp 4067 self.pos = _save1 4068 break 4069 end # end choice 4070 4071 unless _tmp 4072 self.pos = _save 4073 break 4074 end 4075 _tmp = apply(:_Spnl) 4076 unless _tmp 4077 self.pos = _save 4078 break 4079 end 4080 _tmp = match_string(">") 4081 unless _tmp 4082 self.pos = _save 4083 end 4084 break 4085 end # end sequence 4086 4087 set_failed_rule :_HtmlBlockCloseFieldset unless _tmp 4088 return _tmp 4089 end 4090 4091 # HtmlBlockFieldset = HtmlBlockOpenFieldset (HtmlBlockFieldset | !HtmlBlockCloseFieldset .)* HtmlBlockCloseFieldset 4092 def _HtmlBlockFieldset 4093 4094 _save = self.pos 4095 while true # sequence 4096 _tmp = apply(:_HtmlBlockOpenFieldset) 4097 unless _tmp 4098 self.pos = _save 4099 break 4100 end 4101 while true 4102 4103 _save2 = self.pos 4104 while true # choice 4105 _tmp = apply(:_HtmlBlockFieldset) 4106 break if _tmp 4107 self.pos = _save2 4108 4109 _save3 = self.pos 4110 while true # sequence 4111 _save4 = self.pos 4112 _tmp = apply(:_HtmlBlockCloseFieldset) 4113 _tmp = _tmp ? nil : true 4114 self.pos = _save4 4115 unless _tmp 4116 self.pos = _save3 4117 break 4118 end 4119 _tmp = get_byte 4120 unless _tmp 4121 self.pos = _save3 4122 end 4123 break 4124 end # end sequence 4125 4126 break if _tmp 4127 self.pos = _save2 4128 break 4129 end # end choice 4130 4131 break unless _tmp 4132 end 4133 _tmp = true 4134 unless _tmp 4135 self.pos = _save 4136 break 4137 end 4138 _tmp = apply(:_HtmlBlockCloseFieldset) 4139 unless _tmp 4140 self.pos = _save 4141 end 4142 break 4143 end # end sequence 4144 4145 set_failed_rule :_HtmlBlockFieldset unless _tmp 4146 return _tmp 4147 end 4148 4149 # HtmlBlockOpenForm = "<" Spnl ("form" | "FORM") Spnl HtmlAttribute* ">" 4150 def _HtmlBlockOpenForm 4151 4152 _save = self.pos 4153 while true # sequence 4154 _tmp = match_string("<") 4155 unless _tmp 4156 self.pos = _save 4157 break 4158 end 4159 _tmp = apply(:_Spnl) 4160 unless _tmp 4161 self.pos = _save 4162 break 4163 end 4164 4165 _save1 = self.pos 4166 while true # choice 4167 _tmp = match_string("form") 4168 break if _tmp 4169 self.pos = _save1 4170 _tmp = match_string("FORM") 4171 break if _tmp 4172 self.pos = _save1 4173 break 4174 end # end choice 4175 4176 unless _tmp 4177 self.pos = _save 4178 break 4179 end 4180 _tmp = apply(:_Spnl) 4181 unless _tmp 4182 self.pos = _save 4183 break 4184 end 4185 while true 4186 _tmp = apply(:_HtmlAttribute) 4187 break unless _tmp 4188 end 4189 _tmp = true 4190 unless _tmp 4191 self.pos = _save 4192 break 4193 end 4194 _tmp = match_string(">") 4195 unless _tmp 4196 self.pos = _save 4197 end 4198 break 4199 end # end sequence 4200 4201 set_failed_rule :_HtmlBlockOpenForm unless _tmp 4202 return _tmp 4203 end 4204 4205 # HtmlBlockCloseForm = "<" Spnl "/" ("form" | "FORM") Spnl ">" 4206 def _HtmlBlockCloseForm 4207 4208 _save = self.pos 4209 while true # sequence 4210 _tmp = match_string("<") 4211 unless _tmp 4212 self.pos = _save 4213 break 4214 end 4215 _tmp = apply(:_Spnl) 4216 unless _tmp 4217 self.pos = _save 4218 break 4219 end 4220 _tmp = match_string("/") 4221 unless _tmp 4222 self.pos = _save 4223 break 4224 end 4225 4226 _save1 = self.pos 4227 while true # choice 4228 _tmp = match_string("form") 4229 break if _tmp 4230 self.pos = _save1 4231 _tmp = match_string("FORM") 4232 break if _tmp 4233 self.pos = _save1 4234 break 4235 end # end choice 4236 4237 unless _tmp 4238 self.pos = _save 4239 break 4240 end 4241 _tmp = apply(:_Spnl) 4242 unless _tmp 4243 self.pos = _save 4244 break 4245 end 4246 _tmp = match_string(">") 4247 unless _tmp 4248 self.pos = _save 4249 end 4250 break 4251 end # end sequence 4252 4253 set_failed_rule :_HtmlBlockCloseForm unless _tmp 4254 return _tmp 4255 end 4256 4257 # HtmlBlockForm = HtmlBlockOpenForm (HtmlBlockForm | !HtmlBlockCloseForm .)* HtmlBlockCloseForm 4258 def _HtmlBlockForm 4259 4260 _save = self.pos 4261 while true # sequence 4262 _tmp = apply(:_HtmlBlockOpenForm) 4263 unless _tmp 4264 self.pos = _save 4265 break 4266 end 4267 while true 4268 4269 _save2 = self.pos 4270 while true # choice 4271 _tmp = apply(:_HtmlBlockForm) 4272 break if _tmp 4273 self.pos = _save2 4274 4275 _save3 = self.pos 4276 while true # sequence 4277 _save4 = self.pos 4278 _tmp = apply(:_HtmlBlockCloseForm) 4279 _tmp = _tmp ? nil : true 4280 self.pos = _save4 4281 unless _tmp 4282 self.pos = _save3 4283 break 4284 end 4285 _tmp = get_byte 4286 unless _tmp 4287 self.pos = _save3 4288 end 4289 break 4290 end # end sequence 4291 4292 break if _tmp 4293 self.pos = _save2 4294 break 4295 end # end choice 4296 4297 break unless _tmp 4298 end 4299 _tmp = true 4300 unless _tmp 4301 self.pos = _save 4302 break 4303 end 4304 _tmp = apply(:_HtmlBlockCloseForm) 4305 unless _tmp 4306 self.pos = _save 4307 end 4308 break 4309 end # end sequence 4310 4311 set_failed_rule :_HtmlBlockForm unless _tmp 4312 return _tmp 4313 end 4314 4315 # HtmlBlockOpenH1 = "<" Spnl ("h1" | "H1") Spnl HtmlAttribute* ">" 4316 def _HtmlBlockOpenH1 4317 4318 _save = self.pos 4319 while true # sequence 4320 _tmp = match_string("<") 4321 unless _tmp 4322 self.pos = _save 4323 break 4324 end 4325 _tmp = apply(:_Spnl) 4326 unless _tmp 4327 self.pos = _save 4328 break 4329 end 4330 4331 _save1 = self.pos 4332 while true # choice 4333 _tmp = match_string("h1") 4334 break if _tmp 4335 self.pos = _save1 4336 _tmp = match_string("H1") 4337 break if _tmp 4338 self.pos = _save1 4339 break 4340 end # end choice 4341 4342 unless _tmp 4343 self.pos = _save 4344 break 4345 end 4346 _tmp = apply(:_Spnl) 4347 unless _tmp 4348 self.pos = _save 4349 break 4350 end 4351 while true 4352 _tmp = apply(:_HtmlAttribute) 4353 break unless _tmp 4354 end 4355 _tmp = true 4356 unless _tmp 4357 self.pos = _save 4358 break 4359 end 4360 _tmp = match_string(">") 4361 unless _tmp 4362 self.pos = _save 4363 end 4364 break 4365 end # end sequence 4366 4367 set_failed_rule :_HtmlBlockOpenH1 unless _tmp 4368 return _tmp 4369 end 4370 4371 # HtmlBlockCloseH1 = "<" Spnl "/" ("h1" | "H1") Spnl ">" 4372 def _HtmlBlockCloseH1 4373 4374 _save = self.pos 4375 while true # sequence 4376 _tmp = match_string("<") 4377 unless _tmp 4378 self.pos = _save 4379 break 4380 end 4381 _tmp = apply(:_Spnl) 4382 unless _tmp 4383 self.pos = _save 4384 break 4385 end 4386 _tmp = match_string("/") 4387 unless _tmp 4388 self.pos = _save 4389 break 4390 end 4391 4392 _save1 = self.pos 4393 while true # choice 4394 _tmp = match_string("h1") 4395 break if _tmp 4396 self.pos = _save1 4397 _tmp = match_string("H1") 4398 break if _tmp 4399 self.pos = _save1 4400 break 4401 end # end choice 4402 4403 unless _tmp 4404 self.pos = _save 4405 break 4406 end 4407 _tmp = apply(:_Spnl) 4408 unless _tmp 4409 self.pos = _save 4410 break 4411 end 4412 _tmp = match_string(">") 4413 unless _tmp 4414 self.pos = _save 4415 end 4416 break 4417 end # end sequence 4418 4419 set_failed_rule :_HtmlBlockCloseH1 unless _tmp 4420 return _tmp 4421 end 4422 4423 # HtmlBlockH1 = HtmlBlockOpenH1 (HtmlBlockH1 | !HtmlBlockCloseH1 .)* HtmlBlockCloseH1 4424 def _HtmlBlockH1 4425 4426 _save = self.pos 4427 while true # sequence 4428 _tmp = apply(:_HtmlBlockOpenH1) 4429 unless _tmp 4430 self.pos = _save 4431 break 4432 end 4433 while true 4434 4435 _save2 = self.pos 4436 while true # choice 4437 _tmp = apply(:_HtmlBlockH1) 4438 break if _tmp 4439 self.pos = _save2 4440 4441 _save3 = self.pos 4442 while true # sequence 4443 _save4 = self.pos 4444 _tmp = apply(:_HtmlBlockCloseH1) 4445 _tmp = _tmp ? nil : true 4446 self.pos = _save4 4447 unless _tmp 4448 self.pos = _save3 4449 break 4450 end 4451 _tmp = get_byte 4452 unless _tmp 4453 self.pos = _save3 4454 end 4455 break 4456 end # end sequence 4457 4458 break if _tmp 4459 self.pos = _save2 4460 break 4461 end # end choice 4462 4463 break unless _tmp 4464 end 4465 _tmp = true 4466 unless _tmp 4467 self.pos = _save 4468 break 4469 end 4470 _tmp = apply(:_HtmlBlockCloseH1) 4471 unless _tmp 4472 self.pos = _save 4473 end 4474 break 4475 end # end sequence 4476 4477 set_failed_rule :_HtmlBlockH1 unless _tmp 4478 return _tmp 4479 end 4480 4481 # HtmlBlockOpenH2 = "<" Spnl ("h2" | "H2") Spnl HtmlAttribute* ">" 4482 def _HtmlBlockOpenH2 4483 4484 _save = self.pos 4485 while true # sequence 4486 _tmp = match_string("<") 4487 unless _tmp 4488 self.pos = _save 4489 break 4490 end 4491 _tmp = apply(:_Spnl) 4492 unless _tmp 4493 self.pos = _save 4494 break 4495 end 4496 4497 _save1 = self.pos 4498 while true # choice 4499 _tmp = match_string("h2") 4500 break if _tmp 4501 self.pos = _save1 4502 _tmp = match_string("H2") 4503 break if _tmp 4504 self.pos = _save1 4505 break 4506 end # end choice 4507 4508 unless _tmp 4509 self.pos = _save 4510 break 4511 end 4512 _tmp = apply(:_Spnl) 4513 unless _tmp 4514 self.pos = _save 4515 break 4516 end 4517 while true 4518 _tmp = apply(:_HtmlAttribute) 4519 break unless _tmp 4520 end 4521 _tmp = true 4522 unless _tmp 4523 self.pos = _save 4524 break 4525 end 4526 _tmp = match_string(">") 4527 unless _tmp 4528 self.pos = _save 4529 end 4530 break 4531 end # end sequence 4532 4533 set_failed_rule :_HtmlBlockOpenH2 unless _tmp 4534 return _tmp 4535 end 4536 4537 # HtmlBlockCloseH2 = "<" Spnl "/" ("h2" | "H2") Spnl ">" 4538 def _HtmlBlockCloseH2 4539 4540 _save = self.pos 4541 while true # sequence 4542 _tmp = match_string("<") 4543 unless _tmp 4544 self.pos = _save 4545 break 4546 end 4547 _tmp = apply(:_Spnl) 4548 unless _tmp 4549 self.pos = _save 4550 break 4551 end 4552 _tmp = match_string("/") 4553 unless _tmp 4554 self.pos = _save 4555 break 4556 end 4557 4558 _save1 = self.pos 4559 while true # choice 4560 _tmp = match_string("h2") 4561 break if _tmp 4562 self.pos = _save1 4563 _tmp = match_string("H2") 4564 break if _tmp 4565 self.pos = _save1 4566 break 4567 end # end choice 4568 4569 unless _tmp 4570 self.pos = _save 4571 break 4572 end 4573 _tmp = apply(:_Spnl) 4574 unless _tmp 4575 self.pos = _save 4576 break 4577 end 4578 _tmp = match_string(">") 4579 unless _tmp 4580 self.pos = _save 4581 end 4582 break 4583 end # end sequence 4584 4585 set_failed_rule :_HtmlBlockCloseH2 unless _tmp 4586 return _tmp 4587 end 4588 4589 # HtmlBlockH2 = HtmlBlockOpenH2 (HtmlBlockH2 | !HtmlBlockCloseH2 .)* HtmlBlockCloseH2 4590 def _HtmlBlockH2 4591 4592 _save = self.pos 4593 while true # sequence 4594 _tmp = apply(:_HtmlBlockOpenH2) 4595 unless _tmp 4596 self.pos = _save 4597 break 4598 end 4599 while true 4600 4601 _save2 = self.pos 4602 while true # choice 4603 _tmp = apply(:_HtmlBlockH2) 4604 break if _tmp 4605 self.pos = _save2 4606 4607 _save3 = self.pos 4608 while true # sequence 4609 _save4 = self.pos 4610 _tmp = apply(:_HtmlBlockCloseH2) 4611 _tmp = _tmp ? nil : true 4612 self.pos = _save4 4613 unless _tmp 4614 self.pos = _save3 4615 break 4616 end 4617 _tmp = get_byte 4618 unless _tmp 4619 self.pos = _save3 4620 end 4621 break 4622 end # end sequence 4623 4624 break if _tmp 4625 self.pos = _save2 4626 break 4627 end # end choice 4628 4629 break unless _tmp 4630 end 4631 _tmp = true 4632 unless _tmp 4633 self.pos = _save 4634 break 4635 end 4636 _tmp = apply(:_HtmlBlockCloseH2) 4637 unless _tmp 4638 self.pos = _save 4639 end 4640 break 4641 end # end sequence 4642 4643 set_failed_rule :_HtmlBlockH2 unless _tmp 4644 return _tmp 4645 end 4646 4647 # HtmlBlockOpenH3 = "<" Spnl ("h3" | "H3") Spnl HtmlAttribute* ">" 4648 def _HtmlBlockOpenH3 4649 4650 _save = self.pos 4651 while true # sequence 4652 _tmp = match_string("<") 4653 unless _tmp 4654 self.pos = _save 4655 break 4656 end 4657 _tmp = apply(:_Spnl) 4658 unless _tmp 4659 self.pos = _save 4660 break 4661 end 4662 4663 _save1 = self.pos 4664 while true # choice 4665 _tmp = match_string("h3") 4666 break if _tmp 4667 self.pos = _save1 4668 _tmp = match_string("H3") 4669 break if _tmp 4670 self.pos = _save1 4671 break 4672 end # end choice 4673 4674 unless _tmp 4675 self.pos = _save 4676 break 4677 end 4678 _tmp = apply(:_Spnl) 4679 unless _tmp 4680 self.pos = _save 4681 break 4682 end 4683 while true 4684 _tmp = apply(:_HtmlAttribute) 4685 break unless _tmp 4686 end 4687 _tmp = true 4688 unless _tmp 4689 self.pos = _save 4690 break 4691 end 4692 _tmp = match_string(">") 4693 unless _tmp 4694 self.pos = _save 4695 end 4696 break 4697 end # end sequence 4698 4699 set_failed_rule :_HtmlBlockOpenH3 unless _tmp 4700 return _tmp 4701 end 4702 4703 # HtmlBlockCloseH3 = "<" Spnl "/" ("h3" | "H3") Spnl ">" 4704 def _HtmlBlockCloseH3 4705 4706 _save = self.pos 4707 while true # sequence 4708 _tmp = match_string("<") 4709 unless _tmp 4710 self.pos = _save 4711 break 4712 end 4713 _tmp = apply(:_Spnl) 4714 unless _tmp 4715 self.pos = _save 4716 break 4717 end 4718 _tmp = match_string("/") 4719 unless _tmp 4720 self.pos = _save 4721 break 4722 end 4723 4724 _save1 = self.pos 4725 while true # choice 4726 _tmp = match_string("h3") 4727 break if _tmp 4728 self.pos = _save1 4729 _tmp = match_string("H3") 4730 break if _tmp 4731 self.pos = _save1 4732 break 4733 end # end choice 4734 4735 unless _tmp 4736 self.pos = _save 4737 break 4738 end 4739 _tmp = apply(:_Spnl) 4740 unless _tmp 4741 self.pos = _save 4742 break 4743 end 4744 _tmp = match_string(">") 4745 unless _tmp 4746 self.pos = _save 4747 end 4748 break 4749 end # end sequence 4750 4751 set_failed_rule :_HtmlBlockCloseH3 unless _tmp 4752 return _tmp 4753 end 4754 4755 # HtmlBlockH3 = HtmlBlockOpenH3 (HtmlBlockH3 | !HtmlBlockCloseH3 .)* HtmlBlockCloseH3 4756 def _HtmlBlockH3 4757 4758 _save = self.pos 4759 while true # sequence 4760 _tmp = apply(:_HtmlBlockOpenH3) 4761 unless _tmp 4762 self.pos = _save 4763 break 4764 end 4765 while true 4766 4767 _save2 = self.pos 4768 while true # choice 4769 _tmp = apply(:_HtmlBlockH3) 4770 break if _tmp 4771 self.pos = _save2 4772 4773 _save3 = self.pos 4774 while true # sequence 4775 _save4 = self.pos 4776 _tmp = apply(:_HtmlBlockCloseH3) 4777 _tmp = _tmp ? nil : true 4778 self.pos = _save4 4779 unless _tmp 4780 self.pos = _save3 4781 break 4782 end 4783 _tmp = get_byte 4784 unless _tmp 4785 self.pos = _save3 4786 end 4787 break 4788 end # end sequence 4789 4790 break if _tmp 4791 self.pos = _save2 4792 break 4793 end # end choice 4794 4795 break unless _tmp 4796 end 4797 _tmp = true 4798 unless _tmp 4799 self.pos = _save 4800 break 4801 end 4802 _tmp = apply(:_HtmlBlockCloseH3) 4803 unless _tmp 4804 self.pos = _save 4805 end 4806 break 4807 end # end sequence 4808 4809 set_failed_rule :_HtmlBlockH3 unless _tmp 4810 return _tmp 4811 end 4812 4813 # HtmlBlockOpenH4 = "<" Spnl ("h4" | "H4") Spnl HtmlAttribute* ">" 4814 def _HtmlBlockOpenH4 4815 4816 _save = self.pos 4817 while true # sequence 4818 _tmp = match_string("<") 4819 unless _tmp 4820 self.pos = _save 4821 break 4822 end 4823 _tmp = apply(:_Spnl) 4824 unless _tmp 4825 self.pos = _save 4826 break 4827 end 4828 4829 _save1 = self.pos 4830 while true # choice 4831 _tmp = match_string("h4") 4832 break if _tmp 4833 self.pos = _save1 4834 _tmp = match_string("H4") 4835 break if _tmp 4836 self.pos = _save1 4837 break 4838 end # end choice 4839 4840 unless _tmp 4841 self.pos = _save 4842 break 4843 end 4844 _tmp = apply(:_Spnl) 4845 unless _tmp 4846 self.pos = _save 4847 break 4848 end 4849 while true 4850 _tmp = apply(:_HtmlAttribute) 4851 break unless _tmp 4852 end 4853 _tmp = true 4854 unless _tmp 4855 self.pos = _save 4856 break 4857 end 4858 _tmp = match_string(">") 4859 unless _tmp 4860 self.pos = _save 4861 end 4862 break 4863 end # end sequence 4864 4865 set_failed_rule :_HtmlBlockOpenH4 unless _tmp 4866 return _tmp 4867 end 4868 4869 # HtmlBlockCloseH4 = "<" Spnl "/" ("h4" | "H4") Spnl ">" 4870 def _HtmlBlockCloseH4 4871 4872 _save = self.pos 4873 while true # sequence 4874 _tmp = match_string("<") 4875 unless _tmp 4876 self.pos = _save 4877 break 4878 end 4879 _tmp = apply(:_Spnl) 4880 unless _tmp 4881 self.pos = _save 4882 break 4883 end 4884 _tmp = match_string("/") 4885 unless _tmp 4886 self.pos = _save 4887 break 4888 end 4889 4890 _save1 = self.pos 4891 while true # choice 4892 _tmp = match_string("h4") 4893 break if _tmp 4894 self.pos = _save1 4895 _tmp = match_string("H4") 4896 break if _tmp 4897 self.pos = _save1 4898 break 4899 end # end choice 4900 4901 unless _tmp 4902 self.pos = _save 4903 break 4904 end 4905 _tmp = apply(:_Spnl) 4906 unless _tmp 4907 self.pos = _save 4908 break 4909 end 4910 _tmp = match_string(">") 4911 unless _tmp 4912 self.pos = _save 4913 end 4914 break 4915 end # end sequence 4916 4917 set_failed_rule :_HtmlBlockCloseH4 unless _tmp 4918 return _tmp 4919 end 4920 4921 # HtmlBlockH4 = HtmlBlockOpenH4 (HtmlBlockH4 | !HtmlBlockCloseH4 .)* HtmlBlockCloseH4 4922 def _HtmlBlockH4 4923 4924 _save = self.pos 4925 while true # sequence 4926 _tmp = apply(:_HtmlBlockOpenH4) 4927 unless _tmp 4928 self.pos = _save 4929 break 4930 end 4931 while true 4932 4933 _save2 = self.pos 4934 while true # choice 4935 _tmp = apply(:_HtmlBlockH4) 4936 break if _tmp 4937 self.pos = _save2 4938 4939 _save3 = self.pos 4940 while true # sequence 4941 _save4 = self.pos 4942 _tmp = apply(:_HtmlBlockCloseH4) 4943 _tmp = _tmp ? nil : true 4944 self.pos = _save4 4945 unless _tmp 4946 self.pos = _save3 4947 break 4948 end 4949 _tmp = get_byte 4950 unless _tmp 4951 self.pos = _save3 4952 end 4953 break 4954 end # end sequence 4955 4956 break if _tmp 4957 self.pos = _save2 4958 break 4959 end # end choice 4960 4961 break unless _tmp 4962 end 4963 _tmp = true 4964 unless _tmp 4965 self.pos = _save 4966 break 4967 end 4968 _tmp = apply(:_HtmlBlockCloseH4) 4969 unless _tmp 4970 self.pos = _save 4971 end 4972 break 4973 end # end sequence 4974 4975 set_failed_rule :_HtmlBlockH4 unless _tmp 4976 return _tmp 4977 end 4978 4979 # HtmlBlockOpenH5 = "<" Spnl ("h5" | "H5") Spnl HtmlAttribute* ">" 4980 def _HtmlBlockOpenH5 4981 4982 _save = self.pos 4983 while true # sequence 4984 _tmp = match_string("<") 4985 unless _tmp 4986 self.pos = _save 4987 break 4988 end 4989 _tmp = apply(:_Spnl) 4990 unless _tmp 4991 self.pos = _save 4992 break 4993 end 4994 4995 _save1 = self.pos 4996 while true # choice 4997 _tmp = match_string("h5") 4998 break if _tmp 4999 self.pos = _save1 5000 _tmp = match_string("H5") 5001 break if _tmp 5002 self.pos = _save1 5003 break 5004 end # end choice 5005 5006 unless _tmp 5007 self.pos = _save 5008 break 5009 end 5010 _tmp = apply(:_Spnl) 5011 unless _tmp 5012 self.pos = _save 5013 break 5014 end 5015 while true 5016 _tmp = apply(:_HtmlAttribute) 5017 break unless _tmp 5018 end 5019 _tmp = true 5020 unless _tmp 5021 self.pos = _save 5022 break 5023 end 5024 _tmp = match_string(">") 5025 unless _tmp 5026 self.pos = _save 5027 end 5028 break 5029 end # end sequence 5030 5031 set_failed_rule :_HtmlBlockOpenH5 unless _tmp 5032 return _tmp 5033 end 5034 5035 # HtmlBlockCloseH5 = "<" Spnl "/" ("h5" | "H5") Spnl ">" 5036 def _HtmlBlockCloseH5 5037 5038 _save = self.pos 5039 while true # sequence 5040 _tmp = match_string("<") 5041 unless _tmp 5042 self.pos = _save 5043 break 5044 end 5045 _tmp = apply(:_Spnl) 5046 unless _tmp 5047 self.pos = _save 5048 break 5049 end 5050 _tmp = match_string("/") 5051 unless _tmp 5052 self.pos = _save 5053 break 5054 end 5055 5056 _save1 = self.pos 5057 while true # choice 5058 _tmp = match_string("h5") 5059 break if _tmp 5060 self.pos = _save1 5061 _tmp = match_string("H5") 5062 break if _tmp 5063 self.pos = _save1 5064 break 5065 end # end choice 5066 5067 unless _tmp 5068 self.pos = _save 5069 break 5070 end 5071 _tmp = apply(:_Spnl) 5072 unless _tmp 5073 self.pos = _save 5074 break 5075 end 5076 _tmp = match_string(">") 5077 unless _tmp 5078 self.pos = _save 5079 end 5080 break 5081 end # end sequence 5082 5083 set_failed_rule :_HtmlBlockCloseH5 unless _tmp 5084 return _tmp 5085 end 5086 5087 # HtmlBlockH5 = HtmlBlockOpenH5 (HtmlBlockH5 | !HtmlBlockCloseH5 .)* HtmlBlockCloseH5 5088 def _HtmlBlockH5 5089 5090 _save = self.pos 5091 while true # sequence 5092 _tmp = apply(:_HtmlBlockOpenH5) 5093 unless _tmp 5094 self.pos = _save 5095 break 5096 end 5097 while true 5098 5099 _save2 = self.pos 5100 while true # choice 5101 _tmp = apply(:_HtmlBlockH5) 5102 break if _tmp 5103 self.pos = _save2 5104 5105 _save3 = self.pos 5106 while true # sequence 5107 _save4 = self.pos 5108 _tmp = apply(:_HtmlBlockCloseH5) 5109 _tmp = _tmp ? nil : true 5110 self.pos = _save4 5111 unless _tmp 5112 self.pos = _save3 5113 break 5114 end 5115 _tmp = get_byte 5116 unless _tmp 5117 self.pos = _save3 5118 end 5119 break 5120 end # end sequence 5121 5122 break if _tmp 5123 self.pos = _save2 5124 break 5125 end # end choice 5126 5127 break unless _tmp 5128 end 5129 _tmp = true 5130 unless _tmp 5131 self.pos = _save 5132 break 5133 end 5134 _tmp = apply(:_HtmlBlockCloseH5) 5135 unless _tmp 5136 self.pos = _save 5137 end 5138 break 5139 end # end sequence 5140 5141 set_failed_rule :_HtmlBlockH5 unless _tmp 5142 return _tmp 5143 end 5144 5145 # HtmlBlockOpenH6 = "<" Spnl ("h6" | "H6") Spnl HtmlAttribute* ">" 5146 def _HtmlBlockOpenH6 5147 5148 _save = self.pos 5149 while true # sequence 5150 _tmp = match_string("<") 5151 unless _tmp 5152 self.pos = _save 5153 break 5154 end 5155 _tmp = apply(:_Spnl) 5156 unless _tmp 5157 self.pos = _save 5158 break 5159 end 5160 5161 _save1 = self.pos 5162 while true # choice 5163 _tmp = match_string("h6") 5164 break if _tmp 5165 self.pos = _save1 5166 _tmp = match_string("H6") 5167 break if _tmp 5168 self.pos = _save1 5169 break 5170 end # end choice 5171 5172 unless _tmp 5173 self.pos = _save 5174 break 5175 end 5176 _tmp = apply(:_Spnl) 5177 unless _tmp 5178 self.pos = _save 5179 break 5180 end 5181 while true 5182 _tmp = apply(:_HtmlAttribute) 5183 break unless _tmp 5184 end 5185 _tmp = true 5186 unless _tmp 5187 self.pos = _save 5188 break 5189 end 5190 _tmp = match_string(">") 5191 unless _tmp 5192 self.pos = _save 5193 end 5194 break 5195 end # end sequence 5196 5197 set_failed_rule :_HtmlBlockOpenH6 unless _tmp 5198 return _tmp 5199 end 5200 5201 # HtmlBlockCloseH6 = "<" Spnl "/" ("h6" | "H6") Spnl ">" 5202 def _HtmlBlockCloseH6 5203 5204 _save = self.pos 5205 while true # sequence 5206 _tmp = match_string("<") 5207 unless _tmp 5208 self.pos = _save 5209 break 5210 end 5211 _tmp = apply(:_Spnl) 5212 unless _tmp 5213 self.pos = _save 5214 break 5215 end 5216 _tmp = match_string("/") 5217 unless _tmp 5218 self.pos = _save 5219 break 5220 end 5221 5222 _save1 = self.pos 5223 while true # choice 5224 _tmp = match_string("h6") 5225 break if _tmp 5226 self.pos = _save1 5227 _tmp = match_string("H6") 5228 break if _tmp 5229 self.pos = _save1 5230 break 5231 end # end choice 5232 5233 unless _tmp 5234 self.pos = _save 5235 break 5236 end 5237 _tmp = apply(:_Spnl) 5238 unless _tmp 5239 self.pos = _save 5240 break 5241 end 5242 _tmp = match_string(">") 5243 unless _tmp 5244 self.pos = _save 5245 end 5246 break 5247 end # end sequence 5248 5249 set_failed_rule :_HtmlBlockCloseH6 unless _tmp 5250 return _tmp 5251 end 5252 5253 # HtmlBlockH6 = HtmlBlockOpenH6 (HtmlBlockH6 | !HtmlBlockCloseH6 .)* HtmlBlockCloseH6 5254 def _HtmlBlockH6 5255 5256 _save = self.pos 5257 while true # sequence 5258 _tmp = apply(:_HtmlBlockOpenH6) 5259 unless _tmp 5260 self.pos = _save 5261 break 5262 end 5263 while true 5264 5265 _save2 = self.pos 5266 while true # choice 5267 _tmp = apply(:_HtmlBlockH6) 5268 break if _tmp 5269 self.pos = _save2 5270 5271 _save3 = self.pos 5272 while true # sequence 5273 _save4 = self.pos 5274 _tmp = apply(:_HtmlBlockCloseH6) 5275 _tmp = _tmp ? nil : true 5276 self.pos = _save4 5277 unless _tmp 5278 self.pos = _save3 5279 break 5280 end 5281 _tmp = get_byte 5282 unless _tmp 5283 self.pos = _save3 5284 end 5285 break 5286 end # end sequence 5287 5288 break if _tmp 5289 self.pos = _save2 5290 break 5291 end # end choice 5292 5293 break unless _tmp 5294 end 5295 _tmp = true 5296 unless _tmp 5297 self.pos = _save 5298 break 5299 end 5300 _tmp = apply(:_HtmlBlockCloseH6) 5301 unless _tmp 5302 self.pos = _save 5303 end 5304 break 5305 end # end sequence 5306 5307 set_failed_rule :_HtmlBlockH6 unless _tmp 5308 return _tmp 5309 end 5310 5311 # HtmlBlockOpenMenu = "<" Spnl ("menu" | "MENU") Spnl HtmlAttribute* ">" 5312 def _HtmlBlockOpenMenu 5313 5314 _save = self.pos 5315 while true # sequence 5316 _tmp = match_string("<") 5317 unless _tmp 5318 self.pos = _save 5319 break 5320 end 5321 _tmp = apply(:_Spnl) 5322 unless _tmp 5323 self.pos = _save 5324 break 5325 end 5326 5327 _save1 = self.pos 5328 while true # choice 5329 _tmp = match_string("menu") 5330 break if _tmp 5331 self.pos = _save1 5332 _tmp = match_string("MENU") 5333 break if _tmp 5334 self.pos = _save1 5335 break 5336 end # end choice 5337 5338 unless _tmp 5339 self.pos = _save 5340 break 5341 end 5342 _tmp = apply(:_Spnl) 5343 unless _tmp 5344 self.pos = _save 5345 break 5346 end 5347 while true 5348 _tmp = apply(:_HtmlAttribute) 5349 break unless _tmp 5350 end 5351 _tmp = true 5352 unless _tmp 5353 self.pos = _save 5354 break 5355 end 5356 _tmp = match_string(">") 5357 unless _tmp 5358 self.pos = _save 5359 end 5360 break 5361 end # end sequence 5362 5363 set_failed_rule :_HtmlBlockOpenMenu unless _tmp 5364 return _tmp 5365 end 5366 5367 # HtmlBlockCloseMenu = "<" Spnl "/" ("menu" | "MENU") Spnl ">" 5368 def _HtmlBlockCloseMenu 5369 5370 _save = self.pos 5371 while true # sequence 5372 _tmp = match_string("<") 5373 unless _tmp 5374 self.pos = _save 5375 break 5376 end 5377 _tmp = apply(:_Spnl) 5378 unless _tmp 5379 self.pos = _save 5380 break 5381 end 5382 _tmp = match_string("/") 5383 unless _tmp 5384 self.pos = _save 5385 break 5386 end 5387 5388 _save1 = self.pos 5389 while true # choice 5390 _tmp = match_string("menu") 5391 break if _tmp 5392 self.pos = _save1 5393 _tmp = match_string("MENU") 5394 break if _tmp 5395 self.pos = _save1 5396 break 5397 end # end choice 5398 5399 unless _tmp 5400 self.pos = _save 5401 break 5402 end 5403 _tmp = apply(:_Spnl) 5404 unless _tmp 5405 self.pos = _save 5406 break 5407 end 5408 _tmp = match_string(">") 5409 unless _tmp 5410 self.pos = _save 5411 end 5412 break 5413 end # end sequence 5414 5415 set_failed_rule :_HtmlBlockCloseMenu unless _tmp 5416 return _tmp 5417 end 5418 5419 # HtmlBlockMenu = HtmlBlockOpenMenu (HtmlBlockMenu | !HtmlBlockCloseMenu .)* HtmlBlockCloseMenu 5420 def _HtmlBlockMenu 5421 5422 _save = self.pos 5423 while true # sequence 5424 _tmp = apply(:_HtmlBlockOpenMenu) 5425 unless _tmp 5426 self.pos = _save 5427 break 5428 end 5429 while true 5430 5431 _save2 = self.pos 5432 while true # choice 5433 _tmp = apply(:_HtmlBlockMenu) 5434 break if _tmp 5435 self.pos = _save2 5436 5437 _save3 = self.pos 5438 while true # sequence 5439 _save4 = self.pos 5440 _tmp = apply(:_HtmlBlockCloseMenu) 5441 _tmp = _tmp ? nil : true 5442 self.pos = _save4 5443 unless _tmp 5444 self.pos = _save3 5445 break 5446 end 5447 _tmp = get_byte 5448 unless _tmp 5449 self.pos = _save3 5450 end 5451 break 5452 end # end sequence 5453 5454 break if _tmp 5455 self.pos = _save2 5456 break 5457 end # end choice 5458 5459 break unless _tmp 5460 end 5461 _tmp = true 5462 unless _tmp 5463 self.pos = _save 5464 break 5465 end 5466 _tmp = apply(:_HtmlBlockCloseMenu) 5467 unless _tmp 5468 self.pos = _save 5469 end 5470 break 5471 end # end sequence 5472 5473 set_failed_rule :_HtmlBlockMenu unless _tmp 5474 return _tmp 5475 end 5476 5477 # HtmlBlockOpenNoframes = "<" Spnl ("noframes" | "NOFRAMES") Spnl HtmlAttribute* ">" 5478 def _HtmlBlockOpenNoframes 5479 5480 _save = self.pos 5481 while true # sequence 5482 _tmp = match_string("<") 5483 unless _tmp 5484 self.pos = _save 5485 break 5486 end 5487 _tmp = apply(:_Spnl) 5488 unless _tmp 5489 self.pos = _save 5490 break 5491 end 5492 5493 _save1 = self.pos 5494 while true # choice 5495 _tmp = match_string("noframes") 5496 break if _tmp 5497 self.pos = _save1 5498 _tmp = match_string("NOFRAMES") 5499 break if _tmp 5500 self.pos = _save1 5501 break 5502 end # end choice 5503 5504 unless _tmp 5505 self.pos = _save 5506 break 5507 end 5508 _tmp = apply(:_Spnl) 5509 unless _tmp 5510 self.pos = _save 5511 break 5512 end 5513 while true 5514 _tmp = apply(:_HtmlAttribute) 5515 break unless _tmp 5516 end 5517 _tmp = true 5518 unless _tmp 5519 self.pos = _save 5520 break 5521 end 5522 _tmp = match_string(">") 5523 unless _tmp 5524 self.pos = _save 5525 end 5526 break 5527 end # end sequence 5528 5529 set_failed_rule :_HtmlBlockOpenNoframes unless _tmp 5530 return _tmp 5531 end 5532 5533 # HtmlBlockCloseNoframes = "<" Spnl "/" ("noframes" | "NOFRAMES") Spnl ">" 5534 def _HtmlBlockCloseNoframes 5535 5536 _save = self.pos 5537 while true # sequence 5538 _tmp = match_string("<") 5539 unless _tmp 5540 self.pos = _save 5541 break 5542 end 5543 _tmp = apply(:_Spnl) 5544 unless _tmp 5545 self.pos = _save 5546 break 5547 end 5548 _tmp = match_string("/") 5549 unless _tmp 5550 self.pos = _save 5551 break 5552 end 5553 5554 _save1 = self.pos 5555 while true # choice 5556 _tmp = match_string("noframes") 5557 break if _tmp 5558 self.pos = _save1 5559 _tmp = match_string("NOFRAMES") 5560 break if _tmp 5561 self.pos = _save1 5562 break 5563 end # end choice 5564 5565 unless _tmp 5566 self.pos = _save 5567 break 5568 end 5569 _tmp = apply(:_Spnl) 5570 unless _tmp 5571 self.pos = _save 5572 break 5573 end 5574 _tmp = match_string(">") 5575 unless _tmp 5576 self.pos = _save 5577 end 5578 break 5579 end # end sequence 5580 5581 set_failed_rule :_HtmlBlockCloseNoframes unless _tmp 5582 return _tmp 5583 end 5584 5585 # HtmlBlockNoframes = HtmlBlockOpenNoframes (HtmlBlockNoframes | !HtmlBlockCloseNoframes .)* HtmlBlockCloseNoframes 5586 def _HtmlBlockNoframes 5587 5588 _save = self.pos 5589 while true # sequence 5590 _tmp = apply(:_HtmlBlockOpenNoframes) 5591 unless _tmp 5592 self.pos = _save 5593 break 5594 end 5595 while true 5596 5597 _save2 = self.pos 5598 while true # choice 5599 _tmp = apply(:_HtmlBlockNoframes) 5600 break if _tmp 5601 self.pos = _save2 5602 5603 _save3 = self.pos 5604 while true # sequence 5605 _save4 = self.pos 5606 _tmp = apply(:_HtmlBlockCloseNoframes) 5607 _tmp = _tmp ? nil : true 5608 self.pos = _save4 5609 unless _tmp 5610 self.pos = _save3 5611 break 5612 end 5613 _tmp = get_byte 5614 unless _tmp 5615 self.pos = _save3 5616 end 5617 break 5618 end # end sequence 5619 5620 break if _tmp 5621 self.pos = _save2 5622 break 5623 end # end choice 5624 5625 break unless _tmp 5626 end 5627 _tmp = true 5628 unless _tmp 5629 self.pos = _save 5630 break 5631 end 5632 _tmp = apply(:_HtmlBlockCloseNoframes) 5633 unless _tmp 5634 self.pos = _save 5635 end 5636 break 5637 end # end sequence 5638 5639 set_failed_rule :_HtmlBlockNoframes unless _tmp 5640 return _tmp 5641 end 5642 5643 # HtmlBlockOpenNoscript = "<" Spnl ("noscript" | "NOSCRIPT") Spnl HtmlAttribute* ">" 5644 def _HtmlBlockOpenNoscript 5645 5646 _save = self.pos 5647 while true # sequence 5648 _tmp = match_string("<") 5649 unless _tmp 5650 self.pos = _save 5651 break 5652 end 5653 _tmp = apply(:_Spnl) 5654 unless _tmp 5655 self.pos = _save 5656 break 5657 end 5658 5659 _save1 = self.pos 5660 while true # choice 5661 _tmp = match_string("noscript") 5662 break if _tmp 5663 self.pos = _save1 5664 _tmp = match_string("NOSCRIPT") 5665 break if _tmp 5666 self.pos = _save1 5667 break 5668 end # end choice 5669 5670 unless _tmp 5671 self.pos = _save 5672 break 5673 end 5674 _tmp = apply(:_Spnl) 5675 unless _tmp 5676 self.pos = _save 5677 break 5678 end 5679 while true 5680 _tmp = apply(:_HtmlAttribute) 5681 break unless _tmp 5682 end 5683 _tmp = true 5684 unless _tmp 5685 self.pos = _save 5686 break 5687 end 5688 _tmp = match_string(">") 5689 unless _tmp 5690 self.pos = _save 5691 end 5692 break 5693 end # end sequence 5694 5695 set_failed_rule :_HtmlBlockOpenNoscript unless _tmp 5696 return _tmp 5697 end 5698 5699 # HtmlBlockCloseNoscript = "<" Spnl "/" ("noscript" | "NOSCRIPT") Spnl ">" 5700 def _HtmlBlockCloseNoscript 5701 5702 _save = self.pos 5703 while true # sequence 5704 _tmp = match_string("<") 5705 unless _tmp 5706 self.pos = _save 5707 break 5708 end 5709 _tmp = apply(:_Spnl) 5710 unless _tmp 5711 self.pos = _save 5712 break 5713 end 5714 _tmp = match_string("/") 5715 unless _tmp 5716 self.pos = _save 5717 break 5718 end 5719 5720 _save1 = self.pos 5721 while true # choice 5722 _tmp = match_string("noscript") 5723 break if _tmp 5724 self.pos = _save1 5725 _tmp = match_string("NOSCRIPT") 5726 break if _tmp 5727 self.pos = _save1 5728 break 5729 end # end choice 5730 5731 unless _tmp 5732 self.pos = _save 5733 break 5734 end 5735 _tmp = apply(:_Spnl) 5736 unless _tmp 5737 self.pos = _save 5738 break 5739 end 5740 _tmp = match_string(">") 5741 unless _tmp 5742 self.pos = _save 5743 end 5744 break 5745 end # end sequence 5746 5747 set_failed_rule :_HtmlBlockCloseNoscript unless _tmp 5748 return _tmp 5749 end 5750 5751 # HtmlBlockNoscript = HtmlBlockOpenNoscript (HtmlBlockNoscript | !HtmlBlockCloseNoscript .)* HtmlBlockCloseNoscript 5752 def _HtmlBlockNoscript 5753 5754 _save = self.pos 5755 while true # sequence 5756 _tmp = apply(:_HtmlBlockOpenNoscript) 5757 unless _tmp 5758 self.pos = _save 5759 break 5760 end 5761 while true 5762 5763 _save2 = self.pos 5764 while true # choice 5765 _tmp = apply(:_HtmlBlockNoscript) 5766 break if _tmp 5767 self.pos = _save2 5768 5769 _save3 = self.pos 5770 while true # sequence 5771 _save4 = self.pos 5772 _tmp = apply(:_HtmlBlockCloseNoscript) 5773 _tmp = _tmp ? nil : true 5774 self.pos = _save4 5775 unless _tmp 5776 self.pos = _save3 5777 break 5778 end 5779 _tmp = get_byte 5780 unless _tmp 5781 self.pos = _save3 5782 end 5783 break 5784 end # end sequence 5785 5786 break if _tmp 5787 self.pos = _save2 5788 break 5789 end # end choice 5790 5791 break unless _tmp 5792 end 5793 _tmp = true 5794 unless _tmp 5795 self.pos = _save 5796 break 5797 end 5798 _tmp = apply(:_HtmlBlockCloseNoscript) 5799 unless _tmp 5800 self.pos = _save 5801 end 5802 break 5803 end # end sequence 5804 5805 set_failed_rule :_HtmlBlockNoscript unless _tmp 5806 return _tmp 5807 end 5808 5809 # HtmlBlockOpenOl = "<" Spnl ("ol" | "OL") Spnl HtmlAttribute* ">" 5810 def _HtmlBlockOpenOl 5811 5812 _save = self.pos 5813 while true # sequence 5814 _tmp = match_string("<") 5815 unless _tmp 5816 self.pos = _save 5817 break 5818 end 5819 _tmp = apply(:_Spnl) 5820 unless _tmp 5821 self.pos = _save 5822 break 5823 end 5824 5825 _save1 = self.pos 5826 while true # choice 5827 _tmp = match_string("ol") 5828 break if _tmp 5829 self.pos = _save1 5830 _tmp = match_string("OL") 5831 break if _tmp 5832 self.pos = _save1 5833 break 5834 end # end choice 5835 5836 unless _tmp 5837 self.pos = _save 5838 break 5839 end 5840 _tmp = apply(:_Spnl) 5841 unless _tmp 5842 self.pos = _save 5843 break 5844 end 5845 while true 5846 _tmp = apply(:_HtmlAttribute) 5847 break unless _tmp 5848 end 5849 _tmp = true 5850 unless _tmp 5851 self.pos = _save 5852 break 5853 end 5854 _tmp = match_string(">") 5855 unless _tmp 5856 self.pos = _save 5857 end 5858 break 5859 end # end sequence 5860 5861 set_failed_rule :_HtmlBlockOpenOl unless _tmp 5862 return _tmp 5863 end 5864 5865 # HtmlBlockCloseOl = "<" Spnl "/" ("ol" | "OL") Spnl ">" 5866 def _HtmlBlockCloseOl 5867 5868 _save = self.pos 5869 while true # sequence 5870 _tmp = match_string("<") 5871 unless _tmp 5872 self.pos = _save 5873 break 5874 end 5875 _tmp = apply(:_Spnl) 5876 unless _tmp 5877 self.pos = _save 5878 break 5879 end 5880 _tmp = match_string("/") 5881 unless _tmp 5882 self.pos = _save 5883 break 5884 end 5885 5886 _save1 = self.pos 5887 while true # choice 5888 _tmp = match_string("ol") 5889 break if _tmp 5890 self.pos = _save1 5891 _tmp = match_string("OL") 5892 break if _tmp 5893 self.pos = _save1 5894 break 5895 end # end choice 5896 5897 unless _tmp 5898 self.pos = _save 5899 break 5900 end 5901 _tmp = apply(:_Spnl) 5902 unless _tmp 5903 self.pos = _save 5904 break 5905 end 5906 _tmp = match_string(">") 5907 unless _tmp 5908 self.pos = _save 5909 end 5910 break 5911 end # end sequence 5912 5913 set_failed_rule :_HtmlBlockCloseOl unless _tmp 5914 return _tmp 5915 end 5916 5917 # HtmlBlockOl = HtmlBlockOpenOl (HtmlBlockOl | !HtmlBlockCloseOl .)* HtmlBlockCloseOl 5918 def _HtmlBlockOl 5919 5920 _save = self.pos 5921 while true # sequence 5922 _tmp = apply(:_HtmlBlockOpenOl) 5923 unless _tmp 5924 self.pos = _save 5925 break 5926 end 5927 while true 5928 5929 _save2 = self.pos 5930 while true # choice 5931 _tmp = apply(:_HtmlBlockOl) 5932 break if _tmp 5933 self.pos = _save2 5934 5935 _save3 = self.pos 5936 while true # sequence 5937 _save4 = self.pos 5938 _tmp = apply(:_HtmlBlockCloseOl) 5939 _tmp = _tmp ? nil : true 5940 self.pos = _save4 5941 unless _tmp 5942 self.pos = _save3 5943 break 5944 end 5945 _tmp = get_byte 5946 unless _tmp 5947 self.pos = _save3 5948 end 5949 break 5950 end # end sequence 5951 5952 break if _tmp 5953 self.pos = _save2 5954 break 5955 end # end choice 5956 5957 break unless _tmp 5958 end 5959 _tmp = true 5960 unless _tmp 5961 self.pos = _save 5962 break 5963 end 5964 _tmp = apply(:_HtmlBlockCloseOl) 5965 unless _tmp 5966 self.pos = _save 5967 end 5968 break 5969 end # end sequence 5970 5971 set_failed_rule :_HtmlBlockOl unless _tmp 5972 return _tmp 5973 end 5974 5975 # HtmlBlockOpenP = "<" Spnl ("p" | "P") Spnl HtmlAttribute* ">" 5976 def _HtmlBlockOpenP 5977 5978 _save = self.pos 5979 while true # sequence 5980 _tmp = match_string("<") 5981 unless _tmp 5982 self.pos = _save 5983 break 5984 end 5985 _tmp = apply(:_Spnl) 5986 unless _tmp 5987 self.pos = _save 5988 break 5989 end 5990 5991 _save1 = self.pos 5992 while true # choice 5993 _tmp = match_string("p") 5994 break if _tmp 5995 self.pos = _save1 5996 _tmp = match_string("P") 5997 break if _tmp 5998 self.pos = _save1 5999 break 6000 end # end choice 6001 6002 unless _tmp 6003 self.pos = _save 6004 break 6005 end 6006 _tmp = apply(:_Spnl) 6007 unless _tmp 6008 self.pos = _save 6009 break 6010 end 6011 while true 6012 _tmp = apply(:_HtmlAttribute) 6013 break unless _tmp 6014 end 6015 _tmp = true 6016 unless _tmp 6017 self.pos = _save 6018 break 6019 end 6020 _tmp = match_string(">") 6021 unless _tmp 6022 self.pos = _save 6023 end 6024 break 6025 end # end sequence 6026 6027 set_failed_rule :_HtmlBlockOpenP unless _tmp 6028 return _tmp 6029 end 6030 6031 # HtmlBlockCloseP = "<" Spnl "/" ("p" | "P") Spnl ">" 6032 def _HtmlBlockCloseP 6033 6034 _save = self.pos 6035 while true # sequence 6036 _tmp = match_string("<") 6037 unless _tmp 6038 self.pos = _save 6039 break 6040 end 6041 _tmp = apply(:_Spnl) 6042 unless _tmp 6043 self.pos = _save 6044 break 6045 end 6046 _tmp = match_string("/") 6047 unless _tmp 6048 self.pos = _save 6049 break 6050 end 6051 6052 _save1 = self.pos 6053 while true # choice 6054 _tmp = match_string("p") 6055 break if _tmp 6056 self.pos = _save1 6057 _tmp = match_string("P") 6058 break if _tmp 6059 self.pos = _save1 6060 break 6061 end # end choice 6062 6063 unless _tmp 6064 self.pos = _save 6065 break 6066 end 6067 _tmp = apply(:_Spnl) 6068 unless _tmp 6069 self.pos = _save 6070 break 6071 end 6072 _tmp = match_string(">") 6073 unless _tmp 6074 self.pos = _save 6075 end 6076 break 6077 end # end sequence 6078 6079 set_failed_rule :_HtmlBlockCloseP unless _tmp 6080 return _tmp 6081 end 6082 6083 # HtmlBlockP = HtmlBlockOpenP (HtmlBlockP | !HtmlBlockCloseP .)* HtmlBlockCloseP 6084 def _HtmlBlockP 6085 6086 _save = self.pos 6087 while true # sequence 6088 _tmp = apply(:_HtmlBlockOpenP) 6089 unless _tmp 6090 self.pos = _save 6091 break 6092 end 6093 while true 6094 6095 _save2 = self.pos 6096 while true # choice 6097 _tmp = apply(:_HtmlBlockP) 6098 break if _tmp 6099 self.pos = _save2 6100 6101 _save3 = self.pos 6102 while true # sequence 6103 _save4 = self.pos 6104 _tmp = apply(:_HtmlBlockCloseP) 6105 _tmp = _tmp ? nil : true 6106 self.pos = _save4 6107 unless _tmp 6108 self.pos = _save3 6109 break 6110 end 6111 _tmp = get_byte 6112 unless _tmp 6113 self.pos = _save3 6114 end 6115 break 6116 end # end sequence 6117 6118 break if _tmp 6119 self.pos = _save2 6120 break 6121 end # end choice 6122 6123 break unless _tmp 6124 end 6125 _tmp = true 6126 unless _tmp 6127 self.pos = _save 6128 break 6129 end 6130 _tmp = apply(:_HtmlBlockCloseP) 6131 unless _tmp 6132 self.pos = _save 6133 end 6134 break 6135 end # end sequence 6136 6137 set_failed_rule :_HtmlBlockP unless _tmp 6138 return _tmp 6139 end 6140 6141 # HtmlBlockOpenPre = "<" Spnl ("pre" | "PRE") Spnl HtmlAttribute* ">" 6142 def _HtmlBlockOpenPre 6143 6144 _save = self.pos 6145 while true # sequence 6146 _tmp = match_string("<") 6147 unless _tmp 6148 self.pos = _save 6149 break 6150 end 6151 _tmp = apply(:_Spnl) 6152 unless _tmp 6153 self.pos = _save 6154 break 6155 end 6156 6157 _save1 = self.pos 6158 while true # choice 6159 _tmp = match_string("pre") 6160 break if _tmp 6161 self.pos = _save1 6162 _tmp = match_string("PRE") 6163 break if _tmp 6164 self.pos = _save1 6165 break 6166 end # end choice 6167 6168 unless _tmp 6169 self.pos = _save 6170 break 6171 end 6172 _tmp = apply(:_Spnl) 6173 unless _tmp 6174 self.pos = _save 6175 break 6176 end 6177 while true 6178 _tmp = apply(:_HtmlAttribute) 6179 break unless _tmp 6180 end 6181 _tmp = true 6182 unless _tmp 6183 self.pos = _save 6184 break 6185 end 6186 _tmp = match_string(">") 6187 unless _tmp 6188 self.pos = _save 6189 end 6190 break 6191 end # end sequence 6192 6193 set_failed_rule :_HtmlBlockOpenPre unless _tmp 6194 return _tmp 6195 end 6196 6197 # HtmlBlockClosePre = "<" Spnl "/" ("pre" | "PRE") Spnl ">" 6198 def _HtmlBlockClosePre 6199 6200 _save = self.pos 6201 while true # sequence 6202 _tmp = match_string("<") 6203 unless _tmp 6204 self.pos = _save 6205 break 6206 end 6207 _tmp = apply(:_Spnl) 6208 unless _tmp 6209 self.pos = _save 6210 break 6211 end 6212 _tmp = match_string("/") 6213 unless _tmp 6214 self.pos = _save 6215 break 6216 end 6217 6218 _save1 = self.pos 6219 while true # choice 6220 _tmp = match_string("pre") 6221 break if _tmp 6222 self.pos = _save1 6223 _tmp = match_string("PRE") 6224 break if _tmp 6225 self.pos = _save1 6226 break 6227 end # end choice 6228 6229 unless _tmp 6230 self.pos = _save 6231 break 6232 end 6233 _tmp = apply(:_Spnl) 6234 unless _tmp 6235 self.pos = _save 6236 break 6237 end 6238 _tmp = match_string(">") 6239 unless _tmp 6240 self.pos = _save 6241 end 6242 break 6243 end # end sequence 6244 6245 set_failed_rule :_HtmlBlockClosePre unless _tmp 6246 return _tmp 6247 end 6248 6249 # HtmlBlockPre = HtmlBlockOpenPre (HtmlBlockPre | !HtmlBlockClosePre .)* HtmlBlockClosePre 6250 def _HtmlBlockPre 6251 6252 _save = self.pos 6253 while true # sequence 6254 _tmp = apply(:_HtmlBlockOpenPre) 6255 unless _tmp 6256 self.pos = _save 6257 break 6258 end 6259 while true 6260 6261 _save2 = self.pos 6262 while true # choice 6263 _tmp = apply(:_HtmlBlockPre) 6264 break if _tmp 6265 self.pos = _save2 6266 6267 _save3 = self.pos 6268 while true # sequence 6269 _save4 = self.pos 6270 _tmp = apply(:_HtmlBlockClosePre) 6271 _tmp = _tmp ? nil : true 6272 self.pos = _save4 6273 unless _tmp 6274 self.pos = _save3 6275 break 6276 end 6277 _tmp = get_byte 6278 unless _tmp 6279 self.pos = _save3 6280 end 6281 break 6282 end # end sequence 6283 6284 break if _tmp 6285 self.pos = _save2 6286 break 6287 end # end choice 6288 6289 break unless _tmp 6290 end 6291 _tmp = true 6292 unless _tmp 6293 self.pos = _save 6294 break 6295 end 6296 _tmp = apply(:_HtmlBlockClosePre) 6297 unless _tmp 6298 self.pos = _save 6299 end 6300 break 6301 end # end sequence 6302 6303 set_failed_rule :_HtmlBlockPre unless _tmp 6304 return _tmp 6305 end 6306 6307 # HtmlBlockOpenTable = "<" Spnl ("table" | "TABLE") Spnl HtmlAttribute* ">" 6308 def _HtmlBlockOpenTable 6309 6310 _save = self.pos 6311 while true # sequence 6312 _tmp = match_string("<") 6313 unless _tmp 6314 self.pos = _save 6315 break 6316 end 6317 _tmp = apply(:_Spnl) 6318 unless _tmp 6319 self.pos = _save 6320 break 6321 end 6322 6323 _save1 = self.pos 6324 while true # choice 6325 _tmp = match_string("table") 6326 break if _tmp 6327 self.pos = _save1 6328 _tmp = match_string("TABLE") 6329 break if _tmp 6330 self.pos = _save1 6331 break 6332 end # end choice 6333 6334 unless _tmp 6335 self.pos = _save 6336 break 6337 end 6338 _tmp = apply(:_Spnl) 6339 unless _tmp 6340 self.pos = _save 6341 break 6342 end 6343 while true 6344 _tmp = apply(:_HtmlAttribute) 6345 break unless _tmp 6346 end 6347 _tmp = true 6348 unless _tmp 6349 self.pos = _save 6350 break 6351 end 6352 _tmp = match_string(">") 6353 unless _tmp 6354 self.pos = _save 6355 end 6356 break 6357 end # end sequence 6358 6359 set_failed_rule :_HtmlBlockOpenTable unless _tmp 6360 return _tmp 6361 end 6362 6363 # HtmlBlockCloseTable = "<" Spnl "/" ("table" | "TABLE") Spnl ">" 6364 def _HtmlBlockCloseTable 6365 6366 _save = self.pos 6367 while true # sequence 6368 _tmp = match_string("<") 6369 unless _tmp 6370 self.pos = _save 6371 break 6372 end 6373 _tmp = apply(:_Spnl) 6374 unless _tmp 6375 self.pos = _save 6376 break 6377 end 6378 _tmp = match_string("/") 6379 unless _tmp 6380 self.pos = _save 6381 break 6382 end 6383 6384 _save1 = self.pos 6385 while true # choice 6386 _tmp = match_string("table") 6387 break if _tmp 6388 self.pos = _save1 6389 _tmp = match_string("TABLE") 6390 break if _tmp 6391 self.pos = _save1 6392 break 6393 end # end choice 6394 6395 unless _tmp 6396 self.pos = _save 6397 break 6398 end 6399 _tmp = apply(:_Spnl) 6400 unless _tmp 6401 self.pos = _save 6402 break 6403 end 6404 _tmp = match_string(">") 6405 unless _tmp 6406 self.pos = _save 6407 end 6408 break 6409 end # end sequence 6410 6411 set_failed_rule :_HtmlBlockCloseTable unless _tmp 6412 return _tmp 6413 end 6414 6415 # HtmlBlockTable = HtmlBlockOpenTable (HtmlBlockTable | !HtmlBlockCloseTable .)* HtmlBlockCloseTable 6416 def _HtmlBlockTable 6417 6418 _save = self.pos 6419 while true # sequence 6420 _tmp = apply(:_HtmlBlockOpenTable) 6421 unless _tmp 6422 self.pos = _save 6423 break 6424 end 6425 while true 6426 6427 _save2 = self.pos 6428 while true # choice 6429 _tmp = apply(:_HtmlBlockTable) 6430 break if _tmp 6431 self.pos = _save2 6432 6433 _save3 = self.pos 6434 while true # sequence 6435 _save4 = self.pos 6436 _tmp = apply(:_HtmlBlockCloseTable) 6437 _tmp = _tmp ? nil : true 6438 self.pos = _save4 6439 unless _tmp 6440 self.pos = _save3 6441 break 6442 end 6443 _tmp = get_byte 6444 unless _tmp 6445 self.pos = _save3 6446 end 6447 break 6448 end # end sequence 6449 6450 break if _tmp 6451 self.pos = _save2 6452 break 6453 end # end choice 6454 6455 break unless _tmp 6456 end 6457 _tmp = true 6458 unless _tmp 6459 self.pos = _save 6460 break 6461 end 6462 _tmp = apply(:_HtmlBlockCloseTable) 6463 unless _tmp 6464 self.pos = _save 6465 end 6466 break 6467 end # end sequence 6468 6469 set_failed_rule :_HtmlBlockTable unless _tmp 6470 return _tmp 6471 end 6472 6473 # HtmlBlockOpenUl = "<" Spnl ("ul" | "UL") Spnl HtmlAttribute* ">" 6474 def _HtmlBlockOpenUl 6475 6476 _save = self.pos 6477 while true # sequence 6478 _tmp = match_string("<") 6479 unless _tmp 6480 self.pos = _save 6481 break 6482 end 6483 _tmp = apply(:_Spnl) 6484 unless _tmp 6485 self.pos = _save 6486 break 6487 end 6488 6489 _save1 = self.pos 6490 while true # choice 6491 _tmp = match_string("ul") 6492 break if _tmp 6493 self.pos = _save1 6494 _tmp = match_string("UL") 6495 break if _tmp 6496 self.pos = _save1 6497 break 6498 end # end choice 6499 6500 unless _tmp 6501 self.pos = _save 6502 break 6503 end 6504 _tmp = apply(:_Spnl) 6505 unless _tmp 6506 self.pos = _save 6507 break 6508 end 6509 while true 6510 _tmp = apply(:_HtmlAttribute) 6511 break unless _tmp 6512 end 6513 _tmp = true 6514 unless _tmp 6515 self.pos = _save 6516 break 6517 end 6518 _tmp = match_string(">") 6519 unless _tmp 6520 self.pos = _save 6521 end 6522 break 6523 end # end sequence 6524 6525 set_failed_rule :_HtmlBlockOpenUl unless _tmp 6526 return _tmp 6527 end 6528 6529 # HtmlBlockCloseUl = "<" Spnl "/" ("ul" | "UL") Spnl ">" 6530 def _HtmlBlockCloseUl 6531 6532 _save = self.pos 6533 while true # sequence 6534 _tmp = match_string("<") 6535 unless _tmp 6536 self.pos = _save 6537 break 6538 end 6539 _tmp = apply(:_Spnl) 6540 unless _tmp 6541 self.pos = _save 6542 break 6543 end 6544 _tmp = match_string("/") 6545 unless _tmp 6546 self.pos = _save 6547 break 6548 end 6549 6550 _save1 = self.pos 6551 while true # choice 6552 _tmp = match_string("ul") 6553 break if _tmp 6554 self.pos = _save1 6555 _tmp = match_string("UL") 6556 break if _tmp 6557 self.pos = _save1 6558 break 6559 end # end choice 6560 6561 unless _tmp 6562 self.pos = _save 6563 break 6564 end 6565 _tmp = apply(:_Spnl) 6566 unless _tmp 6567 self.pos = _save 6568 break 6569 end 6570 _tmp = match_string(">") 6571 unless _tmp 6572 self.pos = _save 6573 end 6574 break 6575 end # end sequence 6576 6577 set_failed_rule :_HtmlBlockCloseUl unless _tmp 6578 return _tmp 6579 end 6580 6581 # HtmlBlockUl = HtmlBlockOpenUl (HtmlBlockUl | !HtmlBlockCloseUl .)* HtmlBlockCloseUl 6582 def _HtmlBlockUl 6583 6584 _save = self.pos 6585 while true # sequence 6586 _tmp = apply(:_HtmlBlockOpenUl) 6587 unless _tmp 6588 self.pos = _save 6589 break 6590 end 6591 while true 6592 6593 _save2 = self.pos 6594 while true # choice 6595 _tmp = apply(:_HtmlBlockUl) 6596 break if _tmp 6597 self.pos = _save2 6598 6599 _save3 = self.pos 6600 while true # sequence 6601 _save4 = self.pos 6602 _tmp = apply(:_HtmlBlockCloseUl) 6603 _tmp = _tmp ? nil : true 6604 self.pos = _save4 6605 unless _tmp 6606 self.pos = _save3 6607 break 6608 end 6609 _tmp = get_byte 6610 unless _tmp 6611 self.pos = _save3 6612 end 6613 break 6614 end # end sequence 6615 6616 break if _tmp 6617 self.pos = _save2 6618 break 6619 end # end choice 6620 6621 break unless _tmp 6622 end 6623 _tmp = true 6624 unless _tmp 6625 self.pos = _save 6626 break 6627 end 6628 _tmp = apply(:_HtmlBlockCloseUl) 6629 unless _tmp 6630 self.pos = _save 6631 end 6632 break 6633 end # end sequence 6634 6635 set_failed_rule :_HtmlBlockUl unless _tmp 6636 return _tmp 6637 end 6638 6639 # HtmlBlockOpenDd = "<" Spnl ("dd" | "DD") Spnl HtmlAttribute* ">" 6640 def _HtmlBlockOpenDd 6641 6642 _save = self.pos 6643 while true # sequence 6644 _tmp = match_string("<") 6645 unless _tmp 6646 self.pos = _save 6647 break 6648 end 6649 _tmp = apply(:_Spnl) 6650 unless _tmp 6651 self.pos = _save 6652 break 6653 end 6654 6655 _save1 = self.pos 6656 while true # choice 6657 _tmp = match_string("dd") 6658 break if _tmp 6659 self.pos = _save1 6660 _tmp = match_string("DD") 6661 break if _tmp 6662 self.pos = _save1 6663 break 6664 end # end choice 6665 6666 unless _tmp 6667 self.pos = _save 6668 break 6669 end 6670 _tmp = apply(:_Spnl) 6671 unless _tmp 6672 self.pos = _save 6673 break 6674 end 6675 while true 6676 _tmp = apply(:_HtmlAttribute) 6677 break unless _tmp 6678 end 6679 _tmp = true 6680 unless _tmp 6681 self.pos = _save 6682 break 6683 end 6684 _tmp = match_string(">") 6685 unless _tmp 6686 self.pos = _save 6687 end 6688 break 6689 end # end sequence 6690 6691 set_failed_rule :_HtmlBlockOpenDd unless _tmp 6692 return _tmp 6693 end 6694 6695 # HtmlBlockCloseDd = "<" Spnl "/" ("dd" | "DD") Spnl ">" 6696 def _HtmlBlockCloseDd 6697 6698 _save = self.pos 6699 while true # sequence 6700 _tmp = match_string("<") 6701 unless _tmp 6702 self.pos = _save 6703 break 6704 end 6705 _tmp = apply(:_Spnl) 6706 unless _tmp 6707 self.pos = _save 6708 break 6709 end 6710 _tmp = match_string("/") 6711 unless _tmp 6712 self.pos = _save 6713 break 6714 end 6715 6716 _save1 = self.pos 6717 while true # choice 6718 _tmp = match_string("dd") 6719 break if _tmp 6720 self.pos = _save1 6721 _tmp = match_string("DD") 6722 break if _tmp 6723 self.pos = _save1 6724 break 6725 end # end choice 6726 6727 unless _tmp 6728 self.pos = _save 6729 break 6730 end 6731 _tmp = apply(:_Spnl) 6732 unless _tmp 6733 self.pos = _save 6734 break 6735 end 6736 _tmp = match_string(">") 6737 unless _tmp 6738 self.pos = _save 6739 end 6740 break 6741 end # end sequence 6742 6743 set_failed_rule :_HtmlBlockCloseDd unless _tmp 6744 return _tmp 6745 end 6746 6747 # HtmlBlockDd = HtmlBlockOpenDd (HtmlBlockDd | !HtmlBlockCloseDd .)* HtmlBlockCloseDd 6748 def _HtmlBlockDd 6749 6750 _save = self.pos 6751 while true # sequence 6752 _tmp = apply(:_HtmlBlockOpenDd) 6753 unless _tmp 6754 self.pos = _save 6755 break 6756 end 6757 while true 6758 6759 _save2 = self.pos 6760 while true # choice 6761 _tmp = apply(:_HtmlBlockDd) 6762 break if _tmp 6763 self.pos = _save2 6764 6765 _save3 = self.pos 6766 while true # sequence 6767 _save4 = self.pos 6768 _tmp = apply(:_HtmlBlockCloseDd) 6769 _tmp = _tmp ? nil : true 6770 self.pos = _save4 6771 unless _tmp 6772 self.pos = _save3 6773 break 6774 end 6775 _tmp = get_byte 6776 unless _tmp 6777 self.pos = _save3 6778 end 6779 break 6780 end # end sequence 6781 6782 break if _tmp 6783 self.pos = _save2 6784 break 6785 end # end choice 6786 6787 break unless _tmp 6788 end 6789 _tmp = true 6790 unless _tmp 6791 self.pos = _save 6792 break 6793 end 6794 _tmp = apply(:_HtmlBlockCloseDd) 6795 unless _tmp 6796 self.pos = _save 6797 end 6798 break 6799 end # end sequence 6800 6801 set_failed_rule :_HtmlBlockDd unless _tmp 6802 return _tmp 6803 end 6804 6805 # HtmlBlockOpenDt = "<" Spnl ("dt" | "DT") Spnl HtmlAttribute* ">" 6806 def _HtmlBlockOpenDt 6807 6808 _save = self.pos 6809 while true # sequence 6810 _tmp = match_string("<") 6811 unless _tmp 6812 self.pos = _save 6813 break 6814 end 6815 _tmp = apply(:_Spnl) 6816 unless _tmp 6817 self.pos = _save 6818 break 6819 end 6820 6821 _save1 = self.pos 6822 while true # choice 6823 _tmp = match_string("dt") 6824 break if _tmp 6825 self.pos = _save1 6826 _tmp = match_string("DT") 6827 break if _tmp 6828 self.pos = _save1 6829 break 6830 end # end choice 6831 6832 unless _tmp 6833 self.pos = _save 6834 break 6835 end 6836 _tmp = apply(:_Spnl) 6837 unless _tmp 6838 self.pos = _save 6839 break 6840 end 6841 while true 6842 _tmp = apply(:_HtmlAttribute) 6843 break unless _tmp 6844 end 6845 _tmp = true 6846 unless _tmp 6847 self.pos = _save 6848 break 6849 end 6850 _tmp = match_string(">") 6851 unless _tmp 6852 self.pos = _save 6853 end 6854 break 6855 end # end sequence 6856 6857 set_failed_rule :_HtmlBlockOpenDt unless _tmp 6858 return _tmp 6859 end 6860 6861 # HtmlBlockCloseDt = "<" Spnl "/" ("dt" | "DT") Spnl ">" 6862 def _HtmlBlockCloseDt 6863 6864 _save = self.pos 6865 while true # sequence 6866 _tmp = match_string("<") 6867 unless _tmp 6868 self.pos = _save 6869 break 6870 end 6871 _tmp = apply(:_Spnl) 6872 unless _tmp 6873 self.pos = _save 6874 break 6875 end 6876 _tmp = match_string("/") 6877 unless _tmp 6878 self.pos = _save 6879 break 6880 end 6881 6882 _save1 = self.pos 6883 while true # choice 6884 _tmp = match_string("dt") 6885 break if _tmp 6886 self.pos = _save1 6887 _tmp = match_string("DT") 6888 break if _tmp 6889 self.pos = _save1 6890 break 6891 end # end choice 6892 6893 unless _tmp 6894 self.pos = _save 6895 break 6896 end 6897 _tmp = apply(:_Spnl) 6898 unless _tmp 6899 self.pos = _save 6900 break 6901 end 6902 _tmp = match_string(">") 6903 unless _tmp 6904 self.pos = _save 6905 end 6906 break 6907 end # end sequence 6908 6909 set_failed_rule :_HtmlBlockCloseDt unless _tmp 6910 return _tmp 6911 end 6912 6913 # HtmlBlockDt = HtmlBlockOpenDt (HtmlBlockDt | !HtmlBlockCloseDt .)* HtmlBlockCloseDt 6914 def _HtmlBlockDt 6915 6916 _save = self.pos 6917 while true # sequence 6918 _tmp = apply(:_HtmlBlockOpenDt) 6919 unless _tmp 6920 self.pos = _save 6921 break 6922 end 6923 while true 6924 6925 _save2 = self.pos 6926 while true # choice 6927 _tmp = apply(:_HtmlBlockDt) 6928 break if _tmp 6929 self.pos = _save2 6930 6931 _save3 = self.pos 6932 while true # sequence 6933 _save4 = self.pos 6934 _tmp = apply(:_HtmlBlockCloseDt) 6935 _tmp = _tmp ? nil : true 6936 self.pos = _save4 6937 unless _tmp 6938 self.pos = _save3 6939 break 6940 end 6941 _tmp = get_byte 6942 unless _tmp 6943 self.pos = _save3 6944 end 6945 break 6946 end # end sequence 6947 6948 break if _tmp 6949 self.pos = _save2 6950 break 6951 end # end choice 6952 6953 break unless _tmp 6954 end 6955 _tmp = true 6956 unless _tmp 6957 self.pos = _save 6958 break 6959 end 6960 _tmp = apply(:_HtmlBlockCloseDt) 6961 unless _tmp 6962 self.pos = _save 6963 end 6964 break 6965 end # end sequence 6966 6967 set_failed_rule :_HtmlBlockDt unless _tmp 6968 return _tmp 6969 end 6970 6971 # HtmlBlockOpenFrameset = "<" Spnl ("frameset" | "FRAMESET") Spnl HtmlAttribute* ">" 6972 def _HtmlBlockOpenFrameset 6973 6974 _save = self.pos 6975 while true # sequence 6976 _tmp = match_string("<") 6977 unless _tmp 6978 self.pos = _save 6979 break 6980 end 6981 _tmp = apply(:_Spnl) 6982 unless _tmp 6983 self.pos = _save 6984 break 6985 end 6986 6987 _save1 = self.pos 6988 while true # choice 6989 _tmp = match_string("frameset") 6990 break if _tmp 6991 self.pos = _save1 6992 _tmp = match_string("FRAMESET") 6993 break if _tmp 6994 self.pos = _save1 6995 break 6996 end # end choice 6997 6998 unless _tmp 6999 self.pos = _save 7000 break 7001 end 7002 _tmp = apply(:_Spnl) 7003 unless _tmp 7004 self.pos = _save 7005 break 7006 end 7007 while true 7008 _tmp = apply(:_HtmlAttribute) 7009 break unless _tmp 7010 end 7011 _tmp = true 7012 unless _tmp 7013 self.pos = _save 7014 break 7015 end 7016 _tmp = match_string(">") 7017 unless _tmp 7018 self.pos = _save 7019 end 7020 break 7021 end # end sequence 7022 7023 set_failed_rule :_HtmlBlockOpenFrameset unless _tmp 7024 return _tmp 7025 end 7026 7027 # HtmlBlockCloseFrameset = "<" Spnl "/" ("frameset" | "FRAMESET") Spnl ">" 7028 def _HtmlBlockCloseFrameset 7029 7030 _save = self.pos 7031 while true # sequence 7032 _tmp = match_string("<") 7033 unless _tmp 7034 self.pos = _save 7035 break 7036 end 7037 _tmp = apply(:_Spnl) 7038 unless _tmp 7039 self.pos = _save 7040 break 7041 end 7042 _tmp = match_string("/") 7043 unless _tmp 7044 self.pos = _save 7045 break 7046 end 7047 7048 _save1 = self.pos 7049 while true # choice 7050 _tmp = match_string("frameset") 7051 break if _tmp 7052 self.pos = _save1 7053 _tmp = match_string("FRAMESET") 7054 break if _tmp 7055 self.pos = _save1 7056 break 7057 end # end choice 7058 7059 unless _tmp 7060 self.pos = _save 7061 break 7062 end 7063 _tmp = apply(:_Spnl) 7064 unless _tmp 7065 self.pos = _save 7066 break 7067 end 7068 _tmp = match_string(">") 7069 unless _tmp 7070 self.pos = _save 7071 end 7072 break 7073 end # end sequence 7074 7075 set_failed_rule :_HtmlBlockCloseFrameset unless _tmp 7076 return _tmp 7077 end 7078 7079 # HtmlBlockFrameset = HtmlBlockOpenFrameset (HtmlBlockFrameset | !HtmlBlockCloseFrameset .)* HtmlBlockCloseFrameset 7080 def _HtmlBlockFrameset 7081 7082 _save = self.pos 7083 while true # sequence 7084 _tmp = apply(:_HtmlBlockOpenFrameset) 7085 unless _tmp 7086 self.pos = _save 7087 break 7088 end 7089 while true 7090 7091 _save2 = self.pos 7092 while true # choice 7093 _tmp = apply(:_HtmlBlockFrameset) 7094 break if _tmp 7095 self.pos = _save2 7096 7097 _save3 = self.pos 7098 while true # sequence 7099 _save4 = self.pos 7100 _tmp = apply(:_HtmlBlockCloseFrameset) 7101 _tmp = _tmp ? nil : true 7102 self.pos = _save4 7103 unless _tmp 7104 self.pos = _save3 7105 break 7106 end 7107 _tmp = get_byte 7108 unless _tmp 7109 self.pos = _save3 7110 end 7111 break 7112 end # end sequence 7113 7114 break if _tmp 7115 self.pos = _save2 7116 break 7117 end # end choice 7118 7119 break unless _tmp 7120 end 7121 _tmp = true 7122 unless _tmp 7123 self.pos = _save 7124 break 7125 end 7126 _tmp = apply(:_HtmlBlockCloseFrameset) 7127 unless _tmp 7128 self.pos = _save 7129 end 7130 break 7131 end # end sequence 7132 7133 set_failed_rule :_HtmlBlockFrameset unless _tmp 7134 return _tmp 7135 end 7136 7137 # HtmlBlockOpenLi = "<" Spnl ("li" | "LI") Spnl HtmlAttribute* ">" 7138 def _HtmlBlockOpenLi 7139 7140 _save = self.pos 7141 while true # sequence 7142 _tmp = match_string("<") 7143 unless _tmp 7144 self.pos = _save 7145 break 7146 end 7147 _tmp = apply(:_Spnl) 7148 unless _tmp 7149 self.pos = _save 7150 break 7151 end 7152 7153 _save1 = self.pos 7154 while true # choice 7155 _tmp = match_string("li") 7156 break if _tmp 7157 self.pos = _save1 7158 _tmp = match_string("LI") 7159 break if _tmp 7160 self.pos = _save1 7161 break 7162 end # end choice 7163 7164 unless _tmp 7165 self.pos = _save 7166 break 7167 end 7168 _tmp = apply(:_Spnl) 7169 unless _tmp 7170 self.pos = _save 7171 break 7172 end 7173 while true 7174 _tmp = apply(:_HtmlAttribute) 7175 break unless _tmp 7176 end 7177 _tmp = true 7178 unless _tmp 7179 self.pos = _save 7180 break 7181 end 7182 _tmp = match_string(">") 7183 unless _tmp 7184 self.pos = _save 7185 end 7186 break 7187 end # end sequence 7188 7189 set_failed_rule :_HtmlBlockOpenLi unless _tmp 7190 return _tmp 7191 end 7192 7193 # HtmlBlockCloseLi = "<" Spnl "/" ("li" | "LI") Spnl ">" 7194 def _HtmlBlockCloseLi 7195 7196 _save = self.pos 7197 while true # sequence 7198 _tmp = match_string("<") 7199 unless _tmp 7200 self.pos = _save 7201 break 7202 end 7203 _tmp = apply(:_Spnl) 7204 unless _tmp 7205 self.pos = _save 7206 break 7207 end 7208 _tmp = match_string("/") 7209 unless _tmp 7210 self.pos = _save 7211 break 7212 end 7213 7214 _save1 = self.pos 7215 while true # choice 7216 _tmp = match_string("li") 7217 break if _tmp 7218 self.pos = _save1 7219 _tmp = match_string("LI") 7220 break if _tmp 7221 self.pos = _save1 7222 break 7223 end # end choice 7224 7225 unless _tmp 7226 self.pos = _save 7227 break 7228 end 7229 _tmp = apply(:_Spnl) 7230 unless _tmp 7231 self.pos = _save 7232 break 7233 end 7234 _tmp = match_string(">") 7235 unless _tmp 7236 self.pos = _save 7237 end 7238 break 7239 end # end sequence 7240 7241 set_failed_rule :_HtmlBlockCloseLi unless _tmp 7242 return _tmp 7243 end 7244 7245 # HtmlBlockLi = HtmlBlockOpenLi (HtmlBlockLi | !HtmlBlockCloseLi .)* HtmlBlockCloseLi 7246 def _HtmlBlockLi 7247 7248 _save = self.pos 7249 while true # sequence 7250 _tmp = apply(:_HtmlBlockOpenLi) 7251 unless _tmp 7252 self.pos = _save 7253 break 7254 end 7255 while true 7256 7257 _save2 = self.pos 7258 while true # choice 7259 _tmp = apply(:_HtmlBlockLi) 7260 break if _tmp 7261 self.pos = _save2 7262 7263 _save3 = self.pos 7264 while true # sequence 7265 _save4 = self.pos 7266 _tmp = apply(:_HtmlBlockCloseLi) 7267 _tmp = _tmp ? nil : true 7268 self.pos = _save4 7269 unless _tmp 7270 self.pos = _save3 7271 break 7272 end 7273 _tmp = get_byte 7274 unless _tmp 7275 self.pos = _save3 7276 end 7277 break 7278 end # end sequence 7279 7280 break if _tmp 7281 self.pos = _save2 7282 break 7283 end # end choice 7284 7285 break unless _tmp 7286 end 7287 _tmp = true 7288 unless _tmp 7289 self.pos = _save 7290 break 7291 end 7292 _tmp = apply(:_HtmlBlockCloseLi) 7293 unless _tmp 7294 self.pos = _save 7295 end 7296 break 7297 end # end sequence 7298 7299 set_failed_rule :_HtmlBlockLi unless _tmp 7300 return _tmp 7301 end 7302 7303 # HtmlBlockOpenTbody = "<" Spnl ("tbody" | "TBODY") Spnl HtmlAttribute* ">" 7304 def _HtmlBlockOpenTbody 7305 7306 _save = self.pos 7307 while true # sequence 7308 _tmp = match_string("<") 7309 unless _tmp 7310 self.pos = _save 7311 break 7312 end 7313 _tmp = apply(:_Spnl) 7314 unless _tmp 7315 self.pos = _save 7316 break 7317 end 7318 7319 _save1 = self.pos 7320 while true # choice 7321 _tmp = match_string("tbody") 7322 break if _tmp 7323 self.pos = _save1 7324 _tmp = match_string("TBODY") 7325 break if _tmp 7326 self.pos = _save1 7327 break 7328 end # end choice 7329 7330 unless _tmp 7331 self.pos = _save 7332 break 7333 end 7334 _tmp = apply(:_Spnl) 7335 unless _tmp 7336 self.pos = _save 7337 break 7338 end 7339 while true 7340 _tmp = apply(:_HtmlAttribute) 7341 break unless _tmp 7342 end 7343 _tmp = true 7344 unless _tmp 7345 self.pos = _save 7346 break 7347 end 7348 _tmp = match_string(">") 7349 unless _tmp 7350 self.pos = _save 7351 end 7352 break 7353 end # end sequence 7354 7355 set_failed_rule :_HtmlBlockOpenTbody unless _tmp 7356 return _tmp 7357 end 7358 7359 # HtmlBlockCloseTbody = "<" Spnl "/" ("tbody" | "TBODY") Spnl ">" 7360 def _HtmlBlockCloseTbody 7361 7362 _save = self.pos 7363 while true # sequence 7364 _tmp = match_string("<") 7365 unless _tmp 7366 self.pos = _save 7367 break 7368 end 7369 _tmp = apply(:_Spnl) 7370 unless _tmp 7371 self.pos = _save 7372 break 7373 end 7374 _tmp = match_string("/") 7375 unless _tmp 7376 self.pos = _save 7377 break 7378 end 7379 7380 _save1 = self.pos 7381 while true # choice 7382 _tmp = match_string("tbody") 7383 break if _tmp 7384 self.pos = _save1 7385 _tmp = match_string("TBODY") 7386 break if _tmp 7387 self.pos = _save1 7388 break 7389 end # end choice 7390 7391 unless _tmp 7392 self.pos = _save 7393 break 7394 end 7395 _tmp = apply(:_Spnl) 7396 unless _tmp 7397 self.pos = _save 7398 break 7399 end 7400 _tmp = match_string(">") 7401 unless _tmp 7402 self.pos = _save 7403 end 7404 break 7405 end # end sequence 7406 7407 set_failed_rule :_HtmlBlockCloseTbody unless _tmp 7408 return _tmp 7409 end 7410 7411 # HtmlBlockTbody = HtmlBlockOpenTbody (HtmlBlockTbody | !HtmlBlockCloseTbody .)* HtmlBlockCloseTbody 7412 def _HtmlBlockTbody 7413 7414 _save = self.pos 7415 while true # sequence 7416 _tmp = apply(:_HtmlBlockOpenTbody) 7417 unless _tmp 7418 self.pos = _save 7419 break 7420 end 7421 while true 7422 7423 _save2 = self.pos 7424 while true # choice 7425 _tmp = apply(:_HtmlBlockTbody) 7426 break if _tmp 7427 self.pos = _save2 7428 7429 _save3 = self.pos 7430 while true # sequence 7431 _save4 = self.pos 7432 _tmp = apply(:_HtmlBlockCloseTbody) 7433 _tmp = _tmp ? nil : true 7434 self.pos = _save4 7435 unless _tmp 7436 self.pos = _save3 7437 break 7438 end 7439 _tmp = get_byte 7440 unless _tmp 7441 self.pos = _save3 7442 end 7443 break 7444 end # end sequence 7445 7446 break if _tmp 7447 self.pos = _save2 7448 break 7449 end # end choice 7450 7451 break unless _tmp 7452 end 7453 _tmp = true 7454 unless _tmp 7455 self.pos = _save 7456 break 7457 end 7458 _tmp = apply(:_HtmlBlockCloseTbody) 7459 unless _tmp 7460 self.pos = _save 7461 end 7462 break 7463 end # end sequence 7464 7465 set_failed_rule :_HtmlBlockTbody unless _tmp 7466 return _tmp 7467 end 7468 7469 # HtmlBlockOpenTd = "<" Spnl ("td" | "TD") Spnl HtmlAttribute* ">" 7470 def _HtmlBlockOpenTd 7471 7472 _save = self.pos 7473 while true # sequence 7474 _tmp = match_string("<") 7475 unless _tmp 7476 self.pos = _save 7477 break 7478 end 7479 _tmp = apply(:_Spnl) 7480 unless _tmp 7481 self.pos = _save 7482 break 7483 end 7484 7485 _save1 = self.pos 7486 while true # choice 7487 _tmp = match_string("td") 7488 break if _tmp 7489 self.pos = _save1 7490 _tmp = match_string("TD") 7491 break if _tmp 7492 self.pos = _save1 7493 break 7494 end # end choice 7495 7496 unless _tmp 7497 self.pos = _save 7498 break 7499 end 7500 _tmp = apply(:_Spnl) 7501 unless _tmp 7502 self.pos = _save 7503 break 7504 end 7505 while true 7506 _tmp = apply(:_HtmlAttribute) 7507 break unless _tmp 7508 end 7509 _tmp = true 7510 unless _tmp 7511 self.pos = _save 7512 break 7513 end 7514 _tmp = match_string(">") 7515 unless _tmp 7516 self.pos = _save 7517 end 7518 break 7519 end # end sequence 7520 7521 set_failed_rule :_HtmlBlockOpenTd unless _tmp 7522 return _tmp 7523 end 7524 7525 # HtmlBlockCloseTd = "<" Spnl "/" ("td" | "TD") Spnl ">" 7526 def _HtmlBlockCloseTd 7527 7528 _save = self.pos 7529 while true # sequence 7530 _tmp = match_string("<") 7531 unless _tmp 7532 self.pos = _save 7533 break 7534 end 7535 _tmp = apply(:_Spnl) 7536 unless _tmp 7537 self.pos = _save 7538 break 7539 end 7540 _tmp = match_string("/") 7541 unless _tmp 7542 self.pos = _save 7543 break 7544 end 7545 7546 _save1 = self.pos 7547 while true # choice 7548 _tmp = match_string("td") 7549 break if _tmp 7550 self.pos = _save1 7551 _tmp = match_string("TD") 7552 break if _tmp 7553 self.pos = _save1 7554 break 7555 end # end choice 7556 7557 unless _tmp 7558 self.pos = _save 7559 break 7560 end 7561 _tmp = apply(:_Spnl) 7562 unless _tmp 7563 self.pos = _save 7564 break 7565 end 7566 _tmp = match_string(">") 7567 unless _tmp 7568 self.pos = _save 7569 end 7570 break 7571 end # end sequence 7572 7573 set_failed_rule :_HtmlBlockCloseTd unless _tmp 7574 return _tmp 7575 end 7576 7577 # HtmlBlockTd = HtmlBlockOpenTd (HtmlBlockTd | !HtmlBlockCloseTd .)* HtmlBlockCloseTd 7578 def _HtmlBlockTd 7579 7580 _save = self.pos 7581 while true # sequence 7582 _tmp = apply(:_HtmlBlockOpenTd) 7583 unless _tmp 7584 self.pos = _save 7585 break 7586 end 7587 while true 7588 7589 _save2 = self.pos 7590 while true # choice 7591 _tmp = apply(:_HtmlBlockTd) 7592 break if _tmp 7593 self.pos = _save2 7594 7595 _save3 = self.pos 7596 while true # sequence 7597 _save4 = self.pos 7598 _tmp = apply(:_HtmlBlockCloseTd) 7599 _tmp = _tmp ? nil : true 7600 self.pos = _save4 7601 unless _tmp 7602 self.pos = _save3 7603 break 7604 end 7605 _tmp = get_byte 7606 unless _tmp 7607 self.pos = _save3 7608 end 7609 break 7610 end # end sequence 7611 7612 break if _tmp 7613 self.pos = _save2 7614 break 7615 end # end choice 7616 7617 break unless _tmp 7618 end 7619 _tmp = true 7620 unless _tmp 7621 self.pos = _save 7622 break 7623 end 7624 _tmp = apply(:_HtmlBlockCloseTd) 7625 unless _tmp 7626 self.pos = _save 7627 end 7628 break 7629 end # end sequence 7630 7631 set_failed_rule :_HtmlBlockTd unless _tmp 7632 return _tmp 7633 end 7634 7635 # HtmlBlockOpenTfoot = "<" Spnl ("tfoot" | "TFOOT") Spnl HtmlAttribute* ">" 7636 def _HtmlBlockOpenTfoot 7637 7638 _save = self.pos 7639 while true # sequence 7640 _tmp = match_string("<") 7641 unless _tmp 7642 self.pos = _save 7643 break 7644 end 7645 _tmp = apply(:_Spnl) 7646 unless _tmp 7647 self.pos = _save 7648 break 7649 end 7650 7651 _save1 = self.pos 7652 while true # choice 7653 _tmp = match_string("tfoot") 7654 break if _tmp 7655 self.pos = _save1 7656 _tmp = match_string("TFOOT") 7657 break if _tmp 7658 self.pos = _save1 7659 break 7660 end # end choice 7661 7662 unless _tmp 7663 self.pos = _save 7664 break 7665 end 7666 _tmp = apply(:_Spnl) 7667 unless _tmp 7668 self.pos = _save 7669 break 7670 end 7671 while true 7672 _tmp = apply(:_HtmlAttribute) 7673 break unless _tmp 7674 end 7675 _tmp = true 7676 unless _tmp 7677 self.pos = _save 7678 break 7679 end 7680 _tmp = match_string(">") 7681 unless _tmp 7682 self.pos = _save 7683 end 7684 break 7685 end # end sequence 7686 7687 set_failed_rule :_HtmlBlockOpenTfoot unless _tmp 7688 return _tmp 7689 end 7690 7691 # HtmlBlockCloseTfoot = "<" Spnl "/" ("tfoot" | "TFOOT") Spnl ">" 7692 def _HtmlBlockCloseTfoot 7693 7694 _save = self.pos 7695 while true # sequence 7696 _tmp = match_string("<") 7697 unless _tmp 7698 self.pos = _save 7699 break 7700 end 7701 _tmp = apply(:_Spnl) 7702 unless _tmp 7703 self.pos = _save 7704 break 7705 end 7706 _tmp = match_string("/") 7707 unless _tmp 7708 self.pos = _save 7709 break 7710 end 7711 7712 _save1 = self.pos 7713 while true # choice 7714 _tmp = match_string("tfoot") 7715 break if _tmp 7716 self.pos = _save1 7717 _tmp = match_string("TFOOT") 7718 break if _tmp 7719 self.pos = _save1 7720 break 7721 end # end choice 7722 7723 unless _tmp 7724 self.pos = _save 7725 break 7726 end 7727 _tmp = apply(:_Spnl) 7728 unless _tmp 7729 self.pos = _save 7730 break 7731 end 7732 _tmp = match_string(">") 7733 unless _tmp 7734 self.pos = _save 7735 end 7736 break 7737 end # end sequence 7738 7739 set_failed_rule :_HtmlBlockCloseTfoot unless _tmp 7740 return _tmp 7741 end 7742 7743 # HtmlBlockTfoot = HtmlBlockOpenTfoot (HtmlBlockTfoot | !HtmlBlockCloseTfoot .)* HtmlBlockCloseTfoot 7744 def _HtmlBlockTfoot 7745 7746 _save = self.pos 7747 while true # sequence 7748 _tmp = apply(:_HtmlBlockOpenTfoot) 7749 unless _tmp 7750 self.pos = _save 7751 break 7752 end 7753 while true 7754 7755 _save2 = self.pos 7756 while true # choice 7757 _tmp = apply(:_HtmlBlockTfoot) 7758 break if _tmp 7759 self.pos = _save2 7760 7761 _save3 = self.pos 7762 while true # sequence 7763 _save4 = self.pos 7764 _tmp = apply(:_HtmlBlockCloseTfoot) 7765 _tmp = _tmp ? nil : true 7766 self.pos = _save4 7767 unless _tmp 7768 self.pos = _save3 7769 break 7770 end 7771 _tmp = get_byte 7772 unless _tmp 7773 self.pos = _save3 7774 end 7775 break 7776 end # end sequence 7777 7778 break if _tmp 7779 self.pos = _save2 7780 break 7781 end # end choice 7782 7783 break unless _tmp 7784 end 7785 _tmp = true 7786 unless _tmp 7787 self.pos = _save 7788 break 7789 end 7790 _tmp = apply(:_HtmlBlockCloseTfoot) 7791 unless _tmp 7792 self.pos = _save 7793 end 7794 break 7795 end # end sequence 7796 7797 set_failed_rule :_HtmlBlockTfoot unless _tmp 7798 return _tmp 7799 end 7800 7801 # HtmlBlockOpenTh = "<" Spnl ("th" | "TH") Spnl HtmlAttribute* ">" 7802 def _HtmlBlockOpenTh 7803 7804 _save = self.pos 7805 while true # sequence 7806 _tmp = match_string("<") 7807 unless _tmp 7808 self.pos = _save 7809 break 7810 end 7811 _tmp = apply(:_Spnl) 7812 unless _tmp 7813 self.pos = _save 7814 break 7815 end 7816 7817 _save1 = self.pos 7818 while true # choice 7819 _tmp = match_string("th") 7820 break if _tmp 7821 self.pos = _save1 7822 _tmp = match_string("TH") 7823 break if _tmp 7824 self.pos = _save1 7825 break 7826 end # end choice 7827 7828 unless _tmp 7829 self.pos = _save 7830 break 7831 end 7832 _tmp = apply(:_Spnl) 7833 unless _tmp 7834 self.pos = _save 7835 break 7836 end 7837 while true 7838 _tmp = apply(:_HtmlAttribute) 7839 break unless _tmp 7840 end 7841 _tmp = true 7842 unless _tmp 7843 self.pos = _save 7844 break 7845 end 7846 _tmp = match_string(">") 7847 unless _tmp 7848 self.pos = _save 7849 end 7850 break 7851 end # end sequence 7852 7853 set_failed_rule :_HtmlBlockOpenTh unless _tmp 7854 return _tmp 7855 end 7856 7857 # HtmlBlockCloseTh = "<" Spnl "/" ("th" | "TH") Spnl ">" 7858 def _HtmlBlockCloseTh 7859 7860 _save = self.pos 7861 while true # sequence 7862 _tmp = match_string("<") 7863 unless _tmp 7864 self.pos = _save 7865 break 7866 end 7867 _tmp = apply(:_Spnl) 7868 unless _tmp 7869 self.pos = _save 7870 break 7871 end 7872 _tmp = match_string("/") 7873 unless _tmp 7874 self.pos = _save 7875 break 7876 end 7877 7878 _save1 = self.pos 7879 while true # choice 7880 _tmp = match_string("th") 7881 break if _tmp 7882 self.pos = _save1 7883 _tmp = match_string("TH") 7884 break if _tmp 7885 self.pos = _save1 7886 break 7887 end # end choice 7888 7889 unless _tmp 7890 self.pos = _save 7891 break 7892 end 7893 _tmp = apply(:_Spnl) 7894 unless _tmp 7895 self.pos = _save 7896 break 7897 end 7898 _tmp = match_string(">") 7899 unless _tmp 7900 self.pos = _save 7901 end 7902 break 7903 end # end sequence 7904 7905 set_failed_rule :_HtmlBlockCloseTh unless _tmp 7906 return _tmp 7907 end 7908 7909 # HtmlBlockTh = HtmlBlockOpenTh (HtmlBlockTh | !HtmlBlockCloseTh .)* HtmlBlockCloseTh 7910 def _HtmlBlockTh 7911 7912 _save = self.pos 7913 while true # sequence 7914 _tmp = apply(:_HtmlBlockOpenTh) 7915 unless _tmp 7916 self.pos = _save 7917 break 7918 end 7919 while true 7920 7921 _save2 = self.pos 7922 while true # choice 7923 _tmp = apply(:_HtmlBlockTh) 7924 break if _tmp 7925 self.pos = _save2 7926 7927 _save3 = self.pos 7928 while true # sequence 7929 _save4 = self.pos 7930 _tmp = apply(:_HtmlBlockCloseTh) 7931 _tmp = _tmp ? nil : true 7932 self.pos = _save4 7933 unless _tmp 7934 self.pos = _save3 7935 break 7936 end 7937 _tmp = get_byte 7938 unless _tmp 7939 self.pos = _save3 7940 end 7941 break 7942 end # end sequence 7943 7944 break if _tmp 7945 self.pos = _save2 7946 break 7947 end # end choice 7948 7949 break unless _tmp 7950 end 7951 _tmp = true 7952 unless _tmp 7953 self.pos = _save 7954 break 7955 end 7956 _tmp = apply(:_HtmlBlockCloseTh) 7957 unless _tmp 7958 self.pos = _save 7959 end 7960 break 7961 end # end sequence 7962 7963 set_failed_rule :_HtmlBlockTh unless _tmp 7964 return _tmp 7965 end 7966 7967 # HtmlBlockOpenThead = "<" Spnl ("thead" | "THEAD") Spnl HtmlAttribute* ">" 7968 def _HtmlBlockOpenThead 7969 7970 _save = self.pos 7971 while true # sequence 7972 _tmp = match_string("<") 7973 unless _tmp 7974 self.pos = _save 7975 break 7976 end 7977 _tmp = apply(:_Spnl) 7978 unless _tmp 7979 self.pos = _save 7980 break 7981 end 7982 7983 _save1 = self.pos 7984 while true # choice 7985 _tmp = match_string("thead") 7986 break if _tmp 7987 self.pos = _save1 7988 _tmp = match_string("THEAD") 7989 break if _tmp 7990 self.pos = _save1 7991 break 7992 end # end choice 7993 7994 unless _tmp 7995 self.pos = _save 7996 break 7997 end 7998 _tmp = apply(:_Spnl) 7999 unless _tmp 8000 self.pos = _save 8001 break 8002 end 8003 while true 8004 _tmp = apply(:_HtmlAttribute) 8005 break unless _tmp 8006 end 8007 _tmp = true 8008 unless _tmp 8009 self.pos = _save 8010 break 8011 end 8012 _tmp = match_string(">") 8013 unless _tmp 8014 self.pos = _save 8015 end 8016 break 8017 end # end sequence 8018 8019 set_failed_rule :_HtmlBlockOpenThead unless _tmp 8020 return _tmp 8021 end 8022 8023 # HtmlBlockCloseThead = "<" Spnl "/" ("thead" | "THEAD") Spnl ">" 8024 def _HtmlBlockCloseThead 8025 8026 _save = self.pos 8027 while true # sequence 8028 _tmp = match_string("<") 8029 unless _tmp 8030 self.pos = _save 8031 break 8032 end 8033 _tmp = apply(:_Spnl) 8034 unless _tmp 8035 self.pos = _save 8036 break 8037 end 8038 _tmp = match_string("/") 8039 unless _tmp 8040 self.pos = _save 8041 break 8042 end 8043 8044 _save1 = self.pos 8045 while true # choice 8046 _tmp = match_string("thead") 8047 break if _tmp 8048 self.pos = _save1 8049 _tmp = match_string("THEAD") 8050 break if _tmp 8051 self.pos = _save1 8052 break 8053 end # end choice 8054 8055 unless _tmp 8056 self.pos = _save 8057 break 8058 end 8059 _tmp = apply(:_Spnl) 8060 unless _tmp 8061 self.pos = _save 8062 break 8063 end 8064 _tmp = match_string(">") 8065 unless _tmp 8066 self.pos = _save 8067 end 8068 break 8069 end # end sequence 8070 8071 set_failed_rule :_HtmlBlockCloseThead unless _tmp 8072 return _tmp 8073 end 8074 8075 # HtmlBlockThead = HtmlBlockOpenThead (HtmlBlockThead | !HtmlBlockCloseThead .)* HtmlBlockCloseThead 8076 def _HtmlBlockThead 8077 8078 _save = self.pos 8079 while true # sequence 8080 _tmp = apply(:_HtmlBlockOpenThead) 8081 unless _tmp 8082 self.pos = _save 8083 break 8084 end 8085 while true 8086 8087 _save2 = self.pos 8088 while true # choice 8089 _tmp = apply(:_HtmlBlockThead) 8090 break if _tmp 8091 self.pos = _save2 8092 8093 _save3 = self.pos 8094 while true # sequence 8095 _save4 = self.pos 8096 _tmp = apply(:_HtmlBlockCloseThead) 8097 _tmp = _tmp ? nil : true 8098 self.pos = _save4 8099 unless _tmp 8100 self.pos = _save3 8101 break 8102 end 8103 _tmp = get_byte 8104 unless _tmp 8105 self.pos = _save3 8106 end 8107 break 8108 end # end sequence 8109 8110 break if _tmp 8111 self.pos = _save2 8112 break 8113 end # end choice 8114 8115 break unless _tmp 8116 end 8117 _tmp = true 8118 unless _tmp 8119 self.pos = _save 8120 break 8121 end 8122 _tmp = apply(:_HtmlBlockCloseThead) 8123 unless _tmp 8124 self.pos = _save 8125 end 8126 break 8127 end # end sequence 8128 8129 set_failed_rule :_HtmlBlockThead unless _tmp 8130 return _tmp 8131 end 8132 8133 # HtmlBlockOpenTr = "<" Spnl ("tr" | "TR") Spnl HtmlAttribute* ">" 8134 def _HtmlBlockOpenTr 8135 8136 _save = self.pos 8137 while true # sequence 8138 _tmp = match_string("<") 8139 unless _tmp 8140 self.pos = _save 8141 break 8142 end 8143 _tmp = apply(:_Spnl) 8144 unless _tmp 8145 self.pos = _save 8146 break 8147 end 8148 8149 _save1 = self.pos 8150 while true # choice 8151 _tmp = match_string("tr") 8152 break if _tmp 8153 self.pos = _save1 8154 _tmp = match_string("TR") 8155 break if _tmp 8156 self.pos = _save1 8157 break 8158 end # end choice 8159 8160 unless _tmp 8161 self.pos = _save 8162 break 8163 end 8164 _tmp = apply(:_Spnl) 8165 unless _tmp 8166 self.pos = _save 8167 break 8168 end 8169 while true 8170 _tmp = apply(:_HtmlAttribute) 8171 break unless _tmp 8172 end 8173 _tmp = true 8174 unless _tmp 8175 self.pos = _save 8176 break 8177 end 8178 _tmp = match_string(">") 8179 unless _tmp 8180 self.pos = _save 8181 end 8182 break 8183 end # end sequence 8184 8185 set_failed_rule :_HtmlBlockOpenTr unless _tmp 8186 return _tmp 8187 end 8188 8189 # HtmlBlockCloseTr = "<" Spnl "/" ("tr" | "TR") Spnl ">" 8190 def _HtmlBlockCloseTr 8191 8192 _save = self.pos 8193 while true # sequence 8194 _tmp = match_string("<") 8195 unless _tmp 8196 self.pos = _save 8197 break 8198 end 8199 _tmp = apply(:_Spnl) 8200 unless _tmp 8201 self.pos = _save 8202 break 8203 end 8204 _tmp = match_string("/") 8205 unless _tmp 8206 self.pos = _save 8207 break 8208 end 8209 8210 _save1 = self.pos 8211 while true # choice 8212 _tmp = match_string("tr") 8213 break if _tmp 8214 self.pos = _save1 8215 _tmp = match_string("TR") 8216 break if _tmp 8217 self.pos = _save1 8218 break 8219 end # end choice 8220 8221 unless _tmp 8222 self.pos = _save 8223 break 8224 end 8225 _tmp = apply(:_Spnl) 8226 unless _tmp 8227 self.pos = _save 8228 break 8229 end 8230 _tmp = match_string(">") 8231 unless _tmp 8232 self.pos = _save 8233 end 8234 break 8235 end # end sequence 8236 8237 set_failed_rule :_HtmlBlockCloseTr unless _tmp 8238 return _tmp 8239 end 8240 8241 # HtmlBlockTr = HtmlBlockOpenTr (HtmlBlockTr | !HtmlBlockCloseTr .)* HtmlBlockCloseTr 8242 def _HtmlBlockTr 8243 8244 _save = self.pos 8245 while true # sequence 8246 _tmp = apply(:_HtmlBlockOpenTr) 8247 unless _tmp 8248 self.pos = _save 8249 break 8250 end 8251 while true 8252 8253 _save2 = self.pos 8254 while true # choice 8255 _tmp = apply(:_HtmlBlockTr) 8256 break if _tmp 8257 self.pos = _save2 8258 8259 _save3 = self.pos 8260 while true # sequence 8261 _save4 = self.pos 8262 _tmp = apply(:_HtmlBlockCloseTr) 8263 _tmp = _tmp ? nil : true 8264 self.pos = _save4 8265 unless _tmp 8266 self.pos = _save3 8267 break 8268 end 8269 _tmp = get_byte 8270 unless _tmp 8271 self.pos = _save3 8272 end 8273 break 8274 end # end sequence 8275 8276 break if _tmp 8277 self.pos = _save2 8278 break 8279 end # end choice 8280 8281 break unless _tmp 8282 end 8283 _tmp = true 8284 unless _tmp 8285 self.pos = _save 8286 break 8287 end 8288 _tmp = apply(:_HtmlBlockCloseTr) 8289 unless _tmp 8290 self.pos = _save 8291 end 8292 break 8293 end # end sequence 8294 8295 set_failed_rule :_HtmlBlockTr unless _tmp 8296 return _tmp 8297 end 8298 8299 # HtmlBlockOpenScript = "<" Spnl ("script" | "SCRIPT") Spnl HtmlAttribute* ">" 8300 def _HtmlBlockOpenScript 8301 8302 _save = self.pos 8303 while true # sequence 8304 _tmp = match_string("<") 8305 unless _tmp 8306 self.pos = _save 8307 break 8308 end 8309 _tmp = apply(:_Spnl) 8310 unless _tmp 8311 self.pos = _save 8312 break 8313 end 8314 8315 _save1 = self.pos 8316 while true # choice 8317 _tmp = match_string("script") 8318 break if _tmp 8319 self.pos = _save1 8320 _tmp = match_string("SCRIPT") 8321 break if _tmp 8322 self.pos = _save1 8323 break 8324 end # end choice 8325 8326 unless _tmp 8327 self.pos = _save 8328 break 8329 end 8330 _tmp = apply(:_Spnl) 8331 unless _tmp 8332 self.pos = _save 8333 break 8334 end 8335 while true 8336 _tmp = apply(:_HtmlAttribute) 8337 break unless _tmp 8338 end 8339 _tmp = true 8340 unless _tmp 8341 self.pos = _save 8342 break 8343 end 8344 _tmp = match_string(">") 8345 unless _tmp 8346 self.pos = _save 8347 end 8348 break 8349 end # end sequence 8350 8351 set_failed_rule :_HtmlBlockOpenScript unless _tmp 8352 return _tmp 8353 end 8354 8355 # HtmlBlockCloseScript = "<" Spnl "/" ("script" | "SCRIPT") Spnl ">" 8356 def _HtmlBlockCloseScript 8357 8358 _save = self.pos 8359 while true # sequence 8360 _tmp = match_string("<") 8361 unless _tmp 8362 self.pos = _save 8363 break 8364 end 8365 _tmp = apply(:_Spnl) 8366 unless _tmp 8367 self.pos = _save 8368 break 8369 end 8370 _tmp = match_string("/") 8371 unless _tmp 8372 self.pos = _save 8373 break 8374 end 8375 8376 _save1 = self.pos 8377 while true # choice 8378 _tmp = match_string("script") 8379 break if _tmp 8380 self.pos = _save1 8381 _tmp = match_string("SCRIPT") 8382 break if _tmp 8383 self.pos = _save1 8384 break 8385 end # end choice 8386 8387 unless _tmp 8388 self.pos = _save 8389 break 8390 end 8391 _tmp = apply(:_Spnl) 8392 unless _tmp 8393 self.pos = _save 8394 break 8395 end 8396 _tmp = match_string(">") 8397 unless _tmp 8398 self.pos = _save 8399 end 8400 break 8401 end # end sequence 8402 8403 set_failed_rule :_HtmlBlockCloseScript unless _tmp 8404 return _tmp 8405 end 8406 8407 # HtmlBlockScript = HtmlBlockOpenScript (!HtmlBlockCloseScript .)* HtmlBlockCloseScript 8408 def _HtmlBlockScript 8409 8410 _save = self.pos 8411 while true # sequence 8412 _tmp = apply(:_HtmlBlockOpenScript) 8413 unless _tmp 8414 self.pos = _save 8415 break 8416 end 8417 while true 8418 8419 _save2 = self.pos 8420 while true # sequence 8421 _save3 = self.pos 8422 _tmp = apply(:_HtmlBlockCloseScript) 8423 _tmp = _tmp ? nil : true 8424 self.pos = _save3 8425 unless _tmp 8426 self.pos = _save2 8427 break 8428 end 8429 _tmp = get_byte 8430 unless _tmp 8431 self.pos = _save2 8432 end 8433 break 8434 end # end sequence 8435 8436 break unless _tmp 8437 end 8438 _tmp = true 8439 unless _tmp 8440 self.pos = _save 8441 break 8442 end 8443 _tmp = apply(:_HtmlBlockCloseScript) 8444 unless _tmp 8445 self.pos = _save 8446 end 8447 break 8448 end # end sequence 8449 8450 set_failed_rule :_HtmlBlockScript unless _tmp 8451 return _tmp 8452 end 8453 8454 # HtmlBlockOpenHead = "<" Spnl ("head" | "HEAD") Spnl HtmlAttribute* ">" 8455 def _HtmlBlockOpenHead 8456 8457 _save = self.pos 8458 while true # sequence 8459 _tmp = match_string("<") 8460 unless _tmp 8461 self.pos = _save 8462 break 8463 end 8464 _tmp = apply(:_Spnl) 8465 unless _tmp 8466 self.pos = _save 8467 break 8468 end 8469 8470 _save1 = self.pos 8471 while true # choice 8472 _tmp = match_string("head") 8473 break if _tmp 8474 self.pos = _save1 8475 _tmp = match_string("HEAD") 8476 break if _tmp 8477 self.pos = _save1 8478 break 8479 end # end choice 8480 8481 unless _tmp 8482 self.pos = _save 8483 break 8484 end 8485 _tmp = apply(:_Spnl) 8486 unless _tmp 8487 self.pos = _save 8488 break 8489 end 8490 while true 8491 _tmp = apply(:_HtmlAttribute) 8492 break unless _tmp 8493 end 8494 _tmp = true 8495 unless _tmp 8496 self.pos = _save 8497 break 8498 end 8499 _tmp = match_string(">") 8500 unless _tmp 8501 self.pos = _save 8502 end 8503 break 8504 end # end sequence 8505 8506 set_failed_rule :_HtmlBlockOpenHead unless _tmp 8507 return _tmp 8508 end 8509 8510 # HtmlBlockCloseHead = "<" Spnl "/" ("head" | "HEAD") Spnl ">" 8511 def _HtmlBlockCloseHead 8512 8513 _save = self.pos 8514 while true # sequence 8515 _tmp = match_string("<") 8516 unless _tmp 8517 self.pos = _save 8518 break 8519 end 8520 _tmp = apply(:_Spnl) 8521 unless _tmp 8522 self.pos = _save 8523 break 8524 end 8525 _tmp = match_string("/") 8526 unless _tmp 8527 self.pos = _save 8528 break 8529 end 8530 8531 _save1 = self.pos 8532 while true # choice 8533 _tmp = match_string("head") 8534 break if _tmp 8535 self.pos = _save1 8536 _tmp = match_string("HEAD") 8537 break if _tmp 8538 self.pos = _save1 8539 break 8540 end # end choice 8541 8542 unless _tmp 8543 self.pos = _save 8544 break 8545 end 8546 _tmp = apply(:_Spnl) 8547 unless _tmp 8548 self.pos = _save 8549 break 8550 end 8551 _tmp = match_string(">") 8552 unless _tmp 8553 self.pos = _save 8554 end 8555 break 8556 end # end sequence 8557 8558 set_failed_rule :_HtmlBlockCloseHead unless _tmp 8559 return _tmp 8560 end 8561 8562 # HtmlBlockHead = HtmlBlockOpenHead (!HtmlBlockCloseHead .)* HtmlBlockCloseHead 8563 def _HtmlBlockHead 8564 8565 _save = self.pos 8566 while true # sequence 8567 _tmp = apply(:_HtmlBlockOpenHead) 8568 unless _tmp 8569 self.pos = _save 8570 break 8571 end 8572 while true 8573 8574 _save2 = self.pos 8575 while true # sequence 8576 _save3 = self.pos 8577 _tmp = apply(:_HtmlBlockCloseHead) 8578 _tmp = _tmp ? nil : true 8579 self.pos = _save3 8580 unless _tmp 8581 self.pos = _save2 8582 break 8583 end 8584 _tmp = get_byte 8585 unless _tmp 8586 self.pos = _save2 8587 end 8588 break 8589 end # end sequence 8590 8591 break unless _tmp 8592 end 8593 _tmp = true 8594 unless _tmp 8595 self.pos = _save 8596 break 8597 end 8598 _tmp = apply(:_HtmlBlockCloseHead) 8599 unless _tmp 8600 self.pos = _save 8601 end 8602 break 8603 end # end sequence 8604 8605 set_failed_rule :_HtmlBlockHead unless _tmp 8606 return _tmp 8607 end 8608 8609 # 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) 8610 def _HtmlBlockInTags 8611 8612 _save = self.pos 8613 while true # choice 8614 _tmp = apply(:_HtmlAnchor) 8615 break if _tmp 8616 self.pos = _save 8617 _tmp = apply(:_HtmlBlockAddress) 8618 break if _tmp 8619 self.pos = _save 8620 _tmp = apply(:_HtmlBlockBlockquote) 8621 break if _tmp 8622 self.pos = _save 8623 _tmp = apply(:_HtmlBlockCenter) 8624 break if _tmp 8625 self.pos = _save 8626 _tmp = apply(:_HtmlBlockDir) 8627 break if _tmp 8628 self.pos = _save 8629 _tmp = apply(:_HtmlBlockDiv) 8630 break if _tmp 8631 self.pos = _save 8632 _tmp = apply(:_HtmlBlockDl) 8633 break if _tmp 8634 self.pos = _save 8635 _tmp = apply(:_HtmlBlockFieldset) 8636 break if _tmp 8637 self.pos = _save 8638 _tmp = apply(:_HtmlBlockForm) 8639 break if _tmp 8640 self.pos = _save 8641 _tmp = apply(:_HtmlBlockH1) 8642 break if _tmp 8643 self.pos = _save 8644 _tmp = apply(:_HtmlBlockH2) 8645 break if _tmp 8646 self.pos = _save 8647 _tmp = apply(:_HtmlBlockH3) 8648 break if _tmp 8649 self.pos = _save 8650 _tmp = apply(:_HtmlBlockH4) 8651 break if _tmp 8652 self.pos = _save 8653 _tmp = apply(:_HtmlBlockH5) 8654 break if _tmp 8655 self.pos = _save 8656 _tmp = apply(:_HtmlBlockH6) 8657 break if _tmp 8658 self.pos = _save 8659 _tmp = apply(:_HtmlBlockMenu) 8660 break if _tmp 8661 self.pos = _save 8662 _tmp = apply(:_HtmlBlockNoframes) 8663 break if _tmp 8664 self.pos = _save 8665 _tmp = apply(:_HtmlBlockNoscript) 8666 break if _tmp 8667 self.pos = _save 8668 _tmp = apply(:_HtmlBlockOl) 8669 break if _tmp 8670 self.pos = _save 8671 _tmp = apply(:_HtmlBlockP) 8672 break if _tmp 8673 self.pos = _save 8674 _tmp = apply(:_HtmlBlockPre) 8675 break if _tmp 8676 self.pos = _save 8677 _tmp = apply(:_HtmlBlockTable) 8678 break if _tmp 8679 self.pos = _save 8680 _tmp = apply(:_HtmlBlockUl) 8681 break if _tmp 8682 self.pos = _save 8683 _tmp = apply(:_HtmlBlockDd) 8684 break if _tmp 8685 self.pos = _save 8686 _tmp = apply(:_HtmlBlockDt) 8687 break if _tmp 8688 self.pos = _save 8689 _tmp = apply(:_HtmlBlockFrameset) 8690 break if _tmp 8691 self.pos = _save 8692 _tmp = apply(:_HtmlBlockLi) 8693 break if _tmp 8694 self.pos = _save 8695 _tmp = apply(:_HtmlBlockTbody) 8696 break if _tmp 8697 self.pos = _save 8698 _tmp = apply(:_HtmlBlockTd) 8699 break if _tmp 8700 self.pos = _save 8701 _tmp = apply(:_HtmlBlockTfoot) 8702 break if _tmp 8703 self.pos = _save 8704 _tmp = apply(:_HtmlBlockTh) 8705 break if _tmp 8706 self.pos = _save 8707 _tmp = apply(:_HtmlBlockThead) 8708 break if _tmp 8709 self.pos = _save 8710 _tmp = apply(:_HtmlBlockTr) 8711 break if _tmp 8712 self.pos = _save 8713 _tmp = apply(:_HtmlBlockScript) 8714 break if _tmp 8715 self.pos = _save 8716 _tmp = apply(:_HtmlBlockHead) 8717 break if _tmp 8718 self.pos = _save 8719 break 8720 end # end choice 8721 8722 set_failed_rule :_HtmlBlockInTags unless _tmp 8723 return _tmp 8724 end 8725 8726 # HtmlBlock = < (HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) > @BlankLine+ { if html? then RDoc::Markup::Raw.new text end } 8727 def _HtmlBlock 8728 8729 _save = self.pos 8730 while true # sequence 8731 _text_start = self.pos 8732 8733 _save1 = self.pos 8734 while true # choice 8735 _tmp = apply(:_HtmlBlockInTags) 8736 break if _tmp 8737 self.pos = _save1 8738 _tmp = apply(:_HtmlComment) 8739 break if _tmp 8740 self.pos = _save1 8741 _tmp = apply(:_HtmlBlockSelfClosing) 8742 break if _tmp 8743 self.pos = _save1 8744 _tmp = apply(:_HtmlUnclosed) 8745 break if _tmp 8746 self.pos = _save1 8747 break 8748 end # end choice 8749 8750 if _tmp 8751 text = get_text(_text_start) 8752 end 8753 unless _tmp 8754 self.pos = _save 8755 break 8756 end 8757 _save2 = self.pos 8758 _tmp = _BlankLine() 8759 if _tmp 8760 while true 8761 _tmp = _BlankLine() 8762 break unless _tmp 8763 end 8764 _tmp = true 8765 else 8766 self.pos = _save2 8767 end 8768 unless _tmp 8769 self.pos = _save 8770 break 8771 end 8772 @result = begin; if html? then 8773 RDoc::Markup::Raw.new text 8774 end ; end 8775 _tmp = true 8776 unless _tmp 8777 self.pos = _save 8778 end 8779 break 8780 end # end sequence 8781 8782 set_failed_rule :_HtmlBlock unless _tmp 8783 return _tmp 8784 end 8785 8786 # HtmlUnclosed = "<" Spnl HtmlUnclosedType Spnl HtmlAttribute* Spnl ">" 8787 def _HtmlUnclosed 8788 8789 _save = self.pos 8790 while true # sequence 8791 _tmp = match_string("<") 8792 unless _tmp 8793 self.pos = _save 8794 break 8795 end 8796 _tmp = apply(:_Spnl) 8797 unless _tmp 8798 self.pos = _save 8799 break 8800 end 8801 _tmp = apply(:_HtmlUnclosedType) 8802 unless _tmp 8803 self.pos = _save 8804 break 8805 end 8806 _tmp = apply(:_Spnl) 8807 unless _tmp 8808 self.pos = _save 8809 break 8810 end 8811 while true 8812 _tmp = apply(:_HtmlAttribute) 8813 break unless _tmp 8814 end 8815 _tmp = true 8816 unless _tmp 8817 self.pos = _save 8818 break 8819 end 8820 _tmp = apply(:_Spnl) 8821 unless _tmp 8822 self.pos = _save 8823 break 8824 end 8825 _tmp = match_string(">") 8826 unless _tmp 8827 self.pos = _save 8828 end 8829 break 8830 end # end sequence 8831 8832 set_failed_rule :_HtmlUnclosed unless _tmp 8833 return _tmp 8834 end 8835 8836 # HtmlUnclosedType = ("HR" | "hr") 8837 def _HtmlUnclosedType 8838 8839 _save = self.pos 8840 while true # choice 8841 _tmp = match_string("HR") 8842 break if _tmp 8843 self.pos = _save 8844 _tmp = match_string("hr") 8845 break if _tmp 8846 self.pos = _save 8847 break 8848 end # end choice 8849 8850 set_failed_rule :_HtmlUnclosedType unless _tmp 8851 return _tmp 8852 end 8853 8854 # HtmlBlockSelfClosing = "<" Spnl HtmlBlockType Spnl HtmlAttribute* "/" Spnl ">" 8855 def _HtmlBlockSelfClosing 8856 8857 _save = self.pos 8858 while true # sequence 8859 _tmp = match_string("<") 8860 unless _tmp 8861 self.pos = _save 8862 break 8863 end 8864 _tmp = apply(:_Spnl) 8865 unless _tmp 8866 self.pos = _save 8867 break 8868 end 8869 _tmp = apply(:_HtmlBlockType) 8870 unless _tmp 8871 self.pos = _save 8872 break 8873 end 8874 _tmp = apply(:_Spnl) 8875 unless _tmp 8876 self.pos = _save 8877 break 8878 end 8879 while true 8880 _tmp = apply(:_HtmlAttribute) 8881 break unless _tmp 8882 end 8883 _tmp = true 8884 unless _tmp 8885 self.pos = _save 8886 break 8887 end 8888 _tmp = match_string("/") 8889 unless _tmp 8890 self.pos = _save 8891 break 8892 end 8893 _tmp = apply(:_Spnl) 8894 unless _tmp 8895 self.pos = _save 8896 break 8897 end 8898 _tmp = match_string(">") 8899 unless _tmp 8900 self.pos = _save 8901 end 8902 break 8903 end # end sequence 8904 8905 set_failed_rule :_HtmlBlockSelfClosing unless _tmp 8906 return _tmp 8907 end 8908 8909 # HtmlBlockType = ("ADDRESS" | "BLOCKQUOTE" | "CENTER" | "DD" | "DIR" | "DIV" | "DL" | "DT" | "FIELDSET" | "FORM" | "FRAMESET" | "H1" | "H2" | "H3" | "H4" | "H5" | "H6" | "HR" | "ISINDEX" | "LI" | "MENU" | "NOFRAMES" | "NOSCRIPT" | "OL" | "P" | "PRE" | "SCRIPT" | "TABLE" | "TBODY" | "TD" | "TFOOT" | "TH" | "THEAD" | "TR" | "UL" | "address" | "blockquote" | "center" | "dd" | "dir" | "div" | "dl" | "dt" | "fieldset" | "form" | "frameset" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "hr" | "isindex" | "li" | "menu" | "noframes" | "noscript" | "ol" | "p" | "pre" | "script" | "table" | "tbody" | "td" | "tfoot" | "th" | "thead" | "tr" | "ul") 8910 def _HtmlBlockType 8911 8912 _save = self.pos 8913 while true # choice 8914 _tmp = match_string("ADDRESS") 8915 break if _tmp 8916 self.pos = _save 8917 _tmp = match_string("BLOCKQUOTE") 8918 break if _tmp 8919 self.pos = _save 8920 _tmp = match_string("CENTER") 8921 break if _tmp 8922 self.pos = _save 8923 _tmp = match_string("DD") 8924 break if _tmp 8925 self.pos = _save 8926 _tmp = match_string("DIR") 8927 break if _tmp 8928 self.pos = _save 8929 _tmp = match_string("DIV") 8930 break if _tmp 8931 self.pos = _save 8932 _tmp = match_string("DL") 8933 break if _tmp 8934 self.pos = _save 8935 _tmp = match_string("DT") 8936 break if _tmp 8937 self.pos = _save 8938 _tmp = match_string("FIELDSET") 8939 break if _tmp 8940 self.pos = _save 8941 _tmp = match_string("FORM") 8942 break if _tmp 8943 self.pos = _save 8944 _tmp = match_string("FRAMESET") 8945 break if _tmp 8946 self.pos = _save 8947 _tmp = match_string("H1") 8948 break if _tmp 8949 self.pos = _save 8950 _tmp = match_string("H2") 8951 break if _tmp 8952 self.pos = _save 8953 _tmp = match_string("H3") 8954 break if _tmp 8955 self.pos = _save 8956 _tmp = match_string("H4") 8957 break if _tmp 8958 self.pos = _save 8959 _tmp = match_string("H5") 8960 break if _tmp 8961 self.pos = _save 8962 _tmp = match_string("H6") 8963 break if _tmp 8964 self.pos = _save 8965 _tmp = match_string("HR") 8966 break if _tmp 8967 self.pos = _save 8968 _tmp = match_string("ISINDEX") 8969 break if _tmp 8970 self.pos = _save 8971 _tmp = match_string("LI") 8972 break if _tmp 8973 self.pos = _save 8974 _tmp = match_string("MENU") 8975 break if _tmp 8976 self.pos = _save 8977 _tmp = match_string("NOFRAMES") 8978 break if _tmp 8979 self.pos = _save 8980 _tmp = match_string("NOSCRIPT") 8981 break if _tmp 8982 self.pos = _save 8983 _tmp = match_string("OL") 8984 break if _tmp 8985 self.pos = _save 8986 _tmp = match_string("P") 8987 break if _tmp 8988 self.pos = _save 8989 _tmp = match_string("PRE") 8990 break if _tmp 8991 self.pos = _save 8992 _tmp = match_string("SCRIPT") 8993 break if _tmp 8994 self.pos = _save 8995 _tmp = match_string("TABLE") 8996 break if _tmp 8997 self.pos = _save 8998 _tmp = match_string("TBODY") 8999 break if _tmp 9000 self.pos = _save 9001 _tmp = match_string("TD") 9002 break if _tmp 9003 self.pos = _save 9004 _tmp = match_string("TFOOT") 9005 break if _tmp 9006 self.pos = _save 9007 _tmp = match_string("TH") 9008 break if _tmp 9009 self.pos = _save 9010 _tmp = match_string("THEAD") 9011 break if _tmp 9012 self.pos = _save 9013 _tmp = match_string("TR") 9014 break if _tmp 9015 self.pos = _save 9016 _tmp = match_string("UL") 9017 break if _tmp 9018 self.pos = _save 9019 _tmp = match_string("address") 9020 break if _tmp 9021 self.pos = _save 9022 _tmp = match_string("blockquote") 9023 break if _tmp 9024 self.pos = _save 9025 _tmp = match_string("center") 9026 break if _tmp 9027 self.pos = _save 9028 _tmp = match_string("dd") 9029 break if _tmp 9030 self.pos = _save 9031 _tmp = match_string("dir") 9032 break if _tmp 9033 self.pos = _save 9034 _tmp = match_string("div") 9035 break if _tmp 9036 self.pos = _save 9037 _tmp = match_string("dl") 9038 break if _tmp 9039 self.pos = _save 9040 _tmp = match_string("dt") 9041 break if _tmp 9042 self.pos = _save 9043 _tmp = match_string("fieldset") 9044 break if _tmp 9045 self.pos = _save 9046 _tmp = match_string("form") 9047 break if _tmp 9048 self.pos = _save 9049 _tmp = match_string("frameset") 9050 break if _tmp 9051 self.pos = _save 9052 _tmp = match_string("h1") 9053 break if _tmp 9054 self.pos = _save 9055 _tmp = match_string("h2") 9056 break if _tmp 9057 self.pos = _save 9058 _tmp = match_string("h3") 9059 break if _tmp 9060 self.pos = _save 9061 _tmp = match_string("h4") 9062 break if _tmp 9063 self.pos = _save 9064 _tmp = match_string("h5") 9065 break if _tmp 9066 self.pos = _save 9067 _tmp = match_string("h6") 9068 break if _tmp 9069 self.pos = _save 9070 _tmp = match_string("hr") 9071 break if _tmp 9072 self.pos = _save 9073 _tmp = match_string("isindex") 9074 break if _tmp 9075 self.pos = _save 9076 _tmp = match_string("li") 9077 break if _tmp 9078 self.pos = _save 9079 _tmp = match_string("menu") 9080 break if _tmp 9081 self.pos = _save 9082 _tmp = match_string("noframes") 9083 break if _tmp 9084 self.pos = _save 9085 _tmp = match_string("noscript") 9086 break if _tmp 9087 self.pos = _save 9088 _tmp = match_string("ol") 9089 break if _tmp 9090 self.pos = _save 9091 _tmp = match_string("p") 9092 break if _tmp 9093 self.pos = _save 9094 _tmp = match_string("pre") 9095 break if _tmp 9096 self.pos = _save 9097 _tmp = match_string("script") 9098 break if _tmp 9099 self.pos = _save 9100 _tmp = match_string("table") 9101 break if _tmp 9102 self.pos = _save 9103 _tmp = match_string("tbody") 9104 break if _tmp 9105 self.pos = _save 9106 _tmp = match_string("td") 9107 break if _tmp 9108 self.pos = _save 9109 _tmp = match_string("tfoot") 9110 break if _tmp 9111 self.pos = _save 9112 _tmp = match_string("th") 9113 break if _tmp 9114 self.pos = _save 9115 _tmp = match_string("thead") 9116 break if _tmp 9117 self.pos = _save 9118 _tmp = match_string("tr") 9119 break if _tmp 9120 self.pos = _save 9121 _tmp = match_string("ul") 9122 break if _tmp 9123 self.pos = _save 9124 break 9125 end # end choice 9126 9127 set_failed_rule :_HtmlBlockType unless _tmp 9128 return _tmp 9129 end 9130 9131 # StyleOpen = "<" Spnl ("style" | "STYLE") Spnl HtmlAttribute* ">" 9132 def _StyleOpen 9133 9134 _save = self.pos 9135 while true # sequence 9136 _tmp = match_string("<") 9137 unless _tmp 9138 self.pos = _save 9139 break 9140 end 9141 _tmp = apply(:_Spnl) 9142 unless _tmp 9143 self.pos = _save 9144 break 9145 end 9146 9147 _save1 = self.pos 9148 while true # choice 9149 _tmp = match_string("style") 9150 break if _tmp 9151 self.pos = _save1 9152 _tmp = match_string("STYLE") 9153 break if _tmp 9154 self.pos = _save1 9155 break 9156 end # end choice 9157 9158 unless _tmp 9159 self.pos = _save 9160 break 9161 end 9162 _tmp = apply(:_Spnl) 9163 unless _tmp 9164 self.pos = _save 9165 break 9166 end 9167 while true 9168 _tmp = apply(:_HtmlAttribute) 9169 break unless _tmp 9170 end 9171 _tmp = true 9172 unless _tmp 9173 self.pos = _save 9174 break 9175 end 9176 _tmp = match_string(">") 9177 unless _tmp 9178 self.pos = _save 9179 end 9180 break 9181 end # end sequence 9182 9183 set_failed_rule :_StyleOpen unless _tmp 9184 return _tmp 9185 end 9186 9187 # StyleClose = "<" Spnl "/" ("style" | "STYLE") Spnl ">" 9188 def _StyleClose 9189 9190 _save = self.pos 9191 while true # sequence 9192 _tmp = match_string("<") 9193 unless _tmp 9194 self.pos = _save 9195 break 9196 end 9197 _tmp = apply(:_Spnl) 9198 unless _tmp 9199 self.pos = _save 9200 break 9201 end 9202 _tmp = match_string("/") 9203 unless _tmp 9204 self.pos = _save 9205 break 9206 end 9207 9208 _save1 = self.pos 9209 while true # choice 9210 _tmp = match_string("style") 9211 break if _tmp 9212 self.pos = _save1 9213 _tmp = match_string("STYLE") 9214 break if _tmp 9215 self.pos = _save1 9216 break 9217 end # end choice 9218 9219 unless _tmp 9220 self.pos = _save 9221 break 9222 end 9223 _tmp = apply(:_Spnl) 9224 unless _tmp 9225 self.pos = _save 9226 break 9227 end 9228 _tmp = match_string(">") 9229 unless _tmp 9230 self.pos = _save 9231 end 9232 break 9233 end # end sequence 9234 9235 set_failed_rule :_StyleClose unless _tmp 9236 return _tmp 9237 end 9238 9239 # InStyleTags = StyleOpen (!StyleClose .)* StyleClose 9240 def _InStyleTags 9241 9242 _save = self.pos 9243 while true # sequence 9244 _tmp = apply(:_StyleOpen) 9245 unless _tmp 9246 self.pos = _save 9247 break 9248 end 9249 while true 9250 9251 _save2 = self.pos 9252 while true # sequence 9253 _save3 = self.pos 9254 _tmp = apply(:_StyleClose) 9255 _tmp = _tmp ? nil : true 9256 self.pos = _save3 9257 unless _tmp 9258 self.pos = _save2 9259 break 9260 end 9261 _tmp = get_byte 9262 unless _tmp 9263 self.pos = _save2 9264 end 9265 break 9266 end # end sequence 9267 9268 break unless _tmp 9269 end 9270 _tmp = true 9271 unless _tmp 9272 self.pos = _save 9273 break 9274 end 9275 _tmp = apply(:_StyleClose) 9276 unless _tmp 9277 self.pos = _save 9278 end 9279 break 9280 end # end sequence 9281 9282 set_failed_rule :_InStyleTags unless _tmp 9283 return _tmp 9284 end 9285 9286 # StyleBlock = < InStyleTags > @BlankLine* { if css? then RDoc::Markup::Raw.new text end } 9287 def _StyleBlock 9288 9289 _save = self.pos 9290 while true # sequence 9291 _text_start = self.pos 9292 _tmp = apply(:_InStyleTags) 9293 if _tmp 9294 text = get_text(_text_start) 9295 end 9296 unless _tmp 9297 self.pos = _save 9298 break 9299 end 9300 while true 9301 _tmp = _BlankLine() 9302 break unless _tmp 9303 end 9304 _tmp = true 9305 unless _tmp 9306 self.pos = _save 9307 break 9308 end 9309 @result = begin; if css? then 9310 RDoc::Markup::Raw.new text 9311 end ; end 9312 _tmp = true 9313 unless _tmp 9314 self.pos = _save 9315 end 9316 break 9317 end # end sequence 9318 9319 set_failed_rule :_StyleBlock unless _tmp 9320 return _tmp 9321 end 9322 9323 # Inlines = (!@Endline Inline:i { i } | @Endline:c &Inline { c })+:chunks @Endline? { chunks } 9324 def _Inlines 9325 9326 _save = self.pos 9327 while true # sequence 9328 _save1 = self.pos 9329 _ary = [] 9330 9331 _save2 = self.pos 9332 while true # choice 9333 9334 _save3 = self.pos 9335 while true # sequence 9336 _save4 = self.pos 9337 _tmp = _Endline() 9338 _tmp = _tmp ? nil : true 9339 self.pos = _save4 9340 unless _tmp 9341 self.pos = _save3 9342 break 9343 end 9344 _tmp = apply(:_Inline) 9345 i = @result 9346 unless _tmp 9347 self.pos = _save3 9348 break 9349 end 9350 @result = begin; i ; end 9351 _tmp = true 9352 unless _tmp 9353 self.pos = _save3 9354 end 9355 break 9356 end # end sequence 9357 9358 break if _tmp 9359 self.pos = _save2 9360 9361 _save5 = self.pos 9362 while true # sequence 9363 _tmp = _Endline() 9364 c = @result 9365 unless _tmp 9366 self.pos = _save5 9367 break 9368 end 9369 _save6 = self.pos 9370 _tmp = apply(:_Inline) 9371 self.pos = _save6 9372 unless _tmp 9373 self.pos = _save5 9374 break 9375 end 9376 @result = begin; c ; end 9377 _tmp = true 9378 unless _tmp 9379 self.pos = _save5 9380 end 9381 break 9382 end # end sequence 9383 9384 break if _tmp 9385 self.pos = _save2 9386 break 9387 end # end choice 9388 9389 if _tmp 9390 _ary << @result 9391 while true 9392 9393 _save7 = self.pos 9394 while true # choice 9395 9396 _save8 = self.pos 9397 while true # sequence 9398 _save9 = self.pos 9399 _tmp = _Endline() 9400 _tmp = _tmp ? nil : true 9401 self.pos = _save9 9402 unless _tmp 9403 self.pos = _save8 9404 break 9405 end 9406 _tmp = apply(:_Inline) 9407 i = @result 9408 unless _tmp 9409 self.pos = _save8 9410 break 9411 end 9412 @result = begin; i ; end 9413 _tmp = true 9414 unless _tmp 9415 self.pos = _save8 9416 end 9417 break 9418 end # end sequence 9419 9420 break if _tmp 9421 self.pos = _save7 9422 9423 _save10 = self.pos 9424 while true # sequence 9425 _tmp = _Endline() 9426 c = @result 9427 unless _tmp 9428 self.pos = _save10 9429 break 9430 end 9431 _save11 = self.pos 9432 _tmp = apply(:_Inline) 9433 self.pos = _save11 9434 unless _tmp 9435 self.pos = _save10 9436 break 9437 end 9438 @result = begin; c ; end 9439 _tmp = true 9440 unless _tmp 9441 self.pos = _save10 9442 end 9443 break 9444 end # end sequence 9445 9446 break if _tmp 9447 self.pos = _save7 9448 break 9449 end # end choice 9450 9451 _ary << @result if _tmp 9452 break unless _tmp 9453 end 9454 _tmp = true 9455 @result = _ary 9456 else 9457 self.pos = _save1 9458 end 9459 chunks = @result 9460 unless _tmp 9461 self.pos = _save 9462 break 9463 end 9464 _save12 = self.pos 9465 _tmp = _Endline() 9466 unless _tmp 9467 _tmp = true 9468 self.pos = _save12 9469 end 9470 unless _tmp 9471 self.pos = _save 9472 break 9473 end 9474 @result = begin; chunks ; end 9475 _tmp = true 9476 unless _tmp 9477 self.pos = _save 9478 end 9479 break 9480 end # end sequence 9481 9482 set_failed_rule :_Inlines unless _tmp 9483 return _tmp 9484 end 9485 9486 # Inline = (Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol) 9487 def _Inline 9488 9489 _save = self.pos 9490 while true # choice 9491 _tmp = apply(:_Str) 9492 break if _tmp 9493 self.pos = _save 9494 _tmp = _Endline() 9495 break if _tmp 9496 self.pos = _save 9497 _tmp = apply(:_UlOrStarLine) 9498 break if _tmp 9499 self.pos = _save 9500 _tmp = _Space() 9501 break if _tmp 9502 self.pos = _save 9503 _tmp = apply(:_Strong) 9504 break if _tmp 9505 self.pos = _save 9506 _tmp = apply(:_Emph) 9507 break if _tmp 9508 self.pos = _save 9509 _tmp = apply(:_Strike) 9510 break if _tmp 9511 self.pos = _save 9512 _tmp = apply(:_Image) 9513 break if _tmp 9514 self.pos = _save 9515 _tmp = apply(:_Link) 9516 break if _tmp 9517 self.pos = _save 9518 _tmp = apply(:_NoteReference) 9519 break if _tmp 9520 self.pos = _save 9521 _tmp = apply(:_InlineNote) 9522 break if _tmp 9523 self.pos = _save 9524 _tmp = apply(:_Code) 9525 break if _tmp 9526 self.pos = _save 9527 _tmp = apply(:_RawHtml) 9528 break if _tmp 9529 self.pos = _save 9530 _tmp = apply(:_Entity) 9531 break if _tmp 9532 self.pos = _save 9533 _tmp = apply(:_EscapedChar) 9534 break if _tmp 9535 self.pos = _save 9536 _tmp = apply(:_Symbol) 9537 break if _tmp 9538 self.pos = _save 9539 break 9540 end # end choice 9541 9542 set_failed_rule :_Inline unless _tmp 9543 return _tmp 9544 end 9545 9546 # Space = @Spacechar+ { " " } 9547 def _Space 9548 9549 _save = self.pos 9550 while true # sequence 9551 _save1 = self.pos 9552 _tmp = _Spacechar() 9553 if _tmp 9554 while true 9555 _tmp = _Spacechar() 9556 break unless _tmp 9557 end 9558 _tmp = true 9559 else 9560 self.pos = _save1 9561 end 9562 unless _tmp 9563 self.pos = _save 9564 break 9565 end 9566 @result = begin; " " ; end 9567 _tmp = true 9568 unless _tmp 9569 self.pos = _save 9570 end 9571 break 9572 end # end sequence 9573 9574 set_failed_rule :_Space unless _tmp 9575 return _tmp 9576 end 9577 9578 # Str = @StartList:a < @NormalChar+ > { a = text } (StrChunk:c { a << c })* { a } 9579 def _Str 9580 9581 _save = self.pos 9582 while true # sequence 9583 _tmp = _StartList() 9584 a = @result 9585 unless _tmp 9586 self.pos = _save 9587 break 9588 end 9589 _text_start = self.pos 9590 _save1 = self.pos 9591 _tmp = _NormalChar() 9592 if _tmp 9593 while true 9594 _tmp = _NormalChar() 9595 break unless _tmp 9596 end 9597 _tmp = true 9598 else 9599 self.pos = _save1 9600 end 9601 if _tmp 9602 text = get_text(_text_start) 9603 end 9604 unless _tmp 9605 self.pos = _save 9606 break 9607 end 9608 @result = begin; a = text ; end 9609 _tmp = true 9610 unless _tmp 9611 self.pos = _save 9612 break 9613 end 9614 while true 9615 9616 _save3 = self.pos 9617 while true # sequence 9618 _tmp = apply(:_StrChunk) 9619 c = @result 9620 unless _tmp 9621 self.pos = _save3 9622 break 9623 end 9624 @result = begin; a << c ; end 9625 _tmp = true 9626 unless _tmp 9627 self.pos = _save3 9628 end 9629 break 9630 end # end sequence 9631 9632 break unless _tmp 9633 end 9634 _tmp = true 9635 unless _tmp 9636 self.pos = _save 9637 break 9638 end 9639 @result = begin; a ; end 9640 _tmp = true 9641 unless _tmp 9642 self.pos = _save 9643 end 9644 break 9645 end # end sequence 9646 9647 set_failed_rule :_Str unless _tmp 9648 return _tmp 9649 end 9650 9651 # StrChunk = < (@NormalChar | /_+/ &Alphanumeric)+ > { text } 9652 def _StrChunk 9653 9654 _save = self.pos 9655 while true # sequence 9656 _text_start = self.pos 9657 _save1 = self.pos 9658 9659 _save2 = self.pos 9660 while true # choice 9661 _tmp = _NormalChar() 9662 break if _tmp 9663 self.pos = _save2 9664 9665 _save3 = self.pos 9666 while true # sequence 9667 _tmp = scan(/\A(?-mix:_+)/) 9668 unless _tmp 9669 self.pos = _save3 9670 break 9671 end 9672 _save4 = self.pos 9673 _tmp = apply(:_Alphanumeric) 9674 self.pos = _save4 9675 unless _tmp 9676 self.pos = _save3 9677 end 9678 break 9679 end # end sequence 9680 9681 break if _tmp 9682 self.pos = _save2 9683 break 9684 end # end choice 9685 9686 if _tmp 9687 while true 9688 9689 _save5 = self.pos 9690 while true # choice 9691 _tmp = _NormalChar() 9692 break if _tmp 9693 self.pos = _save5 9694 9695 _save6 = self.pos 9696 while true # sequence 9697 _tmp = scan(/\A(?-mix:_+)/) 9698 unless _tmp 9699 self.pos = _save6 9700 break 9701 end 9702 _save7 = self.pos 9703 _tmp = apply(:_Alphanumeric) 9704 self.pos = _save7 9705 unless _tmp 9706 self.pos = _save6 9707 end 9708 break 9709 end # end sequence 9710 9711 break if _tmp 9712 self.pos = _save5 9713 break 9714 end # end choice 9715 9716 break unless _tmp 9717 end 9718 _tmp = true 9719 else 9720 self.pos = _save1 9721 end 9722 if _tmp 9723 text = get_text(_text_start) 9724 end 9725 unless _tmp 9726 self.pos = _save 9727 break 9728 end 9729 @result = begin; text ; end 9730 _tmp = true 9731 unless _tmp 9732 self.pos = _save 9733 end 9734 break 9735 end # end sequence 9736 9737 set_failed_rule :_StrChunk unless _tmp 9738 return _tmp 9739 end 9740 9741 # EscapedChar = "\\" !@Newline < /[:\\`|*_{}\[\]()#+.!><-]/ > { text } 9742 def _EscapedChar 9743 9744 _save = self.pos 9745 while true # sequence 9746 _tmp = match_string("\\") 9747 unless _tmp 9748 self.pos = _save 9749 break 9750 end 9751 _save1 = self.pos 9752 _tmp = _Newline() 9753 _tmp = _tmp ? nil : true 9754 self.pos = _save1 9755 unless _tmp 9756 self.pos = _save 9757 break 9758 end 9759 _text_start = self.pos 9760 _tmp = scan(/\A(?-mix:[:\\`|*_{}\[\]()#+.!><-])/) 9761 if _tmp 9762 text = get_text(_text_start) 9763 end 9764 unless _tmp 9765 self.pos = _save 9766 break 9767 end 9768 @result = begin; text ; end 9769 _tmp = true 9770 unless _tmp 9771 self.pos = _save 9772 end 9773 break 9774 end # end sequence 9775 9776 set_failed_rule :_EscapedChar unless _tmp 9777 return _tmp 9778 end 9779 9780 # Entity = (HexEntity | DecEntity | CharEntity):a { a } 9781 def _Entity 9782 9783 _save = self.pos 9784 while true # sequence 9785 9786 _save1 = self.pos 9787 while true # choice 9788 _tmp = apply(:_HexEntity) 9789 break if _tmp 9790 self.pos = _save1 9791 _tmp = apply(:_DecEntity) 9792 break if _tmp 9793 self.pos = _save1 9794 _tmp = apply(:_CharEntity) 9795 break if _tmp 9796 self.pos = _save1 9797 break 9798 end # end choice 9799 9800 a = @result 9801 unless _tmp 9802 self.pos = _save 9803 break 9804 end 9805 @result = begin; a ; end 9806 _tmp = true 9807 unless _tmp 9808 self.pos = _save 9809 end 9810 break 9811 end # end sequence 9812 9813 set_failed_rule :_Entity unless _tmp 9814 return _tmp 9815 end 9816 9817 # Endline = (@LineBreak | @TerminalEndline | @NormalEndline) 9818 def _Endline 9819 9820 _save = self.pos 9821 while true # choice 9822 _tmp = _LineBreak() 9823 break if _tmp 9824 self.pos = _save 9825 _tmp = _TerminalEndline() 9826 break if _tmp 9827 self.pos = _save 9828 _tmp = _NormalEndline() 9829 break if _tmp 9830 self.pos = _save 9831 break 9832 end # end choice 9833 9834 set_failed_rule :_Endline unless _tmp 9835 return _tmp 9836 end 9837 9838 # NormalEndline = @Sp @Newline !@BlankLine !">" !AtxStart !(Line /={1,}|-{1,}/ @Newline) { "\n" } 9839 def _NormalEndline 9840 9841 _save = self.pos 9842 while true # sequence 9843 _tmp = _Sp() 9844 unless _tmp 9845 self.pos = _save 9846 break 9847 end 9848 _tmp = _Newline() 9849 unless _tmp 9850 self.pos = _save 9851 break 9852 end 9853 _save1 = self.pos 9854 _tmp = _BlankLine() 9855 _tmp = _tmp ? nil : true 9856 self.pos = _save1 9857 unless _tmp 9858 self.pos = _save 9859 break 9860 end 9861 _save2 = self.pos 9862 _tmp = match_string(">") 9863 _tmp = _tmp ? nil : true 9864 self.pos = _save2 9865 unless _tmp 9866 self.pos = _save 9867 break 9868 end 9869 _save3 = self.pos 9870 _tmp = apply(:_AtxStart) 9871 _tmp = _tmp ? nil : true 9872 self.pos = _save3 9873 unless _tmp 9874 self.pos = _save 9875 break 9876 end 9877 _save4 = self.pos 9878 9879 _save5 = self.pos 9880 while true # sequence 9881 _tmp = apply(:_Line) 9882 unless _tmp 9883 self.pos = _save5 9884 break 9885 end 9886 _tmp = scan(/\A(?-mix:={1,}|-{1,})/) 9887 unless _tmp 9888 self.pos = _save5 9889 break 9890 end 9891 _tmp = _Newline() 9892 unless _tmp 9893 self.pos = _save5 9894 end 9895 break 9896 end # end sequence 9897 9898 _tmp = _tmp ? nil : true 9899 self.pos = _save4 9900 unless _tmp 9901 self.pos = _save 9902 break 9903 end 9904 @result = begin; "\n" ; end 9905 _tmp = true 9906 unless _tmp 9907 self.pos = _save 9908 end 9909 break 9910 end # end sequence 9911 9912 set_failed_rule :_NormalEndline unless _tmp 9913 return _tmp 9914 end 9915 9916 # TerminalEndline = @Sp @Newline @Eof 9917 def _TerminalEndline 9918 9919 _save = self.pos 9920 while true # sequence 9921 _tmp = _Sp() 9922 unless _tmp 9923 self.pos = _save 9924 break 9925 end 9926 _tmp = _Newline() 9927 unless _tmp 9928 self.pos = _save 9929 break 9930 end 9931 _tmp = _Eof() 9932 unless _tmp 9933 self.pos = _save 9934 end 9935 break 9936 end # end sequence 9937 9938 set_failed_rule :_TerminalEndline unless _tmp 9939 return _tmp 9940 end 9941 9942 # LineBreak = " " @NormalEndline { RDoc::Markup::HardBreak.new } 9943 def _LineBreak 9944 9945 _save = self.pos 9946 while true # sequence 9947 _tmp = match_string(" ") 9948 unless _tmp 9949 self.pos = _save 9950 break 9951 end 9952 _tmp = _NormalEndline() 9953 unless _tmp 9954 self.pos = _save 9955 break 9956 end 9957 @result = begin; RDoc::Markup::HardBreak.new ; end 9958 _tmp = true 9959 unless _tmp 9960 self.pos = _save 9961 end 9962 break 9963 end # end sequence 9964 9965 set_failed_rule :_LineBreak unless _tmp 9966 return _tmp 9967 end 9968 9969 # Symbol = < @SpecialChar > { text } 9970 def _Symbol 9971 9972 _save = self.pos 9973 while true # sequence 9974 _text_start = self.pos 9975 _tmp = _SpecialChar() 9976 if _tmp 9977 text = get_text(_text_start) 9978 end 9979 unless _tmp 9980 self.pos = _save 9981 break 9982 end 9983 @result = begin; text ; end 9984 _tmp = true 9985 unless _tmp 9986 self.pos = _save 9987 end 9988 break 9989 end # end sequence 9990 9991 set_failed_rule :_Symbol unless _tmp 9992 return _tmp 9993 end 9994 9995 # UlOrStarLine = (UlLine | StarLine):a { a } 9996 def _UlOrStarLine 9997 9998 _save = self.pos 9999 while true # sequence 10000 10001 _save1 = self.pos 10002 while true # choice 10003 _tmp = apply(:_UlLine) 10004 break if _tmp 10005 self.pos = _save1 10006 _tmp = apply(:_StarLine) 10007 break if _tmp 10008 self.pos = _save1 10009 break 10010 end # end choice 10011 10012 a = @result 10013 unless _tmp 10014 self.pos = _save 10015 break 10016 end 10017 @result = begin; a ; end 10018 _tmp = true 10019 unless _tmp 10020 self.pos = _save 10021 end 10022 break 10023 end # end sequence 10024 10025 set_failed_rule :_UlOrStarLine unless _tmp 10026 return _tmp 10027 end 10028 10029 # StarLine = (< /\*{4,}/ > { text } | < @Spacechar /\*+/ &@Spacechar > { text }) 10030 def _StarLine 10031 10032 _save = self.pos 10033 while true # choice 10034 10035 _save1 = self.pos 10036 while true # sequence 10037 _text_start = self.pos 10038 _tmp = scan(/\A(?-mix:\*{4,})/) 10039 if _tmp 10040 text = get_text(_text_start) 10041 end 10042 unless _tmp 10043 self.pos = _save1 10044 break 10045 end 10046 @result = begin; text ; end 10047 _tmp = true 10048 unless _tmp 10049 self.pos = _save1 10050 end 10051 break 10052 end # end sequence 10053 10054 break if _tmp 10055 self.pos = _save 10056 10057 _save2 = self.pos 10058 while true # sequence 10059 _text_start = self.pos 10060 10061 _save3 = self.pos 10062 while true # sequence 10063 _tmp = _Spacechar() 10064 unless _tmp 10065 self.pos = _save3 10066 break 10067 end 10068 _tmp = scan(/\A(?-mix:\*+)/) 10069 unless _tmp 10070 self.pos = _save3 10071 break 10072 end 10073 _save4 = self.pos 10074 _tmp = _Spacechar() 10075 self.pos = _save4 10076 unless _tmp 10077 self.pos = _save3 10078 end 10079 break 10080 end # end sequence 10081 10082 if _tmp 10083 text = get_text(_text_start) 10084 end 10085 unless _tmp 10086 self.pos = _save2 10087 break 10088 end 10089 @result = begin; text ; end 10090 _tmp = true 10091 unless _tmp 10092 self.pos = _save2 10093 end 10094 break 10095 end # end sequence 10096 10097 break if _tmp 10098 self.pos = _save 10099 break 10100 end # end choice 10101 10102 set_failed_rule :_StarLine unless _tmp 10103 return _tmp 10104 end 10105 10106 # UlLine = (< /_{4,}/ > { text } | < @Spacechar /_+/ &@Spacechar > { text }) 10107 def _UlLine 10108 10109 _save = self.pos 10110 while true # choice 10111 10112 _save1 = self.pos 10113 while true # sequence 10114 _text_start = self.pos 10115 _tmp = scan(/\A(?-mix:_{4,})/) 10116 if _tmp 10117 text = get_text(_text_start) 10118 end 10119 unless _tmp 10120 self.pos = _save1 10121 break 10122 end 10123 @result = begin; text ; end 10124 _tmp = true 10125 unless _tmp 10126 self.pos = _save1 10127 end 10128 break 10129 end # end sequence 10130 10131 break if _tmp 10132 self.pos = _save 10133 10134 _save2 = self.pos 10135 while true # sequence 10136 _text_start = self.pos 10137 10138 _save3 = self.pos 10139 while true # sequence 10140 _tmp = _Spacechar() 10141 unless _tmp 10142 self.pos = _save3 10143 break 10144 end 10145 _tmp = scan(/\A(?-mix:_+)/) 10146 unless _tmp 10147 self.pos = _save3 10148 break 10149 end 10150 _save4 = self.pos 10151 _tmp = _Spacechar() 10152 self.pos = _save4 10153 unless _tmp 10154 self.pos = _save3 10155 end 10156 break 10157 end # end sequence 10158 10159 if _tmp 10160 text = get_text(_text_start) 10161 end 10162 unless _tmp 10163 self.pos = _save2 10164 break 10165 end 10166 @result = begin; text ; end 10167 _tmp = true 10168 unless _tmp 10169 self.pos = _save2 10170 end 10171 break 10172 end # end sequence 10173 10174 break if _tmp 10175 self.pos = _save 10176 break 10177 end # end choice 10178 10179 set_failed_rule :_UlLine unless _tmp 10180 return _tmp 10181 end 10182 10183 # Emph = (EmphStar | EmphUl) 10184 def _Emph 10185 10186 _save = self.pos 10187 while true # choice 10188 _tmp = apply(:_EmphStar) 10189 break if _tmp 10190 self.pos = _save 10191 _tmp = apply(:_EmphUl) 10192 break if _tmp 10193 self.pos = _save 10194 break 10195 end # end choice 10196 10197 set_failed_rule :_Emph unless _tmp 10198 return _tmp 10199 end 10200 10201 # Whitespace = (@Spacechar | @Newline) 10202 def _Whitespace 10203 10204 _save = self.pos 10205 while true # choice 10206 _tmp = _Spacechar() 10207 break if _tmp 10208 self.pos = _save 10209 _tmp = _Newline() 10210 break if _tmp 10211 self.pos = _save 10212 break 10213 end # end choice 10214 10215 set_failed_rule :_Whitespace unless _tmp 10216 return _tmp 10217 end 10218 10219 # EmphStar = "*" !@Whitespace @StartList:a (!"*" Inline:b { a << b } | StrongStar:b { a << b })+ "*" { emphasis a.join } 10220 def _EmphStar 10221 10222 _save = self.pos 10223 while true # sequence 10224 _tmp = match_string("*") 10225 unless _tmp 10226 self.pos = _save 10227 break 10228 end 10229 _save1 = self.pos 10230 _tmp = _Whitespace() 10231 _tmp = _tmp ? nil : true 10232 self.pos = _save1 10233 unless _tmp 10234 self.pos = _save 10235 break 10236 end 10237 _tmp = _StartList() 10238 a = @result 10239 unless _tmp 10240 self.pos = _save 10241 break 10242 end 10243 _save2 = self.pos 10244 10245 _save3 = self.pos 10246 while true # choice 10247 10248 _save4 = self.pos 10249 while true # sequence 10250 _save5 = self.pos 10251 _tmp = match_string("*") 10252 _tmp = _tmp ? nil : true 10253 self.pos = _save5 10254 unless _tmp 10255 self.pos = _save4 10256 break 10257 end 10258 _tmp = apply(:_Inline) 10259 b = @result 10260 unless _tmp 10261 self.pos = _save4 10262 break 10263 end 10264 @result = begin; a << b ; end 10265 _tmp = true 10266 unless _tmp 10267 self.pos = _save4 10268 end 10269 break 10270 end # end sequence 10271 10272 break if _tmp 10273 self.pos = _save3 10274 10275 _save6 = self.pos 10276 while true # sequence 10277 _tmp = apply(:_StrongStar) 10278 b = @result 10279 unless _tmp 10280 self.pos = _save6 10281 break 10282 end 10283 @result = begin; a << b ; end 10284 _tmp = true 10285 unless _tmp 10286 self.pos = _save6 10287 end 10288 break 10289 end # end sequence 10290 10291 break if _tmp 10292 self.pos = _save3 10293 break 10294 end # end choice 10295 10296 if _tmp 10297 while true 10298 10299 _save7 = self.pos 10300 while true # choice 10301 10302 _save8 = self.pos 10303 while true # sequence 10304 _save9 = self.pos 10305 _tmp = match_string("*") 10306 _tmp = _tmp ? nil : true 10307 self.pos = _save9 10308 unless _tmp 10309 self.pos = _save8 10310 break 10311 end 10312 _tmp = apply(:_Inline) 10313 b = @result 10314 unless _tmp 10315 self.pos = _save8 10316 break 10317 end 10318 @result = begin; a << b ; end 10319 _tmp = true 10320 unless _tmp 10321 self.pos = _save8 10322 end 10323 break 10324 end # end sequence 10325 10326 break if _tmp 10327 self.pos = _save7 10328 10329 _save10 = self.pos 10330 while true # sequence 10331 _tmp = apply(:_StrongStar) 10332 b = @result 10333 unless _tmp 10334 self.pos = _save10 10335 break 10336 end 10337 @result = begin; a << b ; end 10338 _tmp = true 10339 unless _tmp 10340 self.pos = _save10 10341 end 10342 break 10343 end # end sequence 10344 10345 break if _tmp 10346 self.pos = _save7 10347 break 10348 end # end choice 10349 10350 break unless _tmp 10351 end 10352 _tmp = true 10353 else 10354 self.pos = _save2 10355 end 10356 unless _tmp 10357 self.pos = _save 10358 break 10359 end 10360 _tmp = match_string("*") 10361 unless _tmp 10362 self.pos = _save 10363 break 10364 end 10365 @result = begin; emphasis a.join ; end 10366 _tmp = true 10367 unless _tmp 10368 self.pos = _save 10369 end 10370 break 10371 end # end sequence 10372 10373 set_failed_rule :_EmphStar unless _tmp 10374 return _tmp 10375 end 10376 10377 # EmphUl = "_" !@Whitespace @StartList:a (!"_" Inline:b { a << b } | StrongUl:b { a << b })+ "_" { emphasis a.join } 10378 def _EmphUl 10379 10380 _save = self.pos 10381 while true # sequence 10382 _tmp = match_string("_") 10383 unless _tmp 10384 self.pos = _save 10385 break 10386 end 10387 _save1 = self.pos 10388 _tmp = _Whitespace() 10389 _tmp = _tmp ? nil : true 10390 self.pos = _save1 10391 unless _tmp 10392 self.pos = _save 10393 break 10394 end 10395 _tmp = _StartList() 10396 a = @result 10397 unless _tmp 10398 self.pos = _save 10399 break 10400 end 10401 _save2 = self.pos 10402 10403 _save3 = self.pos 10404 while true # choice 10405 10406 _save4 = self.pos 10407 while true # sequence 10408 _save5 = self.pos 10409 _tmp = match_string("_") 10410 _tmp = _tmp ? nil : true 10411 self.pos = _save5 10412 unless _tmp 10413 self.pos = _save4 10414 break 10415 end 10416 _tmp = apply(:_Inline) 10417 b = @result 10418 unless _tmp 10419 self.pos = _save4 10420 break 10421 end 10422 @result = begin; a << b ; end 10423 _tmp = true 10424 unless _tmp 10425 self.pos = _save4 10426 end 10427 break 10428 end # end sequence 10429 10430 break if _tmp 10431 self.pos = _save3 10432 10433 _save6 = self.pos 10434 while true # sequence 10435 _tmp = apply(:_StrongUl) 10436 b = @result 10437 unless _tmp 10438 self.pos = _save6 10439 break 10440 end 10441 @result = begin; a << b ; end 10442 _tmp = true 10443 unless _tmp 10444 self.pos = _save6 10445 end 10446 break 10447 end # end sequence 10448 10449 break if _tmp 10450 self.pos = _save3 10451 break 10452 end # end choice 10453 10454 if _tmp 10455 while true 10456 10457 _save7 = self.pos 10458 while true # choice 10459 10460 _save8 = self.pos 10461 while true # sequence 10462 _save9 = self.pos 10463 _tmp = match_string("_") 10464 _tmp = _tmp ? nil : true 10465 self.pos = _save9 10466 unless _tmp 10467 self.pos = _save8 10468 break 10469 end 10470 _tmp = apply(:_Inline) 10471 b = @result 10472 unless _tmp 10473 self.pos = _save8 10474 break 10475 end 10476 @result = begin; a << b ; end 10477 _tmp = true 10478 unless _tmp 10479 self.pos = _save8 10480 end 10481 break 10482 end # end sequence 10483 10484 break if _tmp 10485 self.pos = _save7 10486 10487 _save10 = self.pos 10488 while true # sequence 10489 _tmp = apply(:_StrongUl) 10490 b = @result 10491 unless _tmp 10492 self.pos = _save10 10493 break 10494 end 10495 @result = begin; a << b ; end 10496 _tmp = true 10497 unless _tmp 10498 self.pos = _save10 10499 end 10500 break 10501 end # end sequence 10502 10503 break if _tmp 10504 self.pos = _save7 10505 break 10506 end # end choice 10507 10508 break unless _tmp 10509 end 10510 _tmp = true 10511 else 10512 self.pos = _save2 10513 end 10514 unless _tmp 10515 self.pos = _save 10516 break 10517 end 10518 _tmp = match_string("_") 10519 unless _tmp 10520 self.pos = _save 10521 break 10522 end 10523 @result = begin; emphasis a.join ; end 10524 _tmp = true 10525 unless _tmp 10526 self.pos = _save 10527 end 10528 break 10529 end # end sequence 10530 10531 set_failed_rule :_EmphUl unless _tmp 10532 return _tmp 10533 end 10534 10535 # Strong = (StrongStar | StrongUl) 10536 def _Strong 10537 10538 _save = self.pos 10539 while true # choice 10540 _tmp = apply(:_StrongStar) 10541 break if _tmp 10542 self.pos = _save 10543 _tmp = apply(:_StrongUl) 10544 break if _tmp 10545 self.pos = _save 10546 break 10547 end # end choice 10548 10549 set_failed_rule :_Strong unless _tmp 10550 return _tmp 10551 end 10552 10553 # StrongStar = "**" !@Whitespace @StartList:a (!"**" Inline:b { a << b })+ "**" { strong a.join } 10554 def _StrongStar 10555 10556 _save = self.pos 10557 while true # sequence 10558 _tmp = match_string("**") 10559 unless _tmp 10560 self.pos = _save 10561 break 10562 end 10563 _save1 = self.pos 10564 _tmp = _Whitespace() 10565 _tmp = _tmp ? nil : true 10566 self.pos = _save1 10567 unless _tmp 10568 self.pos = _save 10569 break 10570 end 10571 _tmp = _StartList() 10572 a = @result 10573 unless _tmp 10574 self.pos = _save 10575 break 10576 end 10577 _save2 = self.pos 10578 10579 _save3 = self.pos 10580 while true # sequence 10581 _save4 = self.pos 10582 _tmp = match_string("**") 10583 _tmp = _tmp ? nil : true 10584 self.pos = _save4 10585 unless _tmp 10586 self.pos = _save3 10587 break 10588 end 10589 _tmp = apply(:_Inline) 10590 b = @result 10591 unless _tmp 10592 self.pos = _save3 10593 break 10594 end 10595 @result = begin; a << b ; end 10596 _tmp = true 10597 unless _tmp 10598 self.pos = _save3 10599 end 10600 break 10601 end # end sequence 10602 10603 if _tmp 10604 while true 10605 10606 _save5 = self.pos 10607 while true # sequence 10608 _save6 = self.pos 10609 _tmp = match_string("**") 10610 _tmp = _tmp ? nil : true 10611 self.pos = _save6 10612 unless _tmp 10613 self.pos = _save5 10614 break 10615 end 10616 _tmp = apply(:_Inline) 10617 b = @result 10618 unless _tmp 10619 self.pos = _save5 10620 break 10621 end 10622 @result = begin; a << b ; end 10623 _tmp = true 10624 unless _tmp 10625 self.pos = _save5 10626 end 10627 break 10628 end # end sequence 10629 10630 break unless _tmp 10631 end 10632 _tmp = true 10633 else 10634 self.pos = _save2 10635 end 10636 unless _tmp 10637 self.pos = _save 10638 break 10639 end 10640 _tmp = match_string("**") 10641 unless _tmp 10642 self.pos = _save 10643 break 10644 end 10645 @result = begin; strong a.join ; end 10646 _tmp = true 10647 unless _tmp 10648 self.pos = _save 10649 end 10650 break 10651 end # end sequence 10652 10653 set_failed_rule :_StrongStar unless _tmp 10654 return _tmp 10655 end 10656 10657 # StrongUl = "__" !@Whitespace @StartList:a (!"__" Inline:b { a << b })+ "__" { strong a.join } 10658 def _StrongUl 10659 10660 _save = self.pos 10661 while true # sequence 10662 _tmp = match_string("__") 10663 unless _tmp 10664 self.pos = _save 10665 break 10666 end 10667 _save1 = self.pos 10668 _tmp = _Whitespace() 10669 _tmp = _tmp ? nil : true 10670 self.pos = _save1 10671 unless _tmp 10672 self.pos = _save 10673 break 10674 end 10675 _tmp = _StartList() 10676 a = @result 10677 unless _tmp 10678 self.pos = _save 10679 break 10680 end 10681 _save2 = self.pos 10682 10683 _save3 = self.pos 10684 while true # sequence 10685 _save4 = self.pos 10686 _tmp = match_string("__") 10687 _tmp = _tmp ? nil : true 10688 self.pos = _save4 10689 unless _tmp 10690 self.pos = _save3 10691 break 10692 end 10693 _tmp = apply(:_Inline) 10694 b = @result 10695 unless _tmp 10696 self.pos = _save3 10697 break 10698 end 10699 @result = begin; a << b ; end 10700 _tmp = true 10701 unless _tmp 10702 self.pos = _save3 10703 end 10704 break 10705 end # end sequence 10706 10707 if _tmp 10708 while true 10709 10710 _save5 = self.pos 10711 while true # sequence 10712 _save6 = self.pos 10713 _tmp = match_string("__") 10714 _tmp = _tmp ? nil : true 10715 self.pos = _save6 10716 unless _tmp 10717 self.pos = _save5 10718 break 10719 end 10720 _tmp = apply(:_Inline) 10721 b = @result 10722 unless _tmp 10723 self.pos = _save5 10724 break 10725 end 10726 @result = begin; a << b ; end 10727 _tmp = true 10728 unless _tmp 10729 self.pos = _save5 10730 end 10731 break 10732 end # end sequence 10733 10734 break unless _tmp 10735 end 10736 _tmp = true 10737 else 10738 self.pos = _save2 10739 end 10740 unless _tmp 10741 self.pos = _save 10742 break 10743 end 10744 _tmp = match_string("__") 10745 unless _tmp 10746 self.pos = _save 10747 break 10748 end 10749 @result = begin; strong a.join ; end 10750 _tmp = true 10751 unless _tmp 10752 self.pos = _save 10753 end 10754 break 10755 end # end sequence 10756 10757 set_failed_rule :_StrongUl unless _tmp 10758 return _tmp 10759 end 10760 10761 # Strike = &{ strike? } "~~" !@Whitespace @StartList:a (!"~~" Inline:b { a << b })+ "~~" { strike a.join } 10762 def _Strike 10763 10764 _save = self.pos 10765 while true # sequence 10766 _save1 = self.pos 10767 _tmp = begin; strike? ; end 10768 self.pos = _save1 10769 unless _tmp 10770 self.pos = _save 10771 break 10772 end 10773 _tmp = match_string("~~") 10774 unless _tmp 10775 self.pos = _save 10776 break 10777 end 10778 _save2 = self.pos 10779 _tmp = _Whitespace() 10780 _tmp = _tmp ? nil : true 10781 self.pos = _save2 10782 unless _tmp 10783 self.pos = _save 10784 break 10785 end 10786 _tmp = _StartList() 10787 a = @result 10788 unless _tmp 10789 self.pos = _save 10790 break 10791 end 10792 _save3 = self.pos 10793 10794 _save4 = self.pos 10795 while true # sequence 10796 _save5 = self.pos 10797 _tmp = match_string("~~") 10798 _tmp = _tmp ? nil : true 10799 self.pos = _save5 10800 unless _tmp 10801 self.pos = _save4 10802 break 10803 end 10804 _tmp = apply(:_Inline) 10805 b = @result 10806 unless _tmp 10807 self.pos = _save4 10808 break 10809 end 10810 @result = begin; a << b ; end 10811 _tmp = true 10812 unless _tmp 10813 self.pos = _save4 10814 end 10815 break 10816 end # end sequence 10817 10818 if _tmp 10819 while true 10820 10821 _save6 = self.pos 10822 while true # sequence 10823 _save7 = self.pos 10824 _tmp = match_string("~~") 10825 _tmp = _tmp ? nil : true 10826 self.pos = _save7 10827 unless _tmp 10828 self.pos = _save6 10829 break 10830 end 10831 _tmp = apply(:_Inline) 10832 b = @result 10833 unless _tmp 10834 self.pos = _save6 10835 break 10836 end 10837 @result = begin; a << b ; end 10838 _tmp = true 10839 unless _tmp 10840 self.pos = _save6 10841 end 10842 break 10843 end # end sequence 10844 10845 break unless _tmp 10846 end 10847 _tmp = true 10848 else 10849 self.pos = _save3 10850 end 10851 unless _tmp 10852 self.pos = _save 10853 break 10854 end 10855 _tmp = match_string("~~") 10856 unless _tmp 10857 self.pos = _save 10858 break 10859 end 10860 @result = begin; strike a.join ; end 10861 _tmp = true 10862 unless _tmp 10863 self.pos = _save 10864 end 10865 break 10866 end # end sequence 10867 10868 set_failed_rule :_Strike unless _tmp 10869 return _tmp 10870 end 10871 10872 # Image = "!" (ExplicitLink | ReferenceLink):a { "rdoc-image:#{a[/\[(.*)\]/, 1]}" } 10873 def _Image 10874 10875 _save = self.pos 10876 while true # sequence 10877 _tmp = match_string("!") 10878 unless _tmp 10879 self.pos = _save 10880 break 10881 end 10882 10883 _save1 = self.pos 10884 while true # choice 10885 _tmp = apply(:_ExplicitLink) 10886 break if _tmp 10887 self.pos = _save1 10888 _tmp = apply(:_ReferenceLink) 10889 break if _tmp 10890 self.pos = _save1 10891 break 10892 end # end choice 10893 10894 a = @result 10895 unless _tmp 10896 self.pos = _save 10897 break 10898 end 10899 @result = begin; "rdoc-image:#{a[/\[(.*)\]/, 1]}" ; end 10900 _tmp = true 10901 unless _tmp 10902 self.pos = _save 10903 end 10904 break 10905 end # end sequence 10906 10907 set_failed_rule :_Image unless _tmp 10908 return _tmp 10909 end 10910 10911 # Link = (ExplicitLink | ReferenceLink | AutoLink) 10912 def _Link 10913 10914 _save = self.pos 10915 while true # choice 10916 _tmp = apply(:_ExplicitLink) 10917 break if _tmp 10918 self.pos = _save 10919 _tmp = apply(:_ReferenceLink) 10920 break if _tmp 10921 self.pos = _save 10922 _tmp = apply(:_AutoLink) 10923 break if _tmp 10924 self.pos = _save 10925 break 10926 end # end choice 10927 10928 set_failed_rule :_Link unless _tmp 10929 return _tmp 10930 end 10931 10932 # ReferenceLink = (ReferenceLinkDouble | ReferenceLinkSingle) 10933 def _ReferenceLink 10934 10935 _save = self.pos 10936 while true # choice 10937 _tmp = apply(:_ReferenceLinkDouble) 10938 break if _tmp 10939 self.pos = _save 10940 _tmp = apply(:_ReferenceLinkSingle) 10941 break if _tmp 10942 self.pos = _save 10943 break 10944 end # end choice 10945 10946 set_failed_rule :_ReferenceLink unless _tmp 10947 return _tmp 10948 end 10949 10950 # ReferenceLinkDouble = Label:content < Spnl > !"[]" Label:label { link_to content, label, text } 10951 def _ReferenceLinkDouble 10952 10953 _save = self.pos 10954 while true # sequence 10955 _tmp = apply(:_Label) 10956 content = @result 10957 unless _tmp 10958 self.pos = _save 10959 break 10960 end 10961 _text_start = self.pos 10962 _tmp = apply(:_Spnl) 10963 if _tmp 10964 text = get_text(_text_start) 10965 end 10966 unless _tmp 10967 self.pos = _save 10968 break 10969 end 10970 _save1 = self.pos 10971 _tmp = match_string("[]") 10972 _tmp = _tmp ? nil : true 10973 self.pos = _save1 10974 unless _tmp 10975 self.pos = _save 10976 break 10977 end 10978 _tmp = apply(:_Label) 10979 label = @result 10980 unless _tmp 10981 self.pos = _save 10982 break 10983 end 10984 @result = begin; link_to content, label, text ; end 10985 _tmp = true 10986 unless _tmp 10987 self.pos = _save 10988 end 10989 break 10990 end # end sequence 10991 10992 set_failed_rule :_ReferenceLinkDouble unless _tmp 10993 return _tmp 10994 end 10995 10996 # ReferenceLinkSingle = Label:content < (Spnl "[]")? > { link_to content, content, text } 10997 def _ReferenceLinkSingle 10998 10999 _save = self.pos 11000 while true # sequence 11001 _tmp = apply(:_Label) 11002 content = @result 11003 unless _tmp 11004 self.pos = _save 11005 break 11006 end 11007 _text_start = self.pos 11008 _save1 = self.pos 11009 11010 _save2 = self.pos 11011 while true # sequence 11012 _tmp = apply(:_Spnl) 11013 unless _tmp 11014 self.pos = _save2 11015 break 11016 end 11017 _tmp = match_string("[]") 11018 unless _tmp 11019 self.pos = _save2 11020 end 11021 break 11022 end # end sequence 11023 11024 unless _tmp 11025 _tmp = true 11026 self.pos = _save1 11027 end 11028 if _tmp 11029 text = get_text(_text_start) 11030 end 11031 unless _tmp 11032 self.pos = _save 11033 break 11034 end 11035 @result = begin; link_to content, content, text ; end 11036 _tmp = true 11037 unless _tmp 11038 self.pos = _save 11039 end 11040 break 11041 end # end sequence 11042 11043 set_failed_rule :_ReferenceLinkSingle unless _tmp 11044 return _tmp 11045 end 11046 11047 # ExplicitLink = Label:l "(" @Sp Source:s Spnl Title @Sp ")" { "{#{l}}[#{s}]" } 11048 def _ExplicitLink 11049 11050 _save = self.pos 11051 while true # sequence 11052 _tmp = apply(:_Label) 11053 l = @result 11054 unless _tmp 11055 self.pos = _save 11056 break 11057 end 11058 _tmp = match_string("(") 11059 unless _tmp 11060 self.pos = _save 11061 break 11062 end 11063 _tmp = _Sp() 11064 unless _tmp 11065 self.pos = _save 11066 break 11067 end 11068 _tmp = apply(:_Source) 11069 s = @result 11070 unless _tmp 11071 self.pos = _save 11072 break 11073 end 11074 _tmp = apply(:_Spnl) 11075 unless _tmp 11076 self.pos = _save 11077 break 11078 end 11079 _tmp = apply(:_Title) 11080 unless _tmp 11081 self.pos = _save 11082 break 11083 end 11084 _tmp = _Sp() 11085 unless _tmp 11086 self.pos = _save 11087 break 11088 end 11089 _tmp = match_string(")") 11090 unless _tmp 11091 self.pos = _save 11092 break 11093 end 11094 @result = begin; "{#{l}}[#{s}]" ; end 11095 _tmp = true 11096 unless _tmp 11097 self.pos = _save 11098 end 11099 break 11100 end # end sequence 11101 11102 set_failed_rule :_ExplicitLink unless _tmp 11103 return _tmp 11104 end 11105 11106 # Source = ("<" < SourceContents > ">" | < SourceContents >) { text } 11107 def _Source 11108 11109 _save = self.pos 11110 while true # sequence 11111 11112 _save1 = self.pos 11113 while true # choice 11114 11115 _save2 = self.pos 11116 while true # sequence 11117 _tmp = match_string("<") 11118 unless _tmp 11119 self.pos = _save2 11120 break 11121 end 11122 _text_start = self.pos 11123 _tmp = apply(:_SourceContents) 11124 if _tmp 11125 text = get_text(_text_start) 11126 end 11127 unless _tmp 11128 self.pos = _save2 11129 break 11130 end 11131 _tmp = match_string(">") 11132 unless _tmp 11133 self.pos = _save2 11134 end 11135 break 11136 end # end sequence 11137 11138 break if _tmp 11139 self.pos = _save1 11140 _text_start = self.pos 11141 _tmp = apply(:_SourceContents) 11142 if _tmp 11143 text = get_text(_text_start) 11144 end 11145 break if _tmp 11146 self.pos = _save1 11147 break 11148 end # end choice 11149 11150 unless _tmp 11151 self.pos = _save 11152 break 11153 end 11154 @result = begin; text ; end 11155 _tmp = true 11156 unless _tmp 11157 self.pos = _save 11158 end 11159 break 11160 end # end sequence 11161 11162 set_failed_rule :_Source unless _tmp 11163 return _tmp 11164 end 11165 11166 # SourceContents = ((!"(" !")" !">" Nonspacechar)+ | "(" SourceContents ")")* 11167 def _SourceContents 11168 while true 11169 11170 _save1 = self.pos 11171 while true # choice 11172 _save2 = self.pos 11173 11174 _save3 = self.pos 11175 while true # sequence 11176 _save4 = self.pos 11177 _tmp = match_string("(") 11178 _tmp = _tmp ? nil : true 11179 self.pos = _save4 11180 unless _tmp 11181 self.pos = _save3 11182 break 11183 end 11184 _save5 = self.pos 11185 _tmp = match_string(")") 11186 _tmp = _tmp ? nil : true 11187 self.pos = _save5 11188 unless _tmp 11189 self.pos = _save3 11190 break 11191 end 11192 _save6 = self.pos 11193 _tmp = match_string(">") 11194 _tmp = _tmp ? nil : true 11195 self.pos = _save6 11196 unless _tmp 11197 self.pos = _save3 11198 break 11199 end 11200 _tmp = apply(:_Nonspacechar) 11201 unless _tmp 11202 self.pos = _save3 11203 end 11204 break 11205 end # end sequence 11206 11207 if _tmp 11208 while true 11209 11210 _save7 = self.pos 11211 while true # sequence 11212 _save8 = self.pos 11213 _tmp = match_string("(") 11214 _tmp = _tmp ? nil : true 11215 self.pos = _save8 11216 unless _tmp 11217 self.pos = _save7 11218 break 11219 end 11220 _save9 = self.pos 11221 _tmp = match_string(")") 11222 _tmp = _tmp ? nil : true 11223 self.pos = _save9 11224 unless _tmp 11225 self.pos = _save7 11226 break 11227 end 11228 _save10 = self.pos 11229 _tmp = match_string(">") 11230 _tmp = _tmp ? nil : true 11231 self.pos = _save10 11232 unless _tmp 11233 self.pos = _save7 11234 break 11235 end 11236 _tmp = apply(:_Nonspacechar) 11237 unless _tmp 11238 self.pos = _save7 11239 end 11240 break 11241 end # end sequence 11242 11243 break unless _tmp 11244 end 11245 _tmp = true 11246 else 11247 self.pos = _save2 11248 end 11249 break if _tmp 11250 self.pos = _save1 11251 11252 _save11 = self.pos 11253 while true # sequence 11254 _tmp = match_string("(") 11255 unless _tmp 11256 self.pos = _save11 11257 break 11258 end 11259 _tmp = apply(:_SourceContents) 11260 unless _tmp 11261 self.pos = _save11 11262 break 11263 end 11264 _tmp = match_string(")") 11265 unless _tmp 11266 self.pos = _save11 11267 end 11268 break 11269 end # end sequence 11270 11271 break if _tmp 11272 self.pos = _save1 11273 break 11274 end # end choice 11275 11276 break unless _tmp 11277 end 11278 _tmp = true 11279 set_failed_rule :_SourceContents unless _tmp 11280 return _tmp 11281 end 11282 11283 # Title = (TitleSingle | TitleDouble | ""):a { a } 11284 def _Title 11285 11286 _save = self.pos 11287 while true # sequence 11288 11289 _save1 = self.pos 11290 while true # choice 11291 _tmp = apply(:_TitleSingle) 11292 break if _tmp 11293 self.pos = _save1 11294 _tmp = apply(:_TitleDouble) 11295 break if _tmp 11296 self.pos = _save1 11297 _tmp = match_string("") 11298 break if _tmp 11299 self.pos = _save1 11300 break 11301 end # end choice 11302 11303 a = @result 11304 unless _tmp 11305 self.pos = _save 11306 break 11307 end 11308 @result = begin; a ; end 11309 _tmp = true 11310 unless _tmp 11311 self.pos = _save 11312 end 11313 break 11314 end # end sequence 11315 11316 set_failed_rule :_Title unless _tmp 11317 return _tmp 11318 end 11319 11320 # TitleSingle = "'" (!("'" @Sp (")" | @Newline)) .)* "'" 11321 def _TitleSingle 11322 11323 _save = self.pos 11324 while true # sequence 11325 _tmp = match_string("'") 11326 unless _tmp 11327 self.pos = _save 11328 break 11329 end 11330 while true 11331 11332 _save2 = self.pos 11333 while true # sequence 11334 _save3 = self.pos 11335 11336 _save4 = self.pos 11337 while true # sequence 11338 _tmp = match_string("'") 11339 unless _tmp 11340 self.pos = _save4 11341 break 11342 end 11343 _tmp = _Sp() 11344 unless _tmp 11345 self.pos = _save4 11346 break 11347 end 11348 11349 _save5 = self.pos 11350 while true # choice 11351 _tmp = match_string(")") 11352 break if _tmp 11353 self.pos = _save5 11354 _tmp = _Newline() 11355 break if _tmp 11356 self.pos = _save5 11357 break 11358 end # end choice 11359 11360 unless _tmp 11361 self.pos = _save4 11362 end 11363 break 11364 end # end sequence 11365 11366 _tmp = _tmp ? nil : true 11367 self.pos = _save3 11368 unless _tmp 11369 self.pos = _save2 11370 break 11371 end 11372 _tmp = get_byte 11373 unless _tmp 11374 self.pos = _save2 11375 end 11376 break 11377 end # end sequence 11378 11379 break unless _tmp 11380 end 11381 _tmp = true 11382 unless _tmp 11383 self.pos = _save 11384 break 11385 end 11386 _tmp = match_string("'") 11387 unless _tmp 11388 self.pos = _save 11389 end 11390 break 11391 end # end sequence 11392 11393 set_failed_rule :_TitleSingle unless _tmp 11394 return _tmp 11395 end 11396 11397 # TitleDouble = "\"" (!("\"" @Sp (")" | @Newline)) .)* "\"" 11398 def _TitleDouble 11399 11400 _save = self.pos 11401 while true # sequence 11402 _tmp = match_string("\"") 11403 unless _tmp 11404 self.pos = _save 11405 break 11406 end 11407 while true 11408 11409 _save2 = self.pos 11410 while true # sequence 11411 _save3 = self.pos 11412 11413 _save4 = self.pos 11414 while true # sequence 11415 _tmp = match_string("\"") 11416 unless _tmp 11417 self.pos = _save4 11418 break 11419 end 11420 _tmp = _Sp() 11421 unless _tmp 11422 self.pos = _save4 11423 break 11424 end 11425 11426 _save5 = self.pos 11427 while true # choice 11428 _tmp = match_string(")") 11429 break if _tmp 11430 self.pos = _save5 11431 _tmp = _Newline() 11432 break if _tmp 11433 self.pos = _save5 11434 break 11435 end # end choice 11436 11437 unless _tmp 11438 self.pos = _save4 11439 end 11440 break 11441 end # end sequence 11442 11443 _tmp = _tmp ? nil : true 11444 self.pos = _save3 11445 unless _tmp 11446 self.pos = _save2 11447 break 11448 end 11449 _tmp = get_byte 11450 unless _tmp 11451 self.pos = _save2 11452 end 11453 break 11454 end # end sequence 11455 11456 break unless _tmp 11457 end 11458 _tmp = true 11459 unless _tmp 11460 self.pos = _save 11461 break 11462 end 11463 _tmp = match_string("\"") 11464 unless _tmp 11465 self.pos = _save 11466 end 11467 break 11468 end # end sequence 11469 11470 set_failed_rule :_TitleDouble unless _tmp 11471 return _tmp 11472 end 11473 11474 # AutoLink = (AutoLinkUrl | AutoLinkEmail) 11475 def _AutoLink 11476 11477 _save = self.pos 11478 while true # choice 11479 _tmp = apply(:_AutoLinkUrl) 11480 break if _tmp 11481 self.pos = _save 11482 _tmp = apply(:_AutoLinkEmail) 11483 break if _tmp 11484 self.pos = _save 11485 break 11486 end # end choice 11487 11488 set_failed_rule :_AutoLink unless _tmp 11489 return _tmp 11490 end 11491 11492 # AutoLinkUrl = "<" < /[A-Za-z]+/ "://" (!@Newline !">" .)+ > ">" { text } 11493 def _AutoLinkUrl 11494 11495 _save = self.pos 11496 while true # sequence 11497 _tmp = match_string("<") 11498 unless _tmp 11499 self.pos = _save 11500 break 11501 end 11502 _text_start = self.pos 11503 11504 _save1 = self.pos 11505 while true # sequence 11506 _tmp = scan(/\A(?-mix:[A-Za-z]+)/) 11507 unless _tmp 11508 self.pos = _save1 11509 break 11510 end 11511 _tmp = match_string("://") 11512 unless _tmp 11513 self.pos = _save1 11514 break 11515 end 11516 _save2 = self.pos 11517 11518 _save3 = self.pos 11519 while true # sequence 11520 _save4 = self.pos 11521 _tmp = _Newline() 11522 _tmp = _tmp ? nil : true 11523 self.pos = _save4 11524 unless _tmp 11525 self.pos = _save3 11526 break 11527 end 11528 _save5 = self.pos 11529 _tmp = match_string(">") 11530 _tmp = _tmp ? nil : true 11531 self.pos = _save5 11532 unless _tmp 11533 self.pos = _save3 11534 break 11535 end 11536 _tmp = get_byte 11537 unless _tmp 11538 self.pos = _save3 11539 end 11540 break 11541 end # end sequence 11542 11543 if _tmp 11544 while true 11545 11546 _save6 = self.pos 11547 while true # sequence 11548 _save7 = self.pos 11549 _tmp = _Newline() 11550 _tmp = _tmp ? nil : true 11551 self.pos = _save7 11552 unless _tmp 11553 self.pos = _save6 11554 break 11555 end 11556 _save8 = self.pos 11557 _tmp = match_string(">") 11558 _tmp = _tmp ? nil : true 11559 self.pos = _save8 11560 unless _tmp 11561 self.pos = _save6 11562 break 11563 end 11564 _tmp = get_byte 11565 unless _tmp 11566 self.pos = _save6 11567 end 11568 break 11569 end # end sequence 11570 11571 break unless _tmp 11572 end 11573 _tmp = true 11574 else 11575 self.pos = _save2 11576 end 11577 unless _tmp 11578 self.pos = _save1 11579 end 11580 break 11581 end # end sequence 11582 11583 if _tmp 11584 text = get_text(_text_start) 11585 end 11586 unless _tmp 11587 self.pos = _save 11588 break 11589 end 11590 _tmp = match_string(">") 11591 unless _tmp 11592 self.pos = _save 11593 break 11594 end 11595 @result = begin; text ; end 11596 _tmp = true 11597 unless _tmp 11598 self.pos = _save 11599 end 11600 break 11601 end # end sequence 11602 11603 set_failed_rule :_AutoLinkUrl unless _tmp 11604 return _tmp 11605 end 11606 11607 # AutoLinkEmail = "<" "mailto:"? < /[\w+.\/!%~$-]+/i "@" (!@Newline !">" .)+ > ">" { "mailto:#{text}" } 11608 def _AutoLinkEmail 11609 11610 _save = self.pos 11611 while true # sequence 11612 _tmp = match_string("<") 11613 unless _tmp 11614 self.pos = _save 11615 break 11616 end 11617 _save1 = self.pos 11618 _tmp = match_string("mailto:") 11619 unless _tmp 11620 _tmp = true 11621 self.pos = _save1 11622 end 11623 unless _tmp 11624 self.pos = _save 11625 break 11626 end 11627 _text_start = self.pos 11628 11629 _save2 = self.pos 11630 while true # sequence 11631 _tmp = scan(/\A(?i-mx:[\w+.\/!%~$-]+)/) 11632 unless _tmp 11633 self.pos = _save2 11634 break 11635 end 11636 _tmp = match_string("@") 11637 unless _tmp 11638 self.pos = _save2 11639 break 11640 end 11641 _save3 = self.pos 11642 11643 _save4 = self.pos 11644 while true # sequence 11645 _save5 = self.pos 11646 _tmp = _Newline() 11647 _tmp = _tmp ? nil : true 11648 self.pos = _save5 11649 unless _tmp 11650 self.pos = _save4 11651 break 11652 end 11653 _save6 = self.pos 11654 _tmp = match_string(">") 11655 _tmp = _tmp ? nil : true 11656 self.pos = _save6 11657 unless _tmp 11658 self.pos = _save4 11659 break 11660 end 11661 _tmp = get_byte 11662 unless _tmp 11663 self.pos = _save4 11664 end 11665 break 11666 end # end sequence 11667 11668 if _tmp 11669 while true 11670 11671 _save7 = self.pos 11672 while true # sequence 11673 _save8 = self.pos 11674 _tmp = _Newline() 11675 _tmp = _tmp ? nil : true 11676 self.pos = _save8 11677 unless _tmp 11678 self.pos = _save7 11679 break 11680 end 11681 _save9 = self.pos 11682 _tmp = match_string(">") 11683 _tmp = _tmp ? nil : true 11684 self.pos = _save9 11685 unless _tmp 11686 self.pos = _save7 11687 break 11688 end 11689 _tmp = get_byte 11690 unless _tmp 11691 self.pos = _save7 11692 end 11693 break 11694 end # end sequence 11695 11696 break unless _tmp 11697 end 11698 _tmp = true 11699 else 11700 self.pos = _save3 11701 end 11702 unless _tmp 11703 self.pos = _save2 11704 end 11705 break 11706 end # end sequence 11707 11708 if _tmp 11709 text = get_text(_text_start) 11710 end 11711 unless _tmp 11712 self.pos = _save 11713 break 11714 end 11715 _tmp = match_string(">") 11716 unless _tmp 11717 self.pos = _save 11718 break 11719 end 11720 @result = begin; "mailto:#{text}" ; end 11721 _tmp = true 11722 unless _tmp 11723 self.pos = _save 11724 end 11725 break 11726 end # end sequence 11727 11728 set_failed_rule :_AutoLinkEmail unless _tmp 11729 return _tmp 11730 end 11731 11732 # Reference = @NonindentSpace !"[]" Label:label ":" Spnl RefSrc:link RefTitle @BlankLine+ { # TODO use title reference label, link nil } 11733 def _Reference 11734 11735 _save = self.pos 11736 while true # sequence 11737 _tmp = _NonindentSpace() 11738 unless _tmp 11739 self.pos = _save 11740 break 11741 end 11742 _save1 = self.pos 11743 _tmp = match_string("[]") 11744 _tmp = _tmp ? nil : true 11745 self.pos = _save1 11746 unless _tmp 11747 self.pos = _save 11748 break 11749 end 11750 _tmp = apply(:_Label) 11751 label = @result 11752 unless _tmp 11753 self.pos = _save 11754 break 11755 end 11756 _tmp = match_string(":") 11757 unless _tmp 11758 self.pos = _save 11759 break 11760 end 11761 _tmp = apply(:_Spnl) 11762 unless _tmp 11763 self.pos = _save 11764 break 11765 end 11766 _tmp = apply(:_RefSrc) 11767 link = @result 11768 unless _tmp 11769 self.pos = _save 11770 break 11771 end 11772 _tmp = apply(:_RefTitle) 11773 unless _tmp 11774 self.pos = _save 11775 break 11776 end 11777 _save2 = self.pos 11778 _tmp = _BlankLine() 11779 if _tmp 11780 while true 11781 _tmp = _BlankLine() 11782 break unless _tmp 11783 end 11784 _tmp = true 11785 else 11786 self.pos = _save2 11787 end 11788 unless _tmp 11789 self.pos = _save 11790 break 11791 end 11792 @result = begin; # TODO use title 11793 reference label, link 11794 nil 11795 ; end 11796 _tmp = true 11797 unless _tmp 11798 self.pos = _save 11799 end 11800 break 11801 end # end sequence 11802 11803 set_failed_rule :_Reference unless _tmp 11804 return _tmp 11805 end 11806 11807 # Label = "[" (!"^" &{ notes? } | &. &{ !notes? }) @StartList:a (!"]" Inline:l { a << l })* "]" { a.join.gsub(/\s+/, ' ') } 11808 def _Label 11809 11810 _save = self.pos 11811 while true # sequence 11812 _tmp = match_string("[") 11813 unless _tmp 11814 self.pos = _save 11815 break 11816 end 11817 11818 _save1 = self.pos 11819 while true # choice 11820 11821 _save2 = self.pos 11822 while true # sequence 11823 _save3 = self.pos 11824 _tmp = match_string("^") 11825 _tmp = _tmp ? nil : true 11826 self.pos = _save3 11827 unless _tmp 11828 self.pos = _save2 11829 break 11830 end 11831 _save4 = self.pos 11832 _tmp = begin; notes? ; end 11833 self.pos = _save4 11834 unless _tmp 11835 self.pos = _save2 11836 end 11837 break 11838 end # end sequence 11839 11840 break if _tmp 11841 self.pos = _save1 11842 11843 _save5 = self.pos 11844 while true # sequence 11845 _save6 = self.pos 11846 _tmp = get_byte 11847 self.pos = _save6 11848 unless _tmp 11849 self.pos = _save5 11850 break 11851 end 11852 _save7 = self.pos 11853 _tmp = begin; !notes? ; end 11854 self.pos = _save7 11855 unless _tmp 11856 self.pos = _save5 11857 end 11858 break 11859 end # end sequence 11860 11861 break if _tmp 11862 self.pos = _save1 11863 break 11864 end # end choice 11865 11866 unless _tmp 11867 self.pos = _save 11868 break 11869 end 11870 _tmp = _StartList() 11871 a = @result 11872 unless _tmp 11873 self.pos = _save 11874 break 11875 end 11876 while true 11877 11878 _save9 = self.pos 11879 while true # sequence 11880 _save10 = self.pos 11881 _tmp = match_string("]") 11882 _tmp = _tmp ? nil : true 11883 self.pos = _save10 11884 unless _tmp 11885 self.pos = _save9 11886 break 11887 end 11888 _tmp = apply(:_Inline) 11889 l = @result 11890 unless _tmp 11891 self.pos = _save9 11892 break 11893 end 11894 @result = begin; a << l ; end 11895 _tmp = true 11896 unless _tmp 11897 self.pos = _save9 11898 end 11899 break 11900 end # end sequence 11901 11902 break unless _tmp 11903 end 11904 _tmp = true 11905 unless _tmp 11906 self.pos = _save 11907 break 11908 end 11909 _tmp = match_string("]") 11910 unless _tmp 11911 self.pos = _save 11912 break 11913 end 11914 @result = begin; a.join.gsub(/\s+/, ' ') ; end 11915 _tmp = true 11916 unless _tmp 11917 self.pos = _save 11918 end 11919 break 11920 end # end sequence 11921 11922 set_failed_rule :_Label unless _tmp 11923 return _tmp 11924 end 11925 11926 # RefSrc = < Nonspacechar+ > { text } 11927 def _RefSrc 11928 11929 _save = self.pos 11930 while true # sequence 11931 _text_start = self.pos 11932 _save1 = self.pos 11933 _tmp = apply(:_Nonspacechar) 11934 if _tmp 11935 while true 11936 _tmp = apply(:_Nonspacechar) 11937 break unless _tmp 11938 end 11939 _tmp = true 11940 else 11941 self.pos = _save1 11942 end 11943 if _tmp 11944 text = get_text(_text_start) 11945 end 11946 unless _tmp 11947 self.pos = _save 11948 break 11949 end 11950 @result = begin; text ; end 11951 _tmp = true 11952 unless _tmp 11953 self.pos = _save 11954 end 11955 break 11956 end # end sequence 11957 11958 set_failed_rule :_RefSrc unless _tmp 11959 return _tmp 11960 end 11961 11962 # RefTitle = (RefTitleSingle | RefTitleDouble | RefTitleParens | EmptyTitle) 11963 def _RefTitle 11964 11965 _save = self.pos 11966 while true # choice 11967 _tmp = apply(:_RefTitleSingle) 11968 break if _tmp 11969 self.pos = _save 11970 _tmp = apply(:_RefTitleDouble) 11971 break if _tmp 11972 self.pos = _save 11973 _tmp = apply(:_RefTitleParens) 11974 break if _tmp 11975 self.pos = _save 11976 _tmp = apply(:_EmptyTitle) 11977 break if _tmp 11978 self.pos = _save 11979 break 11980 end # end choice 11981 11982 set_failed_rule :_RefTitle unless _tmp 11983 return _tmp 11984 end 11985 11986 # EmptyTitle = "" 11987 def _EmptyTitle 11988 _tmp = match_string("") 11989 set_failed_rule :_EmptyTitle unless _tmp 11990 return _tmp 11991 end 11992 11993 # RefTitleSingle = Spnl "'" < (!("'" @Sp @Newline | @Newline) .)* > "'" { text } 11994 def _RefTitleSingle 11995 11996 _save = self.pos 11997 while true # sequence 11998 _tmp = apply(:_Spnl) 11999 unless _tmp 12000 self.pos = _save 12001 break 12002 end 12003 _tmp = match_string("'") 12004 unless _tmp 12005 self.pos = _save 12006 break 12007 end 12008 _text_start = self.pos 12009 while true 12010 12011 _save2 = self.pos 12012 while true # sequence 12013 _save3 = self.pos 12014 12015 _save4 = self.pos 12016 while true # choice 12017 12018 _save5 = self.pos 12019 while true # sequence 12020 _tmp = match_string("'") 12021 unless _tmp 12022 self.pos = _save5 12023 break 12024 end 12025 _tmp = _Sp() 12026 unless _tmp 12027 self.pos = _save5 12028 break 12029 end 12030 _tmp = _Newline() 12031 unless _tmp 12032 self.pos = _save5 12033 end 12034 break 12035 end # end sequence 12036 12037 break if _tmp 12038 self.pos = _save4 12039 _tmp = _Newline() 12040 break if _tmp 12041 self.pos = _save4 12042 break 12043 end # end choice 12044 12045 _tmp = _tmp ? nil : true 12046 self.pos = _save3 12047 unless _tmp 12048 self.pos = _save2 12049 break 12050 end 12051 _tmp = get_byte 12052 unless _tmp 12053 self.pos = _save2 12054 end 12055 break 12056 end # end sequence 12057 12058 break unless _tmp 12059 end 12060 _tmp = true 12061 if _tmp 12062 text = get_text(_text_start) 12063 end 12064 unless _tmp 12065 self.pos = _save 12066 break 12067 end 12068 _tmp = match_string("'") 12069 unless _tmp 12070 self.pos = _save 12071 break 12072 end 12073 @result = begin; text ; end 12074 _tmp = true 12075 unless _tmp 12076 self.pos = _save 12077 end 12078 break 12079 end # end sequence 12080 12081 set_failed_rule :_RefTitleSingle unless _tmp 12082 return _tmp 12083 end 12084 12085 # RefTitleDouble = Spnl "\"" < (!("\"" @Sp @Newline | @Newline) .)* > "\"" { text } 12086 def _RefTitleDouble 12087 12088 _save = self.pos 12089 while true # sequence 12090 _tmp = apply(:_Spnl) 12091 unless _tmp 12092 self.pos = _save 12093 break 12094 end 12095 _tmp = match_string("\"") 12096 unless _tmp 12097 self.pos = _save 12098 break 12099 end 12100 _text_start = self.pos 12101 while true 12102 12103 _save2 = self.pos 12104 while true # sequence 12105 _save3 = self.pos 12106 12107 _save4 = self.pos 12108 while true # choice 12109 12110 _save5 = self.pos 12111 while true # sequence 12112 _tmp = match_string("\"") 12113 unless _tmp 12114 self.pos = _save5 12115 break 12116 end 12117 _tmp = _Sp() 12118 unless _tmp 12119 self.pos = _save5 12120 break 12121 end 12122 _tmp = _Newline() 12123 unless _tmp 12124 self.pos = _save5 12125 end 12126 break 12127 end # end sequence 12128 12129 break if _tmp 12130 self.pos = _save4 12131 _tmp = _Newline() 12132 break if _tmp 12133 self.pos = _save4 12134 break 12135 end # end choice 12136 12137 _tmp = _tmp ? nil : true 12138 self.pos = _save3 12139 unless _tmp 12140 self.pos = _save2 12141 break 12142 end 12143 _tmp = get_byte 12144 unless _tmp 12145 self.pos = _save2 12146 end 12147 break 12148 end # end sequence 12149 12150 break unless _tmp 12151 end 12152 _tmp = true 12153 if _tmp 12154 text = get_text(_text_start) 12155 end 12156 unless _tmp 12157 self.pos = _save 12158 break 12159 end 12160 _tmp = match_string("\"") 12161 unless _tmp 12162 self.pos = _save 12163 break 12164 end 12165 @result = begin; text ; end 12166 _tmp = true 12167 unless _tmp 12168 self.pos = _save 12169 end 12170 break 12171 end # end sequence 12172 12173 set_failed_rule :_RefTitleDouble unless _tmp 12174 return _tmp 12175 end 12176 12177 # RefTitleParens = Spnl "(" < (!(")" @Sp @Newline | @Newline) .)* > ")" { text } 12178 def _RefTitleParens 12179 12180 _save = self.pos 12181 while true # sequence 12182 _tmp = apply(:_Spnl) 12183 unless _tmp 12184 self.pos = _save 12185 break 12186 end 12187 _tmp = match_string("(") 12188 unless _tmp 12189 self.pos = _save 12190 break 12191 end 12192 _text_start = self.pos 12193 while true 12194 12195 _save2 = self.pos 12196 while true # sequence 12197 _save3 = self.pos 12198 12199 _save4 = self.pos 12200 while true # choice 12201 12202 _save5 = self.pos 12203 while true # sequence 12204 _tmp = match_string(")") 12205 unless _tmp 12206 self.pos = _save5 12207 break 12208 end 12209 _tmp = _Sp() 12210 unless _tmp 12211 self.pos = _save5 12212 break 12213 end 12214 _tmp = _Newline() 12215 unless _tmp 12216 self.pos = _save5 12217 end 12218 break 12219 end # end sequence 12220 12221 break if _tmp 12222 self.pos = _save4 12223 _tmp = _Newline() 12224 break if _tmp 12225 self.pos = _save4 12226 break 12227 end # end choice 12228 12229 _tmp = _tmp ? nil : true 12230 self.pos = _save3 12231 unless _tmp 12232 self.pos = _save2 12233 break 12234 end 12235 _tmp = get_byte 12236 unless _tmp 12237 self.pos = _save2 12238 end 12239 break 12240 end # end sequence 12241 12242 break unless _tmp 12243 end 12244 _tmp = true 12245 if _tmp 12246 text = get_text(_text_start) 12247 end 12248 unless _tmp 12249 self.pos = _save 12250 break 12251 end 12252 _tmp = match_string(")") 12253 unless _tmp 12254 self.pos = _save 12255 break 12256 end 12257 @result = begin; text ; end 12258 _tmp = true 12259 unless _tmp 12260 self.pos = _save 12261 end 12262 break 12263 end # end sequence 12264 12265 set_failed_rule :_RefTitleParens unless _tmp 12266 return _tmp 12267 end 12268 12269 # References = (Reference | SkipBlock)* 12270 def _References 12271 while true 12272 12273 _save1 = self.pos 12274 while true # choice 12275 _tmp = apply(:_Reference) 12276 break if _tmp 12277 self.pos = _save1 12278 _tmp = apply(:_SkipBlock) 12279 break if _tmp 12280 self.pos = _save1 12281 break 12282 end # end choice 12283 12284 break unless _tmp 12285 end 12286 _tmp = true 12287 set_failed_rule :_References unless _tmp 12288 return _tmp 12289 end 12290 12291 # Ticks1 = "`" !"`" 12292 def _Ticks1 12293 12294 _save = self.pos 12295 while true # sequence 12296 _tmp = match_string("`") 12297 unless _tmp 12298 self.pos = _save 12299 break 12300 end 12301 _save1 = self.pos 12302 _tmp = match_string("`") 12303 _tmp = _tmp ? nil : true 12304 self.pos = _save1 12305 unless _tmp 12306 self.pos = _save 12307 end 12308 break 12309 end # end sequence 12310 12311 set_failed_rule :_Ticks1 unless _tmp 12312 return _tmp 12313 end 12314 12315 # Ticks2 = "``" !"`" 12316 def _Ticks2 12317 12318 _save = self.pos 12319 while true # sequence 12320 _tmp = match_string("``") 12321 unless _tmp 12322 self.pos = _save 12323 break 12324 end 12325 _save1 = self.pos 12326 _tmp = match_string("`") 12327 _tmp = _tmp ? nil : true 12328 self.pos = _save1 12329 unless _tmp 12330 self.pos = _save 12331 end 12332 break 12333 end # end sequence 12334 12335 set_failed_rule :_Ticks2 unless _tmp 12336 return _tmp 12337 end 12338 12339 # Ticks3 = "```" !"`" 12340 def _Ticks3 12341 12342 _save = self.pos 12343 while true # sequence 12344 _tmp = match_string("```") 12345 unless _tmp 12346 self.pos = _save 12347 break 12348 end 12349 _save1 = self.pos 12350 _tmp = match_string("`") 12351 _tmp = _tmp ? nil : true 12352 self.pos = _save1 12353 unless _tmp 12354 self.pos = _save 12355 end 12356 break 12357 end # end sequence 12358 12359 set_failed_rule :_Ticks3 unless _tmp 12360 return _tmp 12361 end 12362 12363 # Ticks4 = "````" !"`" 12364 def _Ticks4 12365 12366 _save = self.pos 12367 while true # sequence 12368 _tmp = match_string("````") 12369 unless _tmp 12370 self.pos = _save 12371 break 12372 end 12373 _save1 = self.pos 12374 _tmp = match_string("`") 12375 _tmp = _tmp ? nil : true 12376 self.pos = _save1 12377 unless _tmp 12378 self.pos = _save 12379 end 12380 break 12381 end # end sequence 12382 12383 set_failed_rule :_Ticks4 unless _tmp 12384 return _tmp 12385 end 12386 12387 # Ticks5 = "`````" !"`" 12388 def _Ticks5 12389 12390 _save = self.pos 12391 while true # sequence 12392 _tmp = match_string("`````") 12393 unless _tmp 12394 self.pos = _save 12395 break 12396 end 12397 _save1 = self.pos 12398 _tmp = match_string("`") 12399 _tmp = _tmp ? nil : true 12400 self.pos = _save1 12401 unless _tmp 12402 self.pos = _save 12403 end 12404 break 12405 end # end sequence 12406 12407 set_failed_rule :_Ticks5 unless _tmp 12408 return _tmp 12409 end 12410 12411 # Code = (Ticks1 @Sp < ((!"`" Nonspacechar)+ | !Ticks1 /`+/ | !(@Sp Ticks1) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks1 | Ticks2 @Sp < ((!"`" Nonspacechar)+ | !Ticks2 /`+/ | !(@Sp Ticks2) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks2 | Ticks3 @Sp < ((!"`" Nonspacechar)+ | !Ticks3 /`+/ | !(@Sp Ticks3) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks3 | Ticks4 @Sp < ((!"`" Nonspacechar)+ | !Ticks4 /`+/ | !(@Sp Ticks4) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks4 | Ticks5 @Sp < ((!"`" Nonspacechar)+ | !Ticks5 /`+/ | !(@Sp Ticks5) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks5) { "<code>#{text}</code>" } 12412 def _Code 12413 12414 _save = self.pos 12415 while true # sequence 12416 12417 _save1 = self.pos 12418 while true # choice 12419 12420 _save2 = self.pos 12421 while true # sequence 12422 _tmp = apply(:_Ticks1) 12423 unless _tmp 12424 self.pos = _save2 12425 break 12426 end 12427 _tmp = _Sp() 12428 unless _tmp 12429 self.pos = _save2 12430 break 12431 end 12432 _text_start = self.pos 12433 _save3 = self.pos 12434 12435 _save4 = self.pos 12436 while true # choice 12437 _save5 = self.pos 12438 12439 _save6 = self.pos 12440 while true # sequence 12441 _save7 = self.pos 12442 _tmp = match_string("`") 12443 _tmp = _tmp ? nil : true 12444 self.pos = _save7 12445 unless _tmp 12446 self.pos = _save6 12447 break 12448 end 12449 _tmp = apply(:_Nonspacechar) 12450 unless _tmp 12451 self.pos = _save6 12452 end 12453 break 12454 end # end sequence 12455 12456 if _tmp 12457 while true 12458 12459 _save8 = self.pos 12460 while true # sequence 12461 _save9 = self.pos 12462 _tmp = match_string("`") 12463 _tmp = _tmp ? nil : true 12464 self.pos = _save9 12465 unless _tmp 12466 self.pos = _save8 12467 break 12468 end 12469 _tmp = apply(:_Nonspacechar) 12470 unless _tmp 12471 self.pos = _save8 12472 end 12473 break 12474 end # end sequence 12475 12476 break unless _tmp 12477 end 12478 _tmp = true 12479 else 12480 self.pos = _save5 12481 end 12482 break if _tmp 12483 self.pos = _save4 12484 12485 _save10 = self.pos 12486 while true # sequence 12487 _save11 = self.pos 12488 _tmp = apply(:_Ticks1) 12489 _tmp = _tmp ? nil : true 12490 self.pos = _save11 12491 unless _tmp 12492 self.pos = _save10 12493 break 12494 end 12495 _tmp = scan(/\A(?-mix:`+)/) 12496 unless _tmp 12497 self.pos = _save10 12498 end 12499 break 12500 end # end sequence 12501 12502 break if _tmp 12503 self.pos = _save4 12504 12505 _save12 = self.pos 12506 while true # sequence 12507 _save13 = self.pos 12508 12509 _save14 = self.pos 12510 while true # sequence 12511 _tmp = _Sp() 12512 unless _tmp 12513 self.pos = _save14 12514 break 12515 end 12516 _tmp = apply(:_Ticks1) 12517 unless _tmp 12518 self.pos = _save14 12519 end 12520 break 12521 end # end sequence 12522 12523 _tmp = _tmp ? nil : true 12524 self.pos = _save13 12525 unless _tmp 12526 self.pos = _save12 12527 break 12528 end 12529 12530 _save15 = self.pos 12531 while true # choice 12532 _tmp = _Spacechar() 12533 break if _tmp 12534 self.pos = _save15 12535 12536 _save16 = self.pos 12537 while true # sequence 12538 _tmp = _Newline() 12539 unless _tmp 12540 self.pos = _save16 12541 break 12542 end 12543 _save17 = self.pos 12544 _tmp = _BlankLine() 12545 _tmp = _tmp ? nil : true 12546 self.pos = _save17 12547 unless _tmp 12548 self.pos = _save16 12549 end 12550 break 12551 end # end sequence 12552 12553 break if _tmp 12554 self.pos = _save15 12555 break 12556 end # end choice 12557 12558 unless _tmp 12559 self.pos = _save12 12560 end 12561 break 12562 end # end sequence 12563 12564 break if _tmp 12565 self.pos = _save4 12566 break 12567 end # end choice 12568 12569 if _tmp 12570 while true 12571 12572 _save18 = self.pos 12573 while true # choice 12574 _save19 = self.pos 12575 12576 _save20 = self.pos 12577 while true # sequence 12578 _save21 = self.pos 12579 _tmp = match_string("`") 12580 _tmp = _tmp ? nil : true 12581 self.pos = _save21 12582 unless _tmp 12583 self.pos = _save20 12584 break 12585 end 12586 _tmp = apply(:_Nonspacechar) 12587 unless _tmp 12588 self.pos = _save20 12589 end 12590 break 12591 end # end sequence 12592 12593 if _tmp 12594 while true 12595 12596 _save22 = self.pos 12597 while true # sequence 12598 _save23 = self.pos 12599 _tmp = match_string("`") 12600 _tmp = _tmp ? nil : true 12601 self.pos = _save23 12602 unless _tmp 12603 self.pos = _save22 12604 break 12605 end 12606 _tmp = apply(:_Nonspacechar) 12607 unless _tmp 12608 self.pos = _save22 12609 end 12610 break 12611 end # end sequence 12612 12613 break unless _tmp 12614 end 12615 _tmp = true 12616 else 12617 self.pos = _save19 12618 end 12619 break if _tmp 12620 self.pos = _save18 12621 12622 _save24 = self.pos 12623 while true # sequence 12624 _save25 = self.pos 12625 _tmp = apply(:_Ticks1) 12626 _tmp = _tmp ? nil : true 12627 self.pos = _save25 12628 unless _tmp 12629 self.pos = _save24 12630 break 12631 end 12632 _tmp = scan(/\A(?-mix:`+)/) 12633 unless _tmp 12634 self.pos = _save24 12635 end 12636 break 12637 end # end sequence 12638 12639 break if _tmp 12640 self.pos = _save18 12641 12642 _save26 = self.pos 12643 while true # sequence 12644 _save27 = self.pos 12645 12646 _save28 = self.pos 12647 while true # sequence 12648 _tmp = _Sp() 12649 unless _tmp 12650 self.pos = _save28 12651 break 12652 end 12653 _tmp = apply(:_Ticks1) 12654 unless _tmp 12655 self.pos = _save28 12656 end 12657 break 12658 end # end sequence 12659 12660 _tmp = _tmp ? nil : true 12661 self.pos = _save27 12662 unless _tmp 12663 self.pos = _save26 12664 break 12665 end 12666 12667 _save29 = self.pos 12668 while true # choice 12669 _tmp = _Spacechar() 12670 break if _tmp 12671 self.pos = _save29 12672 12673 _save30 = self.pos 12674 while true # sequence 12675 _tmp = _Newline() 12676 unless _tmp 12677 self.pos = _save30 12678 break 12679 end 12680 _save31 = self.pos 12681 _tmp = _BlankLine() 12682 _tmp = _tmp ? nil : true 12683 self.pos = _save31 12684 unless _tmp 12685 self.pos = _save30 12686 end 12687 break 12688 end # end sequence 12689 12690 break if _tmp 12691 self.pos = _save29 12692 break 12693 end # end choice 12694 12695 unless _tmp 12696 self.pos = _save26 12697 end 12698 break 12699 end # end sequence 12700 12701 break if _tmp 12702 self.pos = _save18 12703 break 12704 end # end choice 12705 12706 break unless _tmp 12707 end 12708 _tmp = true 12709 else 12710 self.pos = _save3 12711 end 12712 if _tmp 12713 text = get_text(_text_start) 12714 end 12715 unless _tmp 12716 self.pos = _save2 12717 break 12718 end 12719 _tmp = _Sp() 12720 unless _tmp 12721 self.pos = _save2 12722 break 12723 end 12724 _tmp = apply(:_Ticks1) 12725 unless _tmp 12726 self.pos = _save2 12727 end 12728 break 12729 end # end sequence 12730 12731 break if _tmp 12732 self.pos = _save1 12733 12734 _save32 = self.pos 12735 while true # sequence 12736 _tmp = apply(:_Ticks2) 12737 unless _tmp 12738 self.pos = _save32 12739 break 12740 end 12741 _tmp = _Sp() 12742 unless _tmp 12743 self.pos = _save32 12744 break 12745 end 12746 _text_start = self.pos 12747 _save33 = self.pos 12748 12749 _save34 = self.pos 12750 while true # choice 12751 _save35 = self.pos 12752 12753 _save36 = self.pos 12754 while true # sequence 12755 _save37 = self.pos 12756 _tmp = match_string("`") 12757 _tmp = _tmp ? nil : true 12758 self.pos = _save37 12759 unless _tmp 12760 self.pos = _save36 12761 break 12762 end 12763 _tmp = apply(:_Nonspacechar) 12764 unless _tmp 12765 self.pos = _save36 12766 end 12767 break 12768 end # end sequence 12769 12770 if _tmp 12771 while true 12772 12773 _save38 = self.pos 12774 while true # sequence 12775 _save39 = self.pos 12776 _tmp = match_string("`") 12777 _tmp = _tmp ? nil : true 12778 self.pos = _save39 12779 unless _tmp 12780 self.pos = _save38 12781 break 12782 end 12783 _tmp = apply(:_Nonspacechar) 12784 unless _tmp 12785 self.pos = _save38 12786 end 12787 break 12788 end # end sequence 12789 12790 break unless _tmp 12791 end 12792 _tmp = true 12793 else 12794 self.pos = _save35 12795 end 12796 break if _tmp 12797 self.pos = _save34 12798 12799 _save40 = self.pos 12800 while true # sequence 12801 _save41 = self.pos 12802 _tmp = apply(:_Ticks2) 12803 _tmp = _tmp ? nil : true 12804 self.pos = _save41 12805 unless _tmp 12806 self.pos = _save40 12807 break 12808 end 12809 _tmp = scan(/\A(?-mix:`+)/) 12810 unless _tmp 12811 self.pos = _save40 12812 end 12813 break 12814 end # end sequence 12815 12816 break if _tmp 12817 self.pos = _save34 12818 12819 _save42 = self.pos 12820 while true # sequence 12821 _save43 = self.pos 12822 12823 _save44 = self.pos 12824 while true # sequence 12825 _tmp = _Sp() 12826 unless _tmp 12827 self.pos = _save44 12828 break 12829 end 12830 _tmp = apply(:_Ticks2) 12831 unless _tmp 12832 self.pos = _save44 12833 end 12834 break 12835 end # end sequence 12836 12837 _tmp = _tmp ? nil : true 12838 self.pos = _save43 12839 unless _tmp 12840 self.pos = _save42 12841 break 12842 end 12843 12844 _save45 = self.pos 12845 while true # choice 12846 _tmp = _Spacechar() 12847 break if _tmp 12848 self.pos = _save45 12849 12850 _save46 = self.pos 12851 while true # sequence 12852 _tmp = _Newline() 12853 unless _tmp 12854 self.pos = _save46 12855 break 12856 end 12857 _save47 = self.pos 12858 _tmp = _BlankLine() 12859 _tmp = _tmp ? nil : true 12860 self.pos = _save47 12861 unless _tmp 12862 self.pos = _save46 12863 end 12864 break 12865 end # end sequence 12866 12867 break if _tmp 12868 self.pos = _save45 12869 break 12870 end # end choice 12871 12872 unless _tmp 12873 self.pos = _save42 12874 end 12875 break 12876 end # end sequence 12877 12878 break if _tmp 12879 self.pos = _save34 12880 break 12881 end # end choice 12882 12883 if _tmp 12884 while true 12885 12886 _save48 = self.pos 12887 while true # choice 12888 _save49 = self.pos 12889 12890 _save50 = self.pos 12891 while true # sequence 12892 _save51 = self.pos 12893 _tmp = match_string("`") 12894 _tmp = _tmp ? nil : true 12895 self.pos = _save51 12896 unless _tmp 12897 self.pos = _save50 12898 break 12899 end 12900 _tmp = apply(:_Nonspacechar) 12901 unless _tmp 12902 self.pos = _save50 12903 end 12904 break 12905 end # end sequence 12906 12907 if _tmp 12908 while true 12909 12910 _save52 = self.pos 12911 while true # sequence 12912 _save53 = self.pos 12913 _tmp = match_string("`") 12914 _tmp = _tmp ? nil : true 12915 self.pos = _save53 12916 unless _tmp 12917 self.pos = _save52 12918 break 12919 end 12920 _tmp = apply(:_Nonspacechar) 12921 unless _tmp 12922 self.pos = _save52 12923 end 12924 break 12925 end # end sequence 12926 12927 break unless _tmp 12928 end 12929 _tmp = true 12930 else 12931 self.pos = _save49 12932 end 12933 break if _tmp 12934 self.pos = _save48 12935 12936 _save54 = self.pos 12937 while true # sequence 12938 _save55 = self.pos 12939 _tmp = apply(:_Ticks2) 12940 _tmp = _tmp ? nil : true 12941 self.pos = _save55 12942 unless _tmp 12943 self.pos = _save54 12944 break 12945 end 12946 _tmp = scan(/\A(?-mix:`+)/) 12947 unless _tmp 12948 self.pos = _save54 12949 end 12950 break 12951 end # end sequence 12952 12953 break if _tmp 12954 self.pos = _save48 12955 12956 _save56 = self.pos 12957 while true # sequence 12958 _save57 = self.pos 12959 12960 _save58 = self.pos 12961 while true # sequence 12962 _tmp = _Sp() 12963 unless _tmp 12964 self.pos = _save58 12965 break 12966 end 12967 _tmp = apply(:_Ticks2) 12968 unless _tmp 12969 self.pos = _save58 12970 end 12971 break 12972 end # end sequence 12973 12974 _tmp = _tmp ? nil : true 12975 self.pos = _save57 12976 unless _tmp 12977 self.pos = _save56 12978 break 12979 end 12980 12981 _save59 = self.pos 12982 while true # choice 12983 _tmp = _Spacechar() 12984 break if _tmp 12985 self.pos = _save59 12986 12987 _save60 = self.pos 12988 while true # sequence 12989 _tmp = _Newline() 12990 unless _tmp 12991 self.pos = _save60 12992 break 12993 end 12994 _save61 = self.pos 12995 _tmp = _BlankLine() 12996 _tmp = _tmp ? nil : true 12997 self.pos = _save61 12998 unless _tmp 12999 self.pos = _save60 13000 end 13001 break 13002 end # end sequence 13003 13004 break if _tmp 13005 self.pos = _save59 13006 break 13007 end # end choice 13008 13009 unless _tmp 13010 self.pos = _save56 13011 end 13012 break 13013 end # end sequence 13014 13015 break if _tmp 13016 self.pos = _save48 13017 break 13018 end # end choice 13019 13020 break unless _tmp 13021 end 13022 _tmp = true 13023 else 13024 self.pos = _save33 13025 end 13026 if _tmp 13027 text = get_text(_text_start) 13028 end 13029 unless _tmp 13030 self.pos = _save32 13031 break 13032 end 13033 _tmp = _Sp() 13034 unless _tmp 13035 self.pos = _save32 13036 break 13037 end 13038 _tmp = apply(:_Ticks2) 13039 unless _tmp 13040 self.pos = _save32 13041 end 13042 break 13043 end # end sequence 13044 13045 break if _tmp 13046 self.pos = _save1 13047 13048 _save62 = self.pos 13049 while true # sequence 13050 _tmp = apply(:_Ticks3) 13051 unless _tmp 13052 self.pos = _save62 13053 break 13054 end 13055 _tmp = _Sp() 13056 unless _tmp 13057 self.pos = _save62 13058 break 13059 end 13060 _text_start = self.pos 13061 _save63 = self.pos 13062 13063 _save64 = self.pos 13064 while true # choice 13065 _save65 = self.pos 13066 13067 _save66 = self.pos 13068 while true # sequence 13069 _save67 = self.pos 13070 _tmp = match_string("`") 13071 _tmp = _tmp ? nil : true 13072 self.pos = _save67 13073 unless _tmp 13074 self.pos = _save66 13075 break 13076 end 13077 _tmp = apply(:_Nonspacechar) 13078 unless _tmp 13079 self.pos = _save66 13080 end 13081 break 13082 end # end sequence 13083 13084 if _tmp 13085 while true 13086 13087 _save68 = self.pos 13088 while true # sequence 13089 _save69 = self.pos 13090 _tmp = match_string("`") 13091 _tmp = _tmp ? nil : true 13092 self.pos = _save69 13093 unless _tmp 13094 self.pos = _save68 13095 break 13096 end 13097 _tmp = apply(:_Nonspacechar) 13098 unless _tmp 13099 self.pos = _save68 13100 end 13101 break 13102 end # end sequence 13103 13104 break unless _tmp 13105 end 13106 _tmp = true 13107 else 13108 self.pos = _save65 13109 end 13110 break if _tmp 13111 self.pos = _save64 13112 13113 _save70 = self.pos 13114 while true # sequence 13115 _save71 = self.pos 13116 _tmp = apply(:_Ticks3) 13117 _tmp = _tmp ? nil : true 13118 self.pos = _save71 13119 unless _tmp 13120 self.pos = _save70 13121 break 13122 end 13123 _tmp = scan(/\A(?-mix:`+)/) 13124 unless _tmp 13125 self.pos = _save70 13126 end 13127 break 13128 end # end sequence 13129 13130 break if _tmp 13131 self.pos = _save64 13132 13133 _save72 = self.pos 13134 while true # sequence 13135 _save73 = self.pos 13136 13137 _save74 = self.pos 13138 while true # sequence 13139 _tmp = _Sp() 13140 unless _tmp 13141 self.pos = _save74 13142 break 13143 end 13144 _tmp = apply(:_Ticks3) 13145 unless _tmp 13146 self.pos = _save74 13147 end 13148 break 13149 end # end sequence 13150 13151 _tmp = _tmp ? nil : true 13152 self.pos = _save73 13153 unless _tmp 13154 self.pos = _save72 13155 break 13156 end 13157 13158 _save75 = self.pos 13159 while true # choice 13160 _tmp = _Spacechar() 13161 break if _tmp 13162 self.pos = _save75 13163 13164 _save76 = self.pos 13165 while true # sequence 13166 _tmp = _Newline() 13167 unless _tmp 13168 self.pos = _save76 13169 break 13170 end 13171 _save77 = self.pos 13172 _tmp = _BlankLine() 13173 _tmp = _tmp ? nil : true 13174 self.pos = _save77 13175 unless _tmp 13176 self.pos = _save76 13177 end 13178 break 13179 end # end sequence 13180 13181 break if _tmp 13182 self.pos = _save75 13183 break 13184 end # end choice 13185 13186 unless _tmp 13187 self.pos = _save72 13188 end 13189 break 13190 end # end sequence 13191 13192 break if _tmp 13193 self.pos = _save64 13194 break 13195 end # end choice 13196 13197 if _tmp 13198 while true 13199 13200 _save78 = self.pos 13201 while true # choice 13202 _save79 = self.pos 13203 13204 _save80 = self.pos 13205 while true # sequence 13206 _save81 = self.pos 13207 _tmp = match_string("`") 13208 _tmp = _tmp ? nil : true 13209 self.pos = _save81 13210 unless _tmp 13211 self.pos = _save80 13212 break 13213 end 13214 _tmp = apply(:_Nonspacechar) 13215 unless _tmp 13216 self.pos = _save80 13217 end 13218 break 13219 end # end sequence 13220 13221 if _tmp 13222 while true 13223 13224 _save82 = self.pos 13225 while true # sequence 13226 _save83 = self.pos 13227 _tmp = match_string("`") 13228 _tmp = _tmp ? nil : true 13229 self.pos = _save83 13230 unless _tmp 13231 self.pos = _save82 13232 break 13233 end 13234 _tmp = apply(:_Nonspacechar) 13235 unless _tmp 13236 self.pos = _save82 13237 end 13238 break 13239 end # end sequence 13240 13241 break unless _tmp 13242 end 13243 _tmp = true 13244 else 13245 self.pos = _save79 13246 end 13247 break if _tmp 13248 self.pos = _save78 13249 13250 _save84 = self.pos 13251 while true # sequence 13252 _save85 = self.pos 13253 _tmp = apply(:_Ticks3) 13254 _tmp = _tmp ? nil : true 13255 self.pos = _save85 13256 unless _tmp 13257 self.pos = _save84 13258 break 13259 end 13260 _tmp = scan(/\A(?-mix:`+)/) 13261 unless _tmp 13262 self.pos = _save84 13263 end 13264 break 13265 end # end sequence 13266 13267 break if _tmp 13268 self.pos = _save78 13269 13270 _save86 = self.pos 13271 while true # sequence 13272 _save87 = self.pos 13273 13274 _save88 = self.pos 13275 while true # sequence 13276 _tmp = _Sp() 13277 unless _tmp 13278 self.pos = _save88 13279 break 13280 end 13281 _tmp = apply(:_Ticks3) 13282 unless _tmp 13283 self.pos = _save88 13284 end 13285 break 13286 end # end sequence 13287 13288 _tmp = _tmp ? nil : true 13289 self.pos = _save87 13290 unless _tmp 13291 self.pos = _save86 13292 break 13293 end 13294 13295 _save89 = self.pos 13296 while true # choice 13297 _tmp = _Spacechar() 13298 break if _tmp 13299 self.pos = _save89 13300 13301 _save90 = self.pos 13302 while true # sequence 13303 _tmp = _Newline() 13304 unless _tmp 13305 self.pos = _save90 13306 break 13307 end 13308 _save91 = self.pos 13309 _tmp = _BlankLine() 13310 _tmp = _tmp ? nil : true 13311 self.pos = _save91 13312 unless _tmp 13313 self.pos = _save90 13314 end 13315 break 13316 end # end sequence 13317 13318 break if _tmp 13319 self.pos = _save89 13320 break 13321 end # end choice 13322 13323 unless _tmp 13324 self.pos = _save86 13325 end 13326 break 13327 end # end sequence 13328 13329 break if _tmp 13330 self.pos = _save78 13331 break 13332 end # end choice 13333 13334 break unless _tmp 13335 end 13336 _tmp = true 13337 else 13338 self.pos = _save63 13339 end 13340 if _tmp 13341 text = get_text(_text_start) 13342 end 13343 unless _tmp 13344 self.pos = _save62 13345 break 13346 end 13347 _tmp = _Sp() 13348 unless _tmp 13349 self.pos = _save62 13350 break 13351 end 13352 _tmp = apply(:_Ticks3) 13353 unless _tmp 13354 self.pos = _save62 13355 end 13356 break 13357 end # end sequence 13358 13359 break if _tmp 13360 self.pos = _save1 13361 13362 _save92 = self.pos 13363 while true # sequence 13364 _tmp = apply(:_Ticks4) 13365 unless _tmp 13366 self.pos = _save92 13367 break 13368 end 13369 _tmp = _Sp() 13370 unless _tmp 13371 self.pos = _save92 13372 break 13373 end 13374 _text_start = self.pos 13375 _save93 = self.pos 13376 13377 _save94 = self.pos 13378 while true # choice 13379 _save95 = self.pos 13380 13381 _save96 = self.pos 13382 while true # sequence 13383 _save97 = self.pos 13384 _tmp = match_string("`") 13385 _tmp = _tmp ? nil : true 13386 self.pos = _save97 13387 unless _tmp 13388 self.pos = _save96 13389 break 13390 end 13391 _tmp = apply(:_Nonspacechar) 13392 unless _tmp 13393 self.pos = _save96 13394 end 13395 break 13396 end # end sequence 13397 13398 if _tmp 13399 while true 13400 13401 _save98 = self.pos 13402 while true # sequence 13403 _save99 = self.pos 13404 _tmp = match_string("`") 13405 _tmp = _tmp ? nil : true 13406 self.pos = _save99 13407 unless _tmp 13408 self.pos = _save98 13409 break 13410 end 13411 _tmp = apply(:_Nonspacechar) 13412 unless _tmp 13413 self.pos = _save98 13414 end 13415 break 13416 end # end sequence 13417 13418 break unless _tmp 13419 end 13420 _tmp = true 13421 else 13422 self.pos = _save95 13423 end 13424 break if _tmp 13425 self.pos = _save94 13426 13427 _save100 = self.pos 13428 while true # sequence 13429 _save101 = self.pos 13430 _tmp = apply(:_Ticks4) 13431 _tmp = _tmp ? nil : true 13432 self.pos = _save101 13433 unless _tmp 13434 self.pos = _save100 13435 break 13436 end 13437 _tmp = scan(/\A(?-mix:`+)/) 13438 unless _tmp 13439 self.pos = _save100 13440 end 13441 break 13442 end # end sequence 13443 13444 break if _tmp 13445 self.pos = _save94 13446 13447 _save102 = self.pos 13448 while true # sequence 13449 _save103 = self.pos 13450 13451 _save104 = self.pos 13452 while true # sequence 13453 _tmp = _Sp() 13454 unless _tmp 13455 self.pos = _save104 13456 break 13457 end 13458 _tmp = apply(:_Ticks4) 13459 unless _tmp 13460 self.pos = _save104 13461 end 13462 break 13463 end # end sequence 13464 13465 _tmp = _tmp ? nil : true 13466 self.pos = _save103 13467 unless _tmp 13468 self.pos = _save102 13469 break 13470 end 13471 13472 _save105 = self.pos 13473 while true # choice 13474 _tmp = _Spacechar() 13475 break if _tmp 13476 self.pos = _save105 13477 13478 _save106 = self.pos 13479 while true # sequence 13480 _tmp = _Newline() 13481 unless _tmp 13482 self.pos = _save106 13483 break 13484 end 13485 _save107 = self.pos 13486 _tmp = _BlankLine() 13487 _tmp = _tmp ? nil : true 13488 self.pos = _save107 13489 unless _tmp 13490 self.pos = _save106 13491 end 13492 break 13493 end # end sequence 13494 13495 break if _tmp 13496 self.pos = _save105 13497 break 13498 end # end choice 13499 13500 unless _tmp 13501 self.pos = _save102 13502 end 13503 break 13504 end # end sequence 13505 13506 break if _tmp 13507 self.pos = _save94 13508 break 13509 end # end choice 13510 13511 if _tmp 13512 while true 13513 13514 _save108 = self.pos 13515 while true # choice 13516 _save109 = self.pos 13517 13518 _save110 = self.pos 13519 while true # sequence 13520 _save111 = self.pos 13521 _tmp = match_string("`") 13522 _tmp = _tmp ? nil : true 13523 self.pos = _save111 13524 unless _tmp 13525 self.pos = _save110 13526 break 13527 end 13528 _tmp = apply(:_Nonspacechar) 13529 unless _tmp 13530 self.pos = _save110 13531 end 13532 break 13533 end # end sequence 13534 13535 if _tmp 13536 while true 13537 13538 _save112 = self.pos 13539 while true # sequence 13540 _save113 = self.pos 13541 _tmp = match_string("`") 13542 _tmp = _tmp ? nil : true 13543 self.pos = _save113 13544 unless _tmp 13545 self.pos = _save112 13546 break 13547 end 13548 _tmp = apply(:_Nonspacechar) 13549 unless _tmp 13550 self.pos = _save112 13551 end 13552 break 13553 end # end sequence 13554 13555 break unless _tmp 13556 end 13557 _tmp = true 13558 else 13559 self.pos = _save109 13560 end 13561 break if _tmp 13562 self.pos = _save108 13563 13564 _save114 = self.pos 13565 while true # sequence 13566 _save115 = self.pos 13567 _tmp = apply(:_Ticks4) 13568 _tmp = _tmp ? nil : true 13569 self.pos = _save115 13570 unless _tmp 13571 self.pos = _save114 13572 break 13573 end 13574 _tmp = scan(/\A(?-mix:`+)/) 13575 unless _tmp 13576 self.pos = _save114 13577 end 13578 break 13579 end # end sequence 13580 13581 break if _tmp 13582 self.pos = _save108 13583 13584 _save116 = self.pos 13585 while true # sequence 13586 _save117 = self.pos 13587 13588 _save118 = self.pos 13589 while true # sequence 13590 _tmp = _Sp() 13591 unless _tmp 13592 self.pos = _save118 13593 break 13594 end 13595 _tmp = apply(:_Ticks4) 13596 unless _tmp 13597 self.pos = _save118 13598 end 13599 break 13600 end # end sequence 13601 13602 _tmp = _tmp ? nil : true 13603 self.pos = _save117 13604 unless _tmp 13605 self.pos = _save116 13606 break 13607 end 13608 13609 _save119 = self.pos 13610 while true # choice 13611 _tmp = _Spacechar() 13612 break if _tmp 13613 self.pos = _save119 13614 13615 _save120 = self.pos 13616 while true # sequence 13617 _tmp = _Newline() 13618 unless _tmp 13619 self.pos = _save120 13620 break 13621 end 13622 _save121 = self.pos 13623 _tmp = _BlankLine() 13624 _tmp = _tmp ? nil : true 13625 self.pos = _save121 13626 unless _tmp 13627 self.pos = _save120 13628 end 13629 break 13630 end # end sequence 13631 13632 break if _tmp 13633 self.pos = _save119 13634 break 13635 end # end choice 13636 13637 unless _tmp 13638 self.pos = _save116 13639 end 13640 break 13641 end # end sequence 13642 13643 break if _tmp 13644 self.pos = _save108 13645 break 13646 end # end choice 13647 13648 break unless _tmp 13649 end 13650 _tmp = true 13651 else 13652 self.pos = _save93 13653 end 13654 if _tmp 13655 text = get_text(_text_start) 13656 end 13657 unless _tmp 13658 self.pos = _save92 13659 break 13660 end 13661 _tmp = _Sp() 13662 unless _tmp 13663 self.pos = _save92 13664 break 13665 end 13666 _tmp = apply(:_Ticks4) 13667 unless _tmp 13668 self.pos = _save92 13669 end 13670 break 13671 end # end sequence 13672 13673 break if _tmp 13674 self.pos = _save1 13675 13676 _save122 = self.pos 13677 while true # sequence 13678 _tmp = apply(:_Ticks5) 13679 unless _tmp 13680 self.pos = _save122 13681 break 13682 end 13683 _tmp = _Sp() 13684 unless _tmp 13685 self.pos = _save122 13686 break 13687 end 13688 _text_start = self.pos 13689 _save123 = self.pos 13690 13691 _save124 = self.pos 13692 while true # choice 13693 _save125 = self.pos 13694 13695 _save126 = self.pos 13696 while true # sequence 13697 _save127 = self.pos 13698 _tmp = match_string("`") 13699 _tmp = _tmp ? nil : true 13700 self.pos = _save127 13701 unless _tmp 13702 self.pos = _save126 13703 break 13704 end 13705 _tmp = apply(:_Nonspacechar) 13706 unless _tmp 13707 self.pos = _save126 13708 end 13709 break 13710 end # end sequence 13711 13712 if _tmp 13713 while true 13714 13715 _save128 = self.pos 13716 while true # sequence 13717 _save129 = self.pos 13718 _tmp = match_string("`") 13719 _tmp = _tmp ? nil : true 13720 self.pos = _save129 13721 unless _tmp 13722 self.pos = _save128 13723 break 13724 end 13725 _tmp = apply(:_Nonspacechar) 13726 unless _tmp 13727 self.pos = _save128 13728 end 13729 break 13730 end # end sequence 13731 13732 break unless _tmp 13733 end 13734 _tmp = true 13735 else 13736 self.pos = _save125 13737 end 13738 break if _tmp 13739 self.pos = _save124 13740 13741 _save130 = self.pos 13742 while true # sequence 13743 _save131 = self.pos 13744 _tmp = apply(:_Ticks5) 13745 _tmp = _tmp ? nil : true 13746 self.pos = _save131 13747 unless _tmp 13748 self.pos = _save130 13749 break 13750 end 13751 _tmp = scan(/\A(?-mix:`+)/) 13752 unless _tmp 13753 self.pos = _save130 13754 end 13755 break 13756 end # end sequence 13757 13758 break if _tmp 13759 self.pos = _save124 13760 13761 _save132 = self.pos 13762 while true # sequence 13763 _save133 = self.pos 13764 13765 _save134 = self.pos 13766 while true # sequence 13767 _tmp = _Sp() 13768 unless _tmp 13769 self.pos = _save134 13770 break 13771 end 13772 _tmp = apply(:_Ticks5) 13773 unless _tmp 13774 self.pos = _save134 13775 end 13776 break 13777 end # end sequence 13778 13779 _tmp = _tmp ? nil : true 13780 self.pos = _save133 13781 unless _tmp 13782 self.pos = _save132 13783 break 13784 end 13785 13786 _save135 = self.pos 13787 while true # choice 13788 _tmp = _Spacechar() 13789 break if _tmp 13790 self.pos = _save135 13791 13792 _save136 = self.pos 13793 while true # sequence 13794 _tmp = _Newline() 13795 unless _tmp 13796 self.pos = _save136 13797 break 13798 end 13799 _save137 = self.pos 13800 _tmp = _BlankLine() 13801 _tmp = _tmp ? nil : true 13802 self.pos = _save137 13803 unless _tmp 13804 self.pos = _save136 13805 end 13806 break 13807 end # end sequence 13808 13809 break if _tmp 13810 self.pos = _save135 13811 break 13812 end # end choice 13813 13814 unless _tmp 13815 self.pos = _save132 13816 end 13817 break 13818 end # end sequence 13819 13820 break if _tmp 13821 self.pos = _save124 13822 break 13823 end # end choice 13824 13825 if _tmp 13826 while true 13827 13828 _save138 = self.pos 13829 while true # choice 13830 _save139 = self.pos 13831 13832 _save140 = self.pos 13833 while true # sequence 13834 _save141 = self.pos 13835 _tmp = match_string("`") 13836 _tmp = _tmp ? nil : true 13837 self.pos = _save141 13838 unless _tmp 13839 self.pos = _save140 13840 break 13841 end 13842 _tmp = apply(:_Nonspacechar) 13843 unless _tmp 13844 self.pos = _save140 13845 end 13846 break 13847 end # end sequence 13848 13849 if _tmp 13850 while true 13851 13852 _save142 = self.pos 13853 while true # sequence 13854 _save143 = self.pos 13855 _tmp = match_string("`") 13856 _tmp = _tmp ? nil : true 13857 self.pos = _save143 13858 unless _tmp 13859 self.pos = _save142 13860 break 13861 end 13862 _tmp = apply(:_Nonspacechar) 13863 unless _tmp 13864 self.pos = _save142 13865 end 13866 break 13867 end # end sequence 13868 13869 break unless _tmp 13870 end 13871 _tmp = true 13872 else 13873 self.pos = _save139 13874 end 13875 break if _tmp 13876 self.pos = _save138 13877 13878 _save144 = self.pos 13879 while true # sequence 13880 _save145 = self.pos 13881 _tmp = apply(:_Ticks5) 13882 _tmp = _tmp ? nil : true 13883 self.pos = _save145 13884 unless _tmp 13885 self.pos = _save144 13886 break 13887 end 13888 _tmp = scan(/\A(?-mix:`+)/) 13889 unless _tmp 13890 self.pos = _save144 13891 end 13892 break 13893 end # end sequence 13894 13895 break if _tmp 13896 self.pos = _save138 13897 13898 _save146 = self.pos 13899 while true # sequence 13900 _save147 = self.pos 13901 13902 _save148 = self.pos 13903 while true # sequence 13904 _tmp = _Sp() 13905 unless _tmp 13906 self.pos = _save148 13907 break 13908 end 13909 _tmp = apply(:_Ticks5) 13910 unless _tmp 13911 self.pos = _save148 13912 end 13913 break 13914 end # end sequence 13915 13916 _tmp = _tmp ? nil : true 13917 self.pos = _save147 13918 unless _tmp 13919 self.pos = _save146 13920 break 13921 end 13922 13923 _save149 = self.pos 13924 while true # choice 13925 _tmp = _Spacechar() 13926 break if _tmp 13927 self.pos = _save149 13928 13929 _save150 = self.pos 13930 while true # sequence 13931 _tmp = _Newline() 13932 unless _tmp 13933 self.pos = _save150 13934 break 13935 end 13936 _save151 = self.pos 13937 _tmp = _BlankLine() 13938 _tmp = _tmp ? nil : true 13939 self.pos = _save151 13940 unless _tmp 13941 self.pos = _save150 13942 end 13943 break 13944 end # end sequence 13945 13946 break if _tmp 13947 self.pos = _save149 13948 break 13949 end # end choice 13950 13951 unless _tmp 13952 self.pos = _save146 13953 end 13954 break 13955 end # end sequence 13956 13957 break if _tmp 13958 self.pos = _save138 13959 break 13960 end # end choice 13961 13962 break unless _tmp 13963 end 13964 _tmp = true 13965 else 13966 self.pos = _save123 13967 end 13968 if _tmp 13969 text = get_text(_text_start) 13970 end 13971 unless _tmp 13972 self.pos = _save122 13973 break 13974 end 13975 _tmp = _Sp() 13976 unless _tmp 13977 self.pos = _save122 13978 break 13979 end 13980 _tmp = apply(:_Ticks5) 13981 unless _tmp 13982 self.pos = _save122 13983 end 13984 break 13985 end # end sequence 13986 13987 break if _tmp 13988 self.pos = _save1 13989 break 13990 end # end choice 13991 13992 unless _tmp 13993 self.pos = _save 13994 break 13995 end 13996 @result = begin; "<code>#{text}</code>" ; end 13997 _tmp = true 13998 unless _tmp 13999 self.pos = _save 14000 end 14001 break 14002 end # end sequence 14003 14004 set_failed_rule :_Code unless _tmp 14005 return _tmp 14006 end 14007 14008 # RawHtml = < (HtmlComment | HtmlBlockScript | HtmlTag) > { if html? then text else '' end } 14009 def _RawHtml 14010 14011 _save = self.pos 14012 while true # sequence 14013 _text_start = self.pos 14014 14015 _save1 = self.pos 14016 while true # choice 14017 _tmp = apply(:_HtmlComment) 14018 break if _tmp 14019 self.pos = _save1 14020 _tmp = apply(:_HtmlBlockScript) 14021 break if _tmp 14022 self.pos = _save1 14023 _tmp = apply(:_HtmlTag) 14024 break if _tmp 14025 self.pos = _save1 14026 break 14027 end # end choice 14028 14029 if _tmp 14030 text = get_text(_text_start) 14031 end 14032 unless _tmp 14033 self.pos = _save 14034 break 14035 end 14036 @result = begin; if html? then text else '' end ; end 14037 _tmp = true 14038 unless _tmp 14039 self.pos = _save 14040 end 14041 break 14042 end # end sequence 14043 14044 set_failed_rule :_RawHtml unless _tmp 14045 return _tmp 14046 end 14047 14048 # BlankLine = @Sp @Newline { "\n" } 14049 def _BlankLine 14050 14051 _save = self.pos 14052 while true # sequence 14053 _tmp = _Sp() 14054 unless _tmp 14055 self.pos = _save 14056 break 14057 end 14058 _tmp = _Newline() 14059 unless _tmp 14060 self.pos = _save 14061 break 14062 end 14063 @result = begin; "\n" ; end 14064 _tmp = true 14065 unless _tmp 14066 self.pos = _save 14067 end 14068 break 14069 end # end sequence 14070 14071 set_failed_rule :_BlankLine unless _tmp 14072 return _tmp 14073 end 14074 14075 # Quoted = ("\"" (!"\"" .)* "\"" | "'" (!"'" .)* "'") 14076 def _Quoted 14077 14078 _save = self.pos 14079 while true # choice 14080 14081 _save1 = self.pos 14082 while true # sequence 14083 _tmp = match_string("\"") 14084 unless _tmp 14085 self.pos = _save1 14086 break 14087 end 14088 while true 14089 14090 _save3 = self.pos 14091 while true # sequence 14092 _save4 = self.pos 14093 _tmp = match_string("\"") 14094 _tmp = _tmp ? nil : true 14095 self.pos = _save4 14096 unless _tmp 14097 self.pos = _save3 14098 break 14099 end 14100 _tmp = get_byte 14101 unless _tmp 14102 self.pos = _save3 14103 end 14104 break 14105 end # end sequence 14106 14107 break unless _tmp 14108 end 14109 _tmp = true 14110 unless _tmp 14111 self.pos = _save1 14112 break 14113 end 14114 _tmp = match_string("\"") 14115 unless _tmp 14116 self.pos = _save1 14117 end 14118 break 14119 end # end sequence 14120 14121 break if _tmp 14122 self.pos = _save 14123 14124 _save5 = self.pos 14125 while true # sequence 14126 _tmp = match_string("'") 14127 unless _tmp 14128 self.pos = _save5 14129 break 14130 end 14131 while true 14132 14133 _save7 = self.pos 14134 while true # sequence 14135 _save8 = self.pos 14136 _tmp = match_string("'") 14137 _tmp = _tmp ? nil : true 14138 self.pos = _save8 14139 unless _tmp 14140 self.pos = _save7 14141 break 14142 end 14143 _tmp = get_byte 14144 unless _tmp 14145 self.pos = _save7 14146 end 14147 break 14148 end # end sequence 14149 14150 break unless _tmp 14151 end 14152 _tmp = true 14153 unless _tmp 14154 self.pos = _save5 14155 break 14156 end 14157 _tmp = match_string("'") 14158 unless _tmp 14159 self.pos = _save5 14160 end 14161 break 14162 end # end sequence 14163 14164 break if _tmp 14165 self.pos = _save 14166 break 14167 end # end choice 14168 14169 set_failed_rule :_Quoted unless _tmp 14170 return _tmp 14171 end 14172 14173 # HtmlAttribute = (AlphanumericAscii | "-")+ Spnl ("=" Spnl (Quoted | (!">" Nonspacechar)+))? Spnl 14174 def _HtmlAttribute 14175 14176 _save = self.pos 14177 while true # sequence 14178 _save1 = self.pos 14179 14180 _save2 = self.pos 14181 while true # choice 14182 _tmp = apply(:_AlphanumericAscii) 14183 break if _tmp 14184 self.pos = _save2 14185 _tmp = match_string("-") 14186 break if _tmp 14187 self.pos = _save2 14188 break 14189 end # end choice 14190 14191 if _tmp 14192 while true 14193 14194 _save3 = self.pos 14195 while true # choice 14196 _tmp = apply(:_AlphanumericAscii) 14197 break if _tmp 14198 self.pos = _save3 14199 _tmp = match_string("-") 14200 break if _tmp 14201 self.pos = _save3 14202 break 14203 end # end choice 14204 14205 break unless _tmp 14206 end 14207 _tmp = true 14208 else 14209 self.pos = _save1 14210 end 14211 unless _tmp 14212 self.pos = _save 14213 break 14214 end 14215 _tmp = apply(:_Spnl) 14216 unless _tmp 14217 self.pos = _save 14218 break 14219 end 14220 _save4 = self.pos 14221 14222 _save5 = self.pos 14223 while true # sequence 14224 _tmp = match_string("=") 14225 unless _tmp 14226 self.pos = _save5 14227 break 14228 end 14229 _tmp = apply(:_Spnl) 14230 unless _tmp 14231 self.pos = _save5 14232 break 14233 end 14234 14235 _save6 = self.pos 14236 while true # choice 14237 _tmp = apply(:_Quoted) 14238 break if _tmp 14239 self.pos = _save6 14240 _save7 = self.pos 14241 14242 _save8 = self.pos 14243 while true # sequence 14244 _save9 = self.pos 14245 _tmp = match_string(">") 14246 _tmp = _tmp ? nil : true 14247 self.pos = _save9 14248 unless _tmp 14249 self.pos = _save8 14250 break 14251 end 14252 _tmp = apply(:_Nonspacechar) 14253 unless _tmp 14254 self.pos = _save8 14255 end 14256 break 14257 end # end sequence 14258 14259 if _tmp 14260 while true 14261 14262 _save10 = self.pos 14263 while true # sequence 14264 _save11 = self.pos 14265 _tmp = match_string(">") 14266 _tmp = _tmp ? nil : true 14267 self.pos = _save11 14268 unless _tmp 14269 self.pos = _save10 14270 break 14271 end 14272 _tmp = apply(:_Nonspacechar) 14273 unless _tmp 14274 self.pos = _save10 14275 end 14276 break 14277 end # end sequence 14278 14279 break unless _tmp 14280 end 14281 _tmp = true 14282 else 14283 self.pos = _save7 14284 end 14285 break if _tmp 14286 self.pos = _save6 14287 break 14288 end # end choice 14289 14290 unless _tmp 14291 self.pos = _save5 14292 end 14293 break 14294 end # end sequence 14295 14296 unless _tmp 14297 _tmp = true 14298 self.pos = _save4 14299 end 14300 unless _tmp 14301 self.pos = _save 14302 break 14303 end 14304 _tmp = apply(:_Spnl) 14305 unless _tmp 14306 self.pos = _save 14307 end 14308 break 14309 end # end sequence 14310 14311 set_failed_rule :_HtmlAttribute unless _tmp 14312 return _tmp 14313 end 14314 14315 # HtmlComment = "<!--" (!"-->" .)* "-->" 14316 def _HtmlComment 14317 14318 _save = self.pos 14319 while true # sequence 14320 _tmp = match_string("<!--") 14321 unless _tmp 14322 self.pos = _save 14323 break 14324 end 14325 while true 14326 14327 _save2 = self.pos 14328 while true # sequence 14329 _save3 = self.pos 14330 _tmp = match_string("-->") 14331 _tmp = _tmp ? nil : true 14332 self.pos = _save3 14333 unless _tmp 14334 self.pos = _save2 14335 break 14336 end 14337 _tmp = get_byte 14338 unless _tmp 14339 self.pos = _save2 14340 end 14341 break 14342 end # end sequence 14343 14344 break unless _tmp 14345 end 14346 _tmp = true 14347 unless _tmp 14348 self.pos = _save 14349 break 14350 end 14351 _tmp = match_string("-->") 14352 unless _tmp 14353 self.pos = _save 14354 end 14355 break 14356 end # end sequence 14357 14358 set_failed_rule :_HtmlComment unless _tmp 14359 return _tmp 14360 end 14361 14362 # HtmlTag = "<" Spnl "/"? AlphanumericAscii+ Spnl HtmlAttribute* "/"? Spnl ">" 14363 def _HtmlTag 14364 14365 _save = self.pos 14366 while true # sequence 14367 _tmp = match_string("<") 14368 unless _tmp 14369 self.pos = _save 14370 break 14371 end 14372 _tmp = apply(:_Spnl) 14373 unless _tmp 14374 self.pos = _save 14375 break 14376 end 14377 _save1 = self.pos 14378 _tmp = match_string("/") 14379 unless _tmp 14380 _tmp = true 14381 self.pos = _save1 14382 end 14383 unless _tmp 14384 self.pos = _save 14385 break 14386 end 14387 _save2 = self.pos 14388 _tmp = apply(:_AlphanumericAscii) 14389 if _tmp 14390 while true 14391 _tmp = apply(:_AlphanumericAscii) 14392 break unless _tmp 14393 end 14394 _tmp = true 14395 else 14396 self.pos = _save2 14397 end 14398 unless _tmp 14399 self.pos = _save 14400 break 14401 end 14402 _tmp = apply(:_Spnl) 14403 unless _tmp 14404 self.pos = _save 14405 break 14406 end 14407 while true 14408 _tmp = apply(:_HtmlAttribute) 14409 break unless _tmp 14410 end 14411 _tmp = true 14412 unless _tmp 14413 self.pos = _save 14414 break 14415 end 14416 _save4 = self.pos 14417 _tmp = match_string("/") 14418 unless _tmp 14419 _tmp = true 14420 self.pos = _save4 14421 end 14422 unless _tmp 14423 self.pos = _save 14424 break 14425 end 14426 _tmp = apply(:_Spnl) 14427 unless _tmp 14428 self.pos = _save 14429 break 14430 end 14431 _tmp = match_string(">") 14432 unless _tmp 14433 self.pos = _save 14434 end 14435 break 14436 end # end sequence 14437 14438 set_failed_rule :_HtmlTag unless _tmp 14439 return _tmp 14440 end 14441 14442 # Eof = !. 14443 def _Eof 14444 _save = self.pos 14445 _tmp = get_byte 14446 _tmp = _tmp ? nil : true 14447 self.pos = _save 14448 set_failed_rule :_Eof unless _tmp 14449 return _tmp 14450 end 14451 14452 # Nonspacechar = !@Spacechar !@Newline . 14453 def _Nonspacechar 14454 14455 _save = self.pos 14456 while true # sequence 14457 _save1 = self.pos 14458 _tmp = _Spacechar() 14459 _tmp = _tmp ? nil : true 14460 self.pos = _save1 14461 unless _tmp 14462 self.pos = _save 14463 break 14464 end 14465 _save2 = self.pos 14466 _tmp = _Newline() 14467 _tmp = _tmp ? nil : true 14468 self.pos = _save2 14469 unless _tmp 14470 self.pos = _save 14471 break 14472 end 14473 _tmp = get_byte 14474 unless _tmp 14475 self.pos = _save 14476 end 14477 break 14478 end # end sequence 14479 14480 set_failed_rule :_Nonspacechar unless _tmp 14481 return _tmp 14482 end 14483 14484 # Sp = @Spacechar* 14485 def _Sp 14486 while true 14487 _tmp = _Spacechar() 14488 break unless _tmp 14489 end 14490 _tmp = true 14491 set_failed_rule :_Sp unless _tmp 14492 return _tmp 14493 end 14494 14495 # Spnl = @Sp (@Newline @Sp)? 14496 def _Spnl 14497 14498 _save = self.pos 14499 while true # sequence 14500 _tmp = _Sp() 14501 unless _tmp 14502 self.pos = _save 14503 break 14504 end 14505 _save1 = self.pos 14506 14507 _save2 = self.pos 14508 while true # sequence 14509 _tmp = _Newline() 14510 unless _tmp 14511 self.pos = _save2 14512 break 14513 end 14514 _tmp = _Sp() 14515 unless _tmp 14516 self.pos = _save2 14517 end 14518 break 14519 end # end sequence 14520 14521 unless _tmp 14522 _tmp = true 14523 self.pos = _save1 14524 end 14525 unless _tmp 14526 self.pos = _save 14527 end 14528 break 14529 end # end sequence 14530 14531 set_failed_rule :_Spnl unless _tmp 14532 return _tmp 14533 end 14534 14535 # SpecialChar = (/[~*_`&\[\]()<!#\\'"]/ | @ExtendedSpecialChar) 14536 def _SpecialChar 14537 14538 _save = self.pos 14539 while true # choice 14540 _tmp = scan(/\A(?-mix:[~*_`&\[\]()<!#\\'"])/) 14541 break if _tmp 14542 self.pos = _save 14543 _tmp = _ExtendedSpecialChar() 14544 break if _tmp 14545 self.pos = _save 14546 break 14547 end # end choice 14548 14549 set_failed_rule :_SpecialChar unless _tmp 14550 return _tmp 14551 end 14552 14553 # NormalChar = !(@SpecialChar | @Spacechar | @Newline) . 14554 def _NormalChar 14555 14556 _save = self.pos 14557 while true # sequence 14558 _save1 = self.pos 14559 14560 _save2 = self.pos 14561 while true # choice 14562 _tmp = _SpecialChar() 14563 break if _tmp 14564 self.pos = _save2 14565 _tmp = _Spacechar() 14566 break if _tmp 14567 self.pos = _save2 14568 _tmp = _Newline() 14569 break if _tmp 14570 self.pos = _save2 14571 break 14572 end # end choice 14573 14574 _tmp = _tmp ? nil : true 14575 self.pos = _save1 14576 unless _tmp 14577 self.pos = _save 14578 break 14579 end 14580 _tmp = get_byte 14581 unless _tmp 14582 self.pos = _save 14583 end 14584 break 14585 end # end sequence 14586 14587 set_failed_rule :_NormalChar unless _tmp 14588 return _tmp 14589 end 14590 14591 # Digit = [0-9] 14592 def _Digit 14593 _save = self.pos 14594 _tmp = get_byte 14595 if _tmp 14596 unless _tmp >= 48 and _tmp <= 57 14597 self.pos = _save 14598 _tmp = nil 14599 end 14600 end 14601 set_failed_rule :_Digit unless _tmp 14602 return _tmp 14603 end 14604 14605 # Alphanumeric = %literals.Alphanumeric 14606 def _Alphanumeric 14607 _tmp = @_grammar_literals.external_invoke(self, :_Alphanumeric) 14608 set_failed_rule :_Alphanumeric unless _tmp 14609 return _tmp 14610 end 14611 14612 # AlphanumericAscii = %literals.AlphanumericAscii 14613 def _AlphanumericAscii 14614 _tmp = @_grammar_literals.external_invoke(self, :_AlphanumericAscii) 14615 set_failed_rule :_AlphanumericAscii unless _tmp 14616 return _tmp 14617 end 14618 14619 # BOM = %literals.BOM 14620 def _BOM 14621 _tmp = @_grammar_literals.external_invoke(self, :_BOM) 14622 set_failed_rule :_BOM unless _tmp 14623 return _tmp 14624 end 14625 14626 # Newline = %literals.Newline 14627 def _Newline 14628 _tmp = @_grammar_literals.external_invoke(self, :_Newline) 14629 set_failed_rule :_Newline unless _tmp 14630 return _tmp 14631 end 14632 14633 # Spacechar = %literals.Spacechar 14634 def _Spacechar 14635 _tmp = @_grammar_literals.external_invoke(self, :_Spacechar) 14636 set_failed_rule :_Spacechar unless _tmp 14637 return _tmp 14638 end 14639 14640 # HexEntity = /&#x/i < /[0-9a-fA-F]+/ > ";" { [text.to_i(16)].pack 'U' } 14641 def _HexEntity 14642 14643 _save = self.pos 14644 while true # sequence 14645 _tmp = scan(/\A(?i-mx:&#x)/) 14646 unless _tmp 14647 self.pos = _save 14648 break 14649 end 14650 _text_start = self.pos 14651 _tmp = scan(/\A(?-mix:[0-9a-fA-F]+)/) 14652 if _tmp 14653 text = get_text(_text_start) 14654 end 14655 unless _tmp 14656 self.pos = _save 14657 break 14658 end 14659 _tmp = match_string(";") 14660 unless _tmp 14661 self.pos = _save 14662 break 14663 end 14664 @result = begin; [text.to_i(16)].pack 'U' ; end 14665 _tmp = true 14666 unless _tmp 14667 self.pos = _save 14668 end 14669 break 14670 end # end sequence 14671 14672 set_failed_rule :_HexEntity unless _tmp 14673 return _tmp 14674 end 14675 14676 # DecEntity = "&#" < /[0-9]+/ > ";" { [text.to_i].pack 'U' } 14677 def _DecEntity 14678 14679 _save = self.pos 14680 while true # sequence 14681 _tmp = match_string("&#") 14682 unless _tmp 14683 self.pos = _save 14684 break 14685 end 14686 _text_start = self.pos 14687 _tmp = scan(/\A(?-mix:[0-9]+)/) 14688 if _tmp 14689 text = get_text(_text_start) 14690 end 14691 unless _tmp 14692 self.pos = _save 14693 break 14694 end 14695 _tmp = match_string(";") 14696 unless _tmp 14697 self.pos = _save 14698 break 14699 end 14700 @result = begin; [text.to_i].pack 'U' ; end 14701 _tmp = true 14702 unless _tmp 14703 self.pos = _save 14704 end 14705 break 14706 end # end sequence 14707 14708 set_failed_rule :_DecEntity unless _tmp 14709 return _tmp 14710 end 14711 14712 # CharEntity = "&" < /[A-Za-z0-9]+/ > ";" { if entity = HTML_ENTITIES[text] then entity.pack 'U*' else "&#{text};" end } 14713 def _CharEntity 14714 14715 _save = self.pos 14716 while true # sequence 14717 _tmp = match_string("&") 14718 unless _tmp 14719 self.pos = _save 14720 break 14721 end 14722 _text_start = self.pos 14723 _tmp = scan(/\A(?-mix:[A-Za-z0-9]+)/) 14724 if _tmp 14725 text = get_text(_text_start) 14726 end 14727 unless _tmp 14728 self.pos = _save 14729 break 14730 end 14731 _tmp = match_string(";") 14732 unless _tmp 14733 self.pos = _save 14734 break 14735 end 14736 @result = begin; if entity = HTML_ENTITIES[text] then 14737 entity.pack 'U*' 14738 else 14739 "&#{text};" 14740 end 14741 ; end 14742 _tmp = true 14743 unless _tmp 14744 self.pos = _save 14745 end 14746 break 14747 end # end sequence 14748 14749 set_failed_rule :_CharEntity unless _tmp 14750 return _tmp 14751 end 14752 14753 # NonindentSpace = / {0,3}/ 14754 def _NonindentSpace 14755 _tmp = scan(/\A(?-mix: {0,3})/) 14756 set_failed_rule :_NonindentSpace unless _tmp 14757 return _tmp 14758 end 14759 14760 # Indent = /\t| / 14761 def _Indent 14762 _tmp = scan(/\A(?-mix:\t| )/) 14763 set_failed_rule :_Indent unless _tmp 14764 return _tmp 14765 end 14766 14767 # IndentedLine = Indent Line 14768 def _IndentedLine 14769 14770 _save = self.pos 14771 while true # sequence 14772 _tmp = apply(:_Indent) 14773 unless _tmp 14774 self.pos = _save 14775 break 14776 end 14777 _tmp = apply(:_Line) 14778 unless _tmp 14779 self.pos = _save 14780 end 14781 break 14782 end # end sequence 14783 14784 set_failed_rule :_IndentedLine unless _tmp 14785 return _tmp 14786 end 14787 14788 # OptionallyIndentedLine = Indent? Line 14789 def _OptionallyIndentedLine 14790 14791 _save = self.pos 14792 while true # sequence 14793 _save1 = self.pos 14794 _tmp = apply(:_Indent) 14795 unless _tmp 14796 _tmp = true 14797 self.pos = _save1 14798 end 14799 unless _tmp 14800 self.pos = _save 14801 break 14802 end 14803 _tmp = apply(:_Line) 14804 unless _tmp 14805 self.pos = _save 14806 end 14807 break 14808 end # end sequence 14809 14810 set_failed_rule :_OptionallyIndentedLine unless _tmp 14811 return _tmp 14812 end 14813 14814 # StartList = &. { [] } 14815 def _StartList 14816 14817 _save = self.pos 14818 while true # sequence 14819 _save1 = self.pos 14820 _tmp = get_byte 14821 self.pos = _save1 14822 unless _tmp 14823 self.pos = _save 14824 break 14825 end 14826 @result = begin; [] ; end 14827 _tmp = true 14828 unless _tmp 14829 self.pos = _save 14830 end 14831 break 14832 end # end sequence 14833 14834 set_failed_rule :_StartList unless _tmp 14835 return _tmp 14836 end 14837 14838 # Line = @RawLine:a { a } 14839 def _Line 14840 14841 _save = self.pos 14842 while true # sequence 14843 _tmp = _RawLine() 14844 a = @result 14845 unless _tmp 14846 self.pos = _save 14847 break 14848 end 14849 @result = begin; a ; end 14850 _tmp = true 14851 unless _tmp 14852 self.pos = _save 14853 end 14854 break 14855 end # end sequence 14856 14857 set_failed_rule :_Line unless _tmp 14858 return _tmp 14859 end 14860 14861 # RawLine = (< (!"\r" !"\n" .)* @Newline > | < .+ > @Eof) { text } 14862 def _RawLine 14863 14864 _save = self.pos 14865 while true # sequence 14866 14867 _save1 = self.pos 14868 while true # choice 14869 _text_start = self.pos 14870 14871 _save2 = self.pos 14872 while true # sequence 14873 while true 14874 14875 _save4 = self.pos 14876 while true # sequence 14877 _save5 = self.pos 14878 _tmp = match_string("\r") 14879 _tmp = _tmp ? nil : true 14880 self.pos = _save5 14881 unless _tmp 14882 self.pos = _save4 14883 break 14884 end 14885 _save6 = self.pos 14886 _tmp = match_string("\n") 14887 _tmp = _tmp ? nil : true 14888 self.pos = _save6 14889 unless _tmp 14890 self.pos = _save4 14891 break 14892 end 14893 _tmp = get_byte 14894 unless _tmp 14895 self.pos = _save4 14896 end 14897 break 14898 end # end sequence 14899 14900 break unless _tmp 14901 end 14902 _tmp = true 14903 unless _tmp 14904 self.pos = _save2 14905 break 14906 end 14907 _tmp = _Newline() 14908 unless _tmp 14909 self.pos = _save2 14910 end 14911 break 14912 end # end sequence 14913 14914 if _tmp 14915 text = get_text(_text_start) 14916 end 14917 break if _tmp 14918 self.pos = _save1 14919 14920 _save7 = self.pos 14921 while true # sequence 14922 _text_start = self.pos 14923 _save8 = self.pos 14924 _tmp = get_byte 14925 if _tmp 14926 while true 14927 _tmp = get_byte 14928 break unless _tmp 14929 end 14930 _tmp = true 14931 else 14932 self.pos = _save8 14933 end 14934 if _tmp 14935 text = get_text(_text_start) 14936 end 14937 unless _tmp 14938 self.pos = _save7 14939 break 14940 end 14941 _tmp = _Eof() 14942 unless _tmp 14943 self.pos = _save7 14944 end 14945 break 14946 end # end sequence 14947 14948 break if _tmp 14949 self.pos = _save1 14950 break 14951 end # end choice 14952 14953 unless _tmp 14954 self.pos = _save 14955 break 14956 end 14957 @result = begin; text ; end 14958 _tmp = true 14959 unless _tmp 14960 self.pos = _save 14961 end 14962 break 14963 end # end sequence 14964 14965 set_failed_rule :_RawLine unless _tmp 14966 return _tmp 14967 end 14968 14969 # SkipBlock = (HtmlBlock | (!"#" !SetextBottom1 !SetextBottom2 !@BlankLine @RawLine)+ @BlankLine* | @BlankLine+ | @RawLine) 14970 def _SkipBlock 14971 14972 _save = self.pos 14973 while true # choice 14974 _tmp = apply(:_HtmlBlock) 14975 break if _tmp 14976 self.pos = _save 14977 14978 _save1 = self.pos 14979 while true # sequence 14980 _save2 = self.pos 14981 14982 _save3 = self.pos 14983 while true # sequence 14984 _save4 = self.pos 14985 _tmp = match_string("#") 14986 _tmp = _tmp ? nil : true 14987 self.pos = _save4 14988 unless _tmp 14989 self.pos = _save3 14990 break 14991 end 14992 _save5 = self.pos 14993 _tmp = apply(:_SetextBottom1) 14994 _tmp = _tmp ? nil : true 14995 self.pos = _save5 14996 unless _tmp 14997 self.pos = _save3 14998 break 14999 end 15000 _save6 = self.pos 15001 _tmp = apply(:_SetextBottom2) 15002 _tmp = _tmp ? nil : true 15003 self.pos = _save6 15004 unless _tmp 15005 self.pos = _save3 15006 break 15007 end 15008 _save7 = self.pos 15009 _tmp = _BlankLine() 15010 _tmp = _tmp ? nil : true 15011 self.pos = _save7 15012 unless _tmp 15013 self.pos = _save3 15014 break 15015 end 15016 _tmp = _RawLine() 15017 unless _tmp 15018 self.pos = _save3 15019 end 15020 break 15021 end # end sequence 15022 15023 if _tmp 15024 while true 15025 15026 _save8 = self.pos 15027 while true # sequence 15028 _save9 = self.pos 15029 _tmp = match_string("#") 15030 _tmp = _tmp ? nil : true 15031 self.pos = _save9 15032 unless _tmp 15033 self.pos = _save8 15034 break 15035 end 15036 _save10 = self.pos 15037 _tmp = apply(:_SetextBottom1) 15038 _tmp = _tmp ? nil : true 15039 self.pos = _save10 15040 unless _tmp 15041 self.pos = _save8 15042 break 15043 end 15044 _save11 = self.pos 15045 _tmp = apply(:_SetextBottom2) 15046 _tmp = _tmp ? nil : true 15047 self.pos = _save11 15048 unless _tmp 15049 self.pos = _save8 15050 break 15051 end 15052 _save12 = self.pos 15053 _tmp = _BlankLine() 15054 _tmp = _tmp ? nil : true 15055 self.pos = _save12 15056 unless _tmp 15057 self.pos = _save8 15058 break 15059 end 15060 _tmp = _RawLine() 15061 unless _tmp 15062 self.pos = _save8 15063 end 15064 break 15065 end # end sequence 15066 15067 break unless _tmp 15068 end 15069 _tmp = true 15070 else 15071 self.pos = _save2 15072 end 15073 unless _tmp 15074 self.pos = _save1 15075 break 15076 end 15077 while true 15078 _tmp = _BlankLine() 15079 break unless _tmp 15080 end 15081 _tmp = true 15082 unless _tmp 15083 self.pos = _save1 15084 end 15085 break 15086 end # end sequence 15087 15088 break if _tmp 15089 self.pos = _save 15090 _save14 = self.pos 15091 _tmp = _BlankLine() 15092 if _tmp 15093 while true 15094 _tmp = _BlankLine() 15095 break unless _tmp 15096 end 15097 _tmp = true 15098 else 15099 self.pos = _save14 15100 end 15101 break if _tmp 15102 self.pos = _save 15103 _tmp = _RawLine() 15104 break if _tmp 15105 self.pos = _save 15106 break 15107 end # end choice 15108 15109 set_failed_rule :_SkipBlock unless _tmp 15110 return _tmp 15111 end 15112 15113 # ExtendedSpecialChar = &{ notes? } "^" 15114 def _ExtendedSpecialChar 15115 15116 _save = self.pos 15117 while true # sequence 15118 _save1 = self.pos 15119 _tmp = begin; notes? ; end 15120 self.pos = _save1 15121 unless _tmp 15122 self.pos = _save 15123 break 15124 end 15125 _tmp = match_string("^") 15126 unless _tmp 15127 self.pos = _save 15128 end 15129 break 15130 end # end sequence 15131 15132 set_failed_rule :_ExtendedSpecialChar unless _tmp 15133 return _tmp 15134 end 15135 15136 # NoteReference = &{ notes? } RawNoteReference:ref { note_for ref } 15137 def _NoteReference 15138 15139 _save = self.pos 15140 while true # sequence 15141 _save1 = self.pos 15142 _tmp = begin; notes? ; end 15143 self.pos = _save1 15144 unless _tmp 15145 self.pos = _save 15146 break 15147 end 15148 _tmp = apply(:_RawNoteReference) 15149 ref = @result 15150 unless _tmp 15151 self.pos = _save 15152 break 15153 end 15154 @result = begin; note_for ref ; end 15155 _tmp = true 15156 unless _tmp 15157 self.pos = _save 15158 end 15159 break 15160 end # end sequence 15161 15162 set_failed_rule :_NoteReference unless _tmp 15163 return _tmp 15164 end 15165 15166 # RawNoteReference = "[^" < (!@Newline !"]" .)+ > "]" { text } 15167 def _RawNoteReference 15168 15169 _save = self.pos 15170 while true # sequence 15171 _tmp = match_string("[^") 15172 unless _tmp 15173 self.pos = _save 15174 break 15175 end 15176 _text_start = self.pos 15177 _save1 = self.pos 15178 15179 _save2 = self.pos 15180 while true # sequence 15181 _save3 = self.pos 15182 _tmp = _Newline() 15183 _tmp = _tmp ? nil : true 15184 self.pos = _save3 15185 unless _tmp 15186 self.pos = _save2 15187 break 15188 end 15189 _save4 = self.pos 15190 _tmp = match_string("]") 15191 _tmp = _tmp ? nil : true 15192 self.pos = _save4 15193 unless _tmp 15194 self.pos = _save2 15195 break 15196 end 15197 _tmp = get_byte 15198 unless _tmp 15199 self.pos = _save2 15200 end 15201 break 15202 end # end sequence 15203 15204 if _tmp 15205 while true 15206 15207 _save5 = self.pos 15208 while true # sequence 15209 _save6 = self.pos 15210 _tmp = _Newline() 15211 _tmp = _tmp ? nil : true 15212 self.pos = _save6 15213 unless _tmp 15214 self.pos = _save5 15215 break 15216 end 15217 _save7 = self.pos 15218 _tmp = match_string("]") 15219 _tmp = _tmp ? nil : true 15220 self.pos = _save7 15221 unless _tmp 15222 self.pos = _save5 15223 break 15224 end 15225 _tmp = get_byte 15226 unless _tmp 15227 self.pos = _save5 15228 end 15229 break 15230 end # end sequence 15231 15232 break unless _tmp 15233 end 15234 _tmp = true 15235 else 15236 self.pos = _save1 15237 end 15238 if _tmp 15239 text = get_text(_text_start) 15240 end 15241 unless _tmp 15242 self.pos = _save 15243 break 15244 end 15245 _tmp = match_string("]") 15246 unless _tmp 15247 self.pos = _save 15248 break 15249 end 15250 @result = begin; text ; end 15251 _tmp = true 15252 unless _tmp 15253 self.pos = _save 15254 end 15255 break 15256 end # end sequence 15257 15258 set_failed_rule :_RawNoteReference unless _tmp 15259 return _tmp 15260 end 15261 15262 # Note = &{ notes? } @NonindentSpace RawNoteReference:ref ":" @Sp @StartList:a RawNoteBlock:i { a.concat i } (&Indent RawNoteBlock:i { a.concat i })* { @footnotes[ref] = paragraph a nil } 15263 def _Note 15264 15265 _save = self.pos 15266 while true # sequence 15267 _save1 = self.pos 15268 _tmp = begin; notes? ; end 15269 self.pos = _save1 15270 unless _tmp 15271 self.pos = _save 15272 break 15273 end 15274 _tmp = _NonindentSpace() 15275 unless _tmp 15276 self.pos = _save 15277 break 15278 end 15279 _tmp = apply(:_RawNoteReference) 15280 ref = @result 15281 unless _tmp 15282 self.pos = _save 15283 break 15284 end 15285 _tmp = match_string(":") 15286 unless _tmp 15287 self.pos = _save 15288 break 15289 end 15290 _tmp = _Sp() 15291 unless _tmp 15292 self.pos = _save 15293 break 15294 end 15295 _tmp = _StartList() 15296 a = @result 15297 unless _tmp 15298 self.pos = _save 15299 break 15300 end 15301 _tmp = apply(:_RawNoteBlock) 15302 i = @result 15303 unless _tmp 15304 self.pos = _save 15305 break 15306 end 15307 @result = begin; a.concat i ; end 15308 _tmp = true 15309 unless _tmp 15310 self.pos = _save 15311 break 15312 end 15313 while true 15314 15315 _save3 = self.pos 15316 while true # sequence 15317 _save4 = self.pos 15318 _tmp = apply(:_Indent) 15319 self.pos = _save4 15320 unless _tmp 15321 self.pos = _save3 15322 break 15323 end 15324 _tmp = apply(:_RawNoteBlock) 15325 i = @result 15326 unless _tmp 15327 self.pos = _save3 15328 break 15329 end 15330 @result = begin; a.concat i ; end 15331 _tmp = true 15332 unless _tmp 15333 self.pos = _save3 15334 end 15335 break 15336 end # end sequence 15337 15338 break unless _tmp 15339 end 15340 _tmp = true 15341 unless _tmp 15342 self.pos = _save 15343 break 15344 end 15345 @result = begin; @footnotes[ref] = paragraph a 15346 15347 nil 15348 ; end 15349 _tmp = true 15350 unless _tmp 15351 self.pos = _save 15352 end 15353 break 15354 end # end sequence 15355 15356 set_failed_rule :_Note unless _tmp 15357 return _tmp 15358 end 15359 15360 # InlineNote = &{ notes? } "^[" @StartList:a (!"]" Inline:l { a << l })+ "]" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref } 15361 def _InlineNote 15362 15363 _save = self.pos 15364 while true # sequence 15365 _save1 = self.pos 15366 _tmp = begin; notes? ; end 15367 self.pos = _save1 15368 unless _tmp 15369 self.pos = _save 15370 break 15371 end 15372 _tmp = match_string("^[") 15373 unless _tmp 15374 self.pos = _save 15375 break 15376 end 15377 _tmp = _StartList() 15378 a = @result 15379 unless _tmp 15380 self.pos = _save 15381 break 15382 end 15383 _save2 = self.pos 15384 15385 _save3 = self.pos 15386 while true # sequence 15387 _save4 = self.pos 15388 _tmp = match_string("]") 15389 _tmp = _tmp ? nil : true 15390 self.pos = _save4 15391 unless _tmp 15392 self.pos = _save3 15393 break 15394 end 15395 _tmp = apply(:_Inline) 15396 l = @result 15397 unless _tmp 15398 self.pos = _save3 15399 break 15400 end 15401 @result = begin; a << l ; end 15402 _tmp = true 15403 unless _tmp 15404 self.pos = _save3 15405 end 15406 break 15407 end # end sequence 15408 15409 if _tmp 15410 while true 15411 15412 _save5 = self.pos 15413 while true # sequence 15414 _save6 = self.pos 15415 _tmp = match_string("]") 15416 _tmp = _tmp ? nil : true 15417 self.pos = _save6 15418 unless _tmp 15419 self.pos = _save5 15420 break 15421 end 15422 _tmp = apply(:_Inline) 15423 l = @result 15424 unless _tmp 15425 self.pos = _save5 15426 break 15427 end 15428 @result = begin; a << l ; end 15429 _tmp = true 15430 unless _tmp 15431 self.pos = _save5 15432 end 15433 break 15434 end # end sequence 15435 15436 break unless _tmp 15437 end 15438 _tmp = true 15439 else 15440 self.pos = _save2 15441 end 15442 unless _tmp 15443 self.pos = _save 15444 break 15445 end 15446 _tmp = match_string("]") 15447 unless _tmp 15448 self.pos = _save 15449 break 15450 end 15451 @result = begin; ref = [:inline, @note_order.length] 15452 @footnotes[ref] = paragraph a 15453 15454 note_for ref 15455 ; end 15456 _tmp = true 15457 unless _tmp 15458 self.pos = _save 15459 end 15460 break 15461 end # end sequence 15462 15463 set_failed_rule :_InlineNote unless _tmp 15464 return _tmp 15465 end 15466 15467 # Notes = (Note | SkipBlock)* 15468 def _Notes 15469 while true 15470 15471 _save1 = self.pos 15472 while true # choice 15473 _tmp = apply(:_Note) 15474 break if _tmp 15475 self.pos = _save1 15476 _tmp = apply(:_SkipBlock) 15477 break if _tmp 15478 self.pos = _save1 15479 break 15480 end # end choice 15481 15482 break unless _tmp 15483 end 15484 _tmp = true 15485 set_failed_rule :_Notes unless _tmp 15486 return _tmp 15487 end 15488 15489 # RawNoteBlock = @StartList:a (!@BlankLine OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a } 15490 def _RawNoteBlock 15491 15492 _save = self.pos 15493 while true # sequence 15494 _tmp = _StartList() 15495 a = @result 15496 unless _tmp 15497 self.pos = _save 15498 break 15499 end 15500 _save1 = self.pos 15501 15502 _save2 = self.pos 15503 while true # sequence 15504 _save3 = self.pos 15505 _tmp = _BlankLine() 15506 _tmp = _tmp ? nil : true 15507 self.pos = _save3 15508 unless _tmp 15509 self.pos = _save2 15510 break 15511 end 15512 _tmp = apply(:_OptionallyIndentedLine) 15513 l = @result 15514 unless _tmp 15515 self.pos = _save2 15516 break 15517 end 15518 @result = begin; a << l ; end 15519 _tmp = true 15520 unless _tmp 15521 self.pos = _save2 15522 end 15523 break 15524 end # end sequence 15525 15526 if _tmp 15527 while true 15528 15529 _save4 = self.pos 15530 while true # sequence 15531 _save5 = self.pos 15532 _tmp = _BlankLine() 15533 _tmp = _tmp ? nil : true 15534 self.pos = _save5 15535 unless _tmp 15536 self.pos = _save4 15537 break 15538 end 15539 _tmp = apply(:_OptionallyIndentedLine) 15540 l = @result 15541 unless _tmp 15542 self.pos = _save4 15543 break 15544 end 15545 @result = begin; a << l ; end 15546 _tmp = true 15547 unless _tmp 15548 self.pos = _save4 15549 end 15550 break 15551 end # end sequence 15552 15553 break unless _tmp 15554 end 15555 _tmp = true 15556 else 15557 self.pos = _save1 15558 end 15559 unless _tmp 15560 self.pos = _save 15561 break 15562 end 15563 _text_start = self.pos 15564 while true 15565 _tmp = _BlankLine() 15566 break unless _tmp 15567 end 15568 _tmp = true 15569 if _tmp 15570 text = get_text(_text_start) 15571 end 15572 unless _tmp 15573 self.pos = _save 15574 break 15575 end 15576 @result = begin; a << text ; end 15577 _tmp = true 15578 unless _tmp 15579 self.pos = _save 15580 break 15581 end 15582 @result = begin; a ; end 15583 _tmp = true 15584 unless _tmp 15585 self.pos = _save 15586 end 15587 break 15588 end # end sequence 15589 15590 set_failed_rule :_RawNoteBlock unless _tmp 15591 return _tmp 15592 end 15593 15594 # 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 } 15595 def _CodeFence 15596 15597 _save = self.pos 15598 while true # sequence 15599 _save1 = self.pos 15600 _tmp = begin; github? ; end 15601 self.pos = _save1 15602 unless _tmp 15603 self.pos = _save 15604 break 15605 end 15606 _tmp = apply(:_Ticks3) 15607 unless _tmp 15608 self.pos = _save 15609 break 15610 end 15611 _save2 = self.pos 15612 15613 _save3 = self.pos 15614 while true # sequence 15615 _tmp = _Sp() 15616 unless _tmp 15617 self.pos = _save3 15618 break 15619 end 15620 _tmp = apply(:_StrChunk) 15621 format = @result 15622 unless _tmp 15623 self.pos = _save3 15624 end 15625 break 15626 end # end sequence 15627 15628 unless _tmp 15629 _tmp = true 15630 self.pos = _save2 15631 end 15632 unless _tmp 15633 self.pos = _save 15634 break 15635 end 15636 _tmp = apply(:_Spnl) 15637 unless _tmp 15638 self.pos = _save 15639 break 15640 end 15641 _text_start = self.pos 15642 _save4 = self.pos 15643 15644 _save5 = self.pos 15645 while true # choice 15646 _save6 = self.pos 15647 15648 _save7 = self.pos 15649 while true # sequence 15650 _save8 = self.pos 15651 _tmp = match_string("`") 15652 _tmp = _tmp ? nil : true 15653 self.pos = _save8 15654 unless _tmp 15655 self.pos = _save7 15656 break 15657 end 15658 _tmp = apply(:_Nonspacechar) 15659 unless _tmp 15660 self.pos = _save7 15661 end 15662 break 15663 end # end sequence 15664 15665 if _tmp 15666 while true 15667 15668 _save9 = self.pos 15669 while true # sequence 15670 _save10 = self.pos 15671 _tmp = match_string("`") 15672 _tmp = _tmp ? nil : true 15673 self.pos = _save10 15674 unless _tmp 15675 self.pos = _save9 15676 break 15677 end 15678 _tmp = apply(:_Nonspacechar) 15679 unless _tmp 15680 self.pos = _save9 15681 end 15682 break 15683 end # end sequence 15684 15685 break unless _tmp 15686 end 15687 _tmp = true 15688 else 15689 self.pos = _save6 15690 end 15691 break if _tmp 15692 self.pos = _save5 15693 15694 _save11 = self.pos 15695 while true # sequence 15696 _save12 = self.pos 15697 _tmp = apply(:_Ticks3) 15698 _tmp = _tmp ? nil : true 15699 self.pos = _save12 15700 unless _tmp 15701 self.pos = _save11 15702 break 15703 end 15704 _tmp = scan(/\A(?-mix:`+)/) 15705 unless _tmp 15706 self.pos = _save11 15707 end 15708 break 15709 end # end sequence 15710 15711 break if _tmp 15712 self.pos = _save5 15713 _tmp = apply(:_Spacechar) 15714 break if _tmp 15715 self.pos = _save5 15716 _tmp = _Newline() 15717 break if _tmp 15718 self.pos = _save5 15719 break 15720 end # end choice 15721 15722 if _tmp 15723 while true 15724 15725 _save13 = self.pos 15726 while true # choice 15727 _save14 = self.pos 15728 15729 _save15 = self.pos 15730 while true # sequence 15731 _save16 = self.pos 15732 _tmp = match_string("`") 15733 _tmp = _tmp ? nil : true 15734 self.pos = _save16 15735 unless _tmp 15736 self.pos = _save15 15737 break 15738 end 15739 _tmp = apply(:_Nonspacechar) 15740 unless _tmp 15741 self.pos = _save15 15742 end 15743 break 15744 end # end sequence 15745 15746 if _tmp 15747 while true 15748 15749 _save17 = self.pos 15750 while true # sequence 15751 _save18 = self.pos 15752 _tmp = match_string("`") 15753 _tmp = _tmp ? nil : true 15754 self.pos = _save18 15755 unless _tmp 15756 self.pos = _save17 15757 break 15758 end 15759 _tmp = apply(:_Nonspacechar) 15760 unless _tmp 15761 self.pos = _save17 15762 end 15763 break 15764 end # end sequence 15765 15766 break unless _tmp 15767 end 15768 _tmp = true 15769 else 15770 self.pos = _save14 15771 end 15772 break if _tmp 15773 self.pos = _save13 15774 15775 _save19 = self.pos 15776 while true # sequence 15777 _save20 = self.pos 15778 _tmp = apply(:_Ticks3) 15779 _tmp = _tmp ? nil : true 15780 self.pos = _save20 15781 unless _tmp 15782 self.pos = _save19 15783 break 15784 end 15785 _tmp = scan(/\A(?-mix:`+)/) 15786 unless _tmp 15787 self.pos = _save19 15788 end 15789 break 15790 end # end sequence 15791 15792 break if _tmp 15793 self.pos = _save13 15794 _tmp = apply(:_Spacechar) 15795 break if _tmp 15796 self.pos = _save13 15797 _tmp = _Newline() 15798 break if _tmp 15799 self.pos = _save13 15800 break 15801 end # end choice 15802 15803 break unless _tmp 15804 end 15805 _tmp = true 15806 else 15807 self.pos = _save4 15808 end 15809 if _tmp 15810 text = get_text(_text_start) 15811 end 15812 unless _tmp 15813 self.pos = _save 15814 break 15815 end 15816 _tmp = apply(:_Ticks3) 15817 unless _tmp 15818 self.pos = _save 15819 break 15820 end 15821 _tmp = _Sp() 15822 unless _tmp 15823 self.pos = _save 15824 break 15825 end 15826 while true 15827 _tmp = _Newline() 15828 break unless _tmp 15829 end 15830 _tmp = true 15831 unless _tmp 15832 self.pos = _save 15833 break 15834 end 15835 @result = begin; verbatim = RDoc::Markup::Verbatim.new text 15836 verbatim.format = format.intern if format.instance_of?(String) 15837 verbatim 15838 ; end 15839 _tmp = true 15840 unless _tmp 15841 self.pos = _save 15842 end 15843 break 15844 end # end sequence 15845 15846 set_failed_rule :_CodeFence unless _tmp 15847 return _tmp 15848 end 15849 15850 # DefinitionList = &{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten } 15851 def _DefinitionList 15852 15853 _save = self.pos 15854 while true # sequence 15855 _save1 = self.pos 15856 _tmp = begin; definition_lists? ; end 15857 self.pos = _save1 15858 unless _tmp 15859 self.pos = _save 15860 break 15861 end 15862 _save2 = self.pos 15863 _ary = [] 15864 _tmp = apply(:_DefinitionListItem) 15865 if _tmp 15866 _ary << @result 15867 while true 15868 _tmp = apply(:_DefinitionListItem) 15869 _ary << @result if _tmp 15870 break unless _tmp 15871 end 15872 _tmp = true 15873 @result = _ary 15874 else 15875 self.pos = _save2 15876 end 15877 list = @result 15878 unless _tmp 15879 self.pos = _save 15880 break 15881 end 15882 @result = begin; RDoc::Markup::List.new :NOTE, *list.flatten ; end 15883 _tmp = true 15884 unless _tmp 15885 self.pos = _save 15886 end 15887 break 15888 end # end sequence 15889 15890 set_failed_rule :_DefinitionList unless _tmp 15891 return _tmp 15892 end 15893 15894 # 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 } 15895 def _DefinitionListItem 15896 15897 _save = self.pos 15898 while true # sequence 15899 _save1 = self.pos 15900 _ary = [] 15901 _tmp = apply(:_DefinitionListLabel) 15902 if _tmp 15903 _ary << @result 15904 while true 15905 _tmp = apply(:_DefinitionListLabel) 15906 _ary << @result if _tmp 15907 break unless _tmp 15908 end 15909 _tmp = true 15910 @result = _ary 15911 else 15912 self.pos = _save1 15913 end 15914 label = @result 15915 unless _tmp 15916 self.pos = _save 15917 break 15918 end 15919 _save2 = self.pos 15920 _ary = [] 15921 _tmp = apply(:_DefinitionListDefinition) 15922 if _tmp 15923 _ary << @result 15924 while true 15925 _tmp = apply(:_DefinitionListDefinition) 15926 _ary << @result if _tmp 15927 break unless _tmp 15928 end 15929 _tmp = true 15930 @result = _ary 15931 else 15932 self.pos = _save2 15933 end 15934 defns = @result 15935 unless _tmp 15936 self.pos = _save 15937 break 15938 end 15939 @result = begin; list_items = [] 15940 list_items << 15941 RDoc::Markup::ListItem.new(label, defns.shift) 15942 15943 list_items.concat defns.map { |defn| 15944 RDoc::Markup::ListItem.new nil, defn 15945 } unless list_items.empty? 15946 15947 list_items 15948 ; end 15949 _tmp = true 15950 unless _tmp 15951 self.pos = _save 15952 end 15953 break 15954 end # end sequence 15955 15956 set_failed_rule :_DefinitionListItem unless _tmp 15957 return _tmp 15958 end 15959 15960 # DefinitionListLabel = StrChunk:label @Sp @Newline { label } 15961 def _DefinitionListLabel 15962 15963 _save = self.pos 15964 while true # sequence 15965 _tmp = apply(:_StrChunk) 15966 label = @result 15967 unless _tmp 15968 self.pos = _save 15969 break 15970 end 15971 _tmp = _Sp() 15972 unless _tmp 15973 self.pos = _save 15974 break 15975 end 15976 _tmp = _Newline() 15977 unless _tmp 15978 self.pos = _save 15979 break 15980 end 15981 @result = begin; label ; end 15982 _tmp = true 15983 unless _tmp 15984 self.pos = _save 15985 end 15986 break 15987 end # end sequence 15988 15989 set_failed_rule :_DefinitionListLabel unless _tmp 15990 return _tmp 15991 end 15992 15993 # DefinitionListDefinition = @NonindentSpace ":" @Space Inlines:a @BlankLine+ { paragraph a } 15994 def _DefinitionListDefinition 15995 15996 _save = self.pos 15997 while true # sequence 15998 _tmp = _NonindentSpace() 15999 unless _tmp 16000 self.pos = _save 16001 break 16002 end 16003 _tmp = match_string(":") 16004 unless _tmp 16005 self.pos = _save 16006 break 16007 end 16008 _tmp = _Space() 16009 unless _tmp 16010 self.pos = _save 16011 break 16012 end 16013 _tmp = apply(:_Inlines) 16014 a = @result 16015 unless _tmp 16016 self.pos = _save 16017 break 16018 end 16019 _save1 = self.pos 16020 _tmp = _BlankLine() 16021 if _tmp 16022 while true 16023 _tmp = _BlankLine() 16024 break unless _tmp 16025 end 16026 _tmp = true 16027 else 16028 self.pos = _save1 16029 end 16030 unless _tmp 16031 self.pos = _save 16032 break 16033 end 16034 @result = begin; paragraph a ; end 16035 _tmp = true 16036 unless _tmp 16037 self.pos = _save 16038 end 16039 break 16040 end # end sequence 16041 16042 set_failed_rule :_DefinitionListDefinition unless _tmp 16043 return _tmp 16044 end 16045 16046 Rules = {} 16047 Rules[:_root] = rule_info("root", "Doc") 16048 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)") 16050 Rules[:_Para] = rule_info("Para", "@NonindentSpace Inlines:a @BlankLine+ { paragraph a }") 16051 Rules[:_Plain] = rule_info("Plain", "Inlines:a { paragraph a }") 16052 Rules[:_AtxInline] = rule_info("AtxInline", "!@Newline !(@Sp /\#*/ @Sp @Newline) Inline") 16053 Rules[:_AtxStart] = rule_info("AtxStart", "< /\\\#{1,6}/ > { text.length }") 16054 Rules[:_AtxHeading] = rule_info("AtxHeading", "AtxStart:s @Sp AtxInline+:a (@Sp /\#*/ @Sp)? @Newline { RDoc::Markup::Heading.new(s, a.join) }") 16055 Rules[:_SetextHeading] = rule_info("SetextHeading", "(SetextHeading1 | SetextHeading2)") 16056 Rules[:_SetextBottom1] = rule_info("SetextBottom1", "/={1,}/ @Newline") 16057 Rules[:_SetextBottom2] = rule_info("SetextBottom2", "/-{1,}/ @Newline") 16058 Rules[:_SetextHeading1] = rule_info("SetextHeading1", "&(@RawLine SetextBottom1) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom1 { RDoc::Markup::Heading.new(1, a.join) }") 16059 Rules[:_SetextHeading2] = rule_info("SetextHeading2", "&(@RawLine SetextBottom2) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom2 { RDoc::Markup::Heading.new(2, a.join) }") 16060 Rules[:_Heading] = rule_info("Heading", "(SetextHeading | AtxHeading)") 16061 Rules[:_BlockQuote] = rule_info("BlockQuote", "BlockQuoteRaw:a { RDoc::Markup::BlockQuote.new(*a) }") 16062 Rules[:_BlockQuoteRaw] = rule_info("BlockQuoteRaw", "@StartList:a (\">\" \" \"? Line:l { a << l } (!\">\" !@BlankLine Line:c { a << c })* (@BlankLine:n { a << n })*)+ { inner_parse a.join }") 16063 Rules[:_NonblankIndentedLine] = rule_info("NonblankIndentedLine", "!@BlankLine IndentedLine") 16064 Rules[:_VerbatimChunk] = rule_info("VerbatimChunk", "@BlankLine*:a NonblankIndentedLine+:b { a.concat b }") 16065 Rules[:_Verbatim] = rule_info("Verbatim", "VerbatimChunk+:a { RDoc::Markup::Verbatim.new(*a.flatten) }") 16066 Rules[:_HorizontalRule] = rule_info("HorizontalRule", "@NonindentSpace (\"*\" @Sp \"*\" @Sp \"*\" (@Sp \"*\")* | \"-\" @Sp \"-\" @Sp \"-\" (@Sp \"-\")* | \"_\" @Sp \"_\" @Sp \"_\" (@Sp \"_\")*) @Sp @Newline @BlankLine+ { RDoc::Markup::Rule.new 1 }") 16067 Rules[:_Bullet] = rule_info("Bullet", "!HorizontalRule @NonindentSpace /[+*-]/ @Spacechar+") 16068 Rules[:_BulletList] = rule_info("BulletList", "&Bullet (ListTight | ListLoose):a { RDoc::Markup::List.new(:BULLET, *a) }") 16069 Rules[:_ListTight] = rule_info("ListTight", "ListItemTight+:a @BlankLine* !(Bullet | Enumerator) { a }") 16070 Rules[:_ListLoose] = rule_info("ListLoose", "@StartList:a (ListItem:b @BlankLine* { a << b })+ { a }") 16071 Rules[:_ListItem] = rule_info("ListItem", "(Bullet | Enumerator) @StartList:a ListBlock:b { a << b } (ListContinuationBlock:c { a.push(*c) })* { list_item_from a }") 16072 Rules[:_ListItemTight] = rule_info("ListItemTight", "(Bullet | Enumerator) ListBlock:a (!@BlankLine ListContinuationBlock:b { a.push(*b) })* !ListContinuationBlock { list_item_from a }") 16073 Rules[:_ListBlock] = rule_info("ListBlock", "!@BlankLine Line:a ListBlockLine*:c { [a, *c] }") 16074 Rules[:_ListContinuationBlock] = rule_info("ListContinuationBlock", "@StartList:a @BlankLine* { a << \"\\n\" } (Indent ListBlock:b { a.concat b })+ { a }") 16075 Rules[:_Enumerator] = rule_info("Enumerator", "@NonindentSpace [0-9]+ \".\" @Spacechar+") 16076 Rules[:_OrderedList] = rule_info("OrderedList", "&Enumerator (ListTight | ListLoose):a { RDoc::Markup::List.new(:NUMBER, *a) }") 16077 Rules[:_ListBlockLine] = rule_info("ListBlockLine", "!@BlankLine !(Indent? (Bullet | Enumerator)) !HorizontalRule OptionallyIndentedLine") 16078 Rules[:_HtmlOpenAnchor] = rule_info("HtmlOpenAnchor", "\"<\" Spnl (\"a\" | \"A\") Spnl HtmlAttribute* \">\"") 16079 Rules[:_HtmlCloseAnchor] = rule_info("HtmlCloseAnchor", "\"<\" Spnl \"/\" (\"a\" | \"A\") Spnl \">\"") 16080 Rules[:_HtmlAnchor] = rule_info("HtmlAnchor", "HtmlOpenAnchor (HtmlAnchor | !HtmlCloseAnchor .)* HtmlCloseAnchor") 16081 Rules[:_HtmlBlockOpenAddress] = rule_info("HtmlBlockOpenAddress", "\"<\" Spnl (\"address\" | \"ADDRESS\") Spnl HtmlAttribute* \">\"") 16082 Rules[:_HtmlBlockCloseAddress] = rule_info("HtmlBlockCloseAddress", "\"<\" Spnl \"/\" (\"address\" | \"ADDRESS\") Spnl \">\"") 16083 Rules[:_HtmlBlockAddress] = rule_info("HtmlBlockAddress", "HtmlBlockOpenAddress (HtmlBlockAddress | !HtmlBlockCloseAddress .)* HtmlBlockCloseAddress") 16084 Rules[:_HtmlBlockOpenBlockquote] = rule_info("HtmlBlockOpenBlockquote", "\"<\" Spnl (\"blockquote\" | \"BLOCKQUOTE\") Spnl HtmlAttribute* \">\"") 16085 Rules[:_HtmlBlockCloseBlockquote] = rule_info("HtmlBlockCloseBlockquote", "\"<\" Spnl \"/\" (\"blockquote\" | \"BLOCKQUOTE\") Spnl \">\"") 16086 Rules[:_HtmlBlockBlockquote] = rule_info("HtmlBlockBlockquote", "HtmlBlockOpenBlockquote (HtmlBlockBlockquote | !HtmlBlockCloseBlockquote .)* HtmlBlockCloseBlockquote") 16087 Rules[:_HtmlBlockOpenCenter] = rule_info("HtmlBlockOpenCenter", "\"<\" Spnl (\"center\" | \"CENTER\") Spnl HtmlAttribute* \">\"") 16088 Rules[:_HtmlBlockCloseCenter] = rule_info("HtmlBlockCloseCenter", "\"<\" Spnl \"/\" (\"center\" | \"CENTER\") Spnl \">\"") 16089 Rules[:_HtmlBlockCenter] = rule_info("HtmlBlockCenter", "HtmlBlockOpenCenter (HtmlBlockCenter | !HtmlBlockCloseCenter .)* HtmlBlockCloseCenter") 16090 Rules[:_HtmlBlockOpenDir] = rule_info("HtmlBlockOpenDir", "\"<\" Spnl (\"dir\" | \"DIR\") Spnl HtmlAttribute* \">\"") 16091 Rules[:_HtmlBlockCloseDir] = rule_info("HtmlBlockCloseDir", "\"<\" Spnl \"/\" (\"dir\" | \"DIR\") Spnl \">\"") 16092 Rules[:_HtmlBlockDir] = rule_info("HtmlBlockDir", "HtmlBlockOpenDir (HtmlBlockDir | !HtmlBlockCloseDir .)* HtmlBlockCloseDir") 16093 Rules[:_HtmlBlockOpenDiv] = rule_info("HtmlBlockOpenDiv", "\"<\" Spnl (\"div\" | \"DIV\") Spnl HtmlAttribute* \">\"") 16094 Rules[:_HtmlBlockCloseDiv] = rule_info("HtmlBlockCloseDiv", "\"<\" Spnl \"/\" (\"div\" | \"DIV\") Spnl \">\"") 16095 Rules[:_HtmlBlockDiv] = rule_info("HtmlBlockDiv", "HtmlBlockOpenDiv (HtmlBlockDiv | !HtmlBlockCloseDiv .)* HtmlBlockCloseDiv") 16096 Rules[:_HtmlBlockOpenDl] = rule_info("HtmlBlockOpenDl", "\"<\" Spnl (\"dl\" | \"DL\") Spnl HtmlAttribute* \">\"") 16097 Rules[:_HtmlBlockCloseDl] = rule_info("HtmlBlockCloseDl", "\"<\" Spnl \"/\" (\"dl\" | \"DL\") Spnl \">\"") 16098 Rules[:_HtmlBlockDl] = rule_info("HtmlBlockDl", "HtmlBlockOpenDl (HtmlBlockDl | !HtmlBlockCloseDl .)* HtmlBlockCloseDl") 16099 Rules[:_HtmlBlockOpenFieldset] = rule_info("HtmlBlockOpenFieldset", "\"<\" Spnl (\"fieldset\" | \"FIELDSET\") Spnl HtmlAttribute* \">\"") 16100 Rules[:_HtmlBlockCloseFieldset] = rule_info("HtmlBlockCloseFieldset", "\"<\" Spnl \"/\" (\"fieldset\" | \"FIELDSET\") Spnl \">\"") 16101 Rules[:_HtmlBlockFieldset] = rule_info("HtmlBlockFieldset", "HtmlBlockOpenFieldset (HtmlBlockFieldset | !HtmlBlockCloseFieldset .)* HtmlBlockCloseFieldset") 16102 Rules[:_HtmlBlockOpenForm] = rule_info("HtmlBlockOpenForm", "\"<\" Spnl (\"form\" | \"FORM\") Spnl HtmlAttribute* \">\"") 16103 Rules[:_HtmlBlockCloseForm] = rule_info("HtmlBlockCloseForm", "\"<\" Spnl \"/\" (\"form\" | \"FORM\") Spnl \">\"") 16104 Rules[:_HtmlBlockForm] = rule_info("HtmlBlockForm", "HtmlBlockOpenForm (HtmlBlockForm | !HtmlBlockCloseForm .)* HtmlBlockCloseForm") 16105 Rules[:_HtmlBlockOpenH1] = rule_info("HtmlBlockOpenH1", "\"<\" Spnl (\"h1\" | \"H1\") Spnl HtmlAttribute* \">\"") 16106 Rules[:_HtmlBlockCloseH1] = rule_info("HtmlBlockCloseH1", "\"<\" Spnl \"/\" (\"h1\" | \"H1\") Spnl \">\"") 16107 Rules[:_HtmlBlockH1] = rule_info("HtmlBlockH1", "HtmlBlockOpenH1 (HtmlBlockH1 | !HtmlBlockCloseH1 .)* HtmlBlockCloseH1") 16108 Rules[:_HtmlBlockOpenH2] = rule_info("HtmlBlockOpenH2", "\"<\" Spnl (\"h2\" | \"H2\") Spnl HtmlAttribute* \">\"") 16109 Rules[:_HtmlBlockCloseH2] = rule_info("HtmlBlockCloseH2", "\"<\" Spnl \"/\" (\"h2\" | \"H2\") Spnl \">\"") 16110 Rules[:_HtmlBlockH2] = rule_info("HtmlBlockH2", "HtmlBlockOpenH2 (HtmlBlockH2 | !HtmlBlockCloseH2 .)* HtmlBlockCloseH2") 16111 Rules[:_HtmlBlockOpenH3] = rule_info("HtmlBlockOpenH3", "\"<\" Spnl (\"h3\" | \"H3\") Spnl HtmlAttribute* \">\"") 16112 Rules[:_HtmlBlockCloseH3] = rule_info("HtmlBlockCloseH3", "\"<\" Spnl \"/\" (\"h3\" | \"H3\") Spnl \">\"") 16113 Rules[:_HtmlBlockH3] = rule_info("HtmlBlockH3", "HtmlBlockOpenH3 (HtmlBlockH3 | !HtmlBlockCloseH3 .)* HtmlBlockCloseH3") 16114 Rules[:_HtmlBlockOpenH4] = rule_info("HtmlBlockOpenH4", "\"<\" Spnl (\"h4\" | \"H4\") Spnl HtmlAttribute* \">\"") 16115 Rules[:_HtmlBlockCloseH4] = rule_info("HtmlBlockCloseH4", "\"<\" Spnl \"/\" (\"h4\" | \"H4\") Spnl \">\"") 16116 Rules[:_HtmlBlockH4] = rule_info("HtmlBlockH4", "HtmlBlockOpenH4 (HtmlBlockH4 | !HtmlBlockCloseH4 .)* HtmlBlockCloseH4") 16117 Rules[:_HtmlBlockOpenH5] = rule_info("HtmlBlockOpenH5", "\"<\" Spnl (\"h5\" | \"H5\") Spnl HtmlAttribute* \">\"") 16118 Rules[:_HtmlBlockCloseH5] = rule_info("HtmlBlockCloseH5", "\"<\" Spnl \"/\" (\"h5\" | \"H5\") Spnl \">\"") 16119 Rules[:_HtmlBlockH5] = rule_info("HtmlBlockH5", "HtmlBlockOpenH5 (HtmlBlockH5 | !HtmlBlockCloseH5 .)* HtmlBlockCloseH5") 16120 Rules[:_HtmlBlockOpenH6] = rule_info("HtmlBlockOpenH6", "\"<\" Spnl (\"h6\" | \"H6\") Spnl HtmlAttribute* \">\"") 16121 Rules[:_HtmlBlockCloseH6] = rule_info("HtmlBlockCloseH6", "\"<\" Spnl \"/\" (\"h6\" | \"H6\") Spnl \">\"") 16122 Rules[:_HtmlBlockH6] = rule_info("HtmlBlockH6", "HtmlBlockOpenH6 (HtmlBlockH6 | !HtmlBlockCloseH6 .)* HtmlBlockCloseH6") 16123 Rules[:_HtmlBlockOpenMenu] = rule_info("HtmlBlockOpenMenu", "\"<\" Spnl (\"menu\" | \"MENU\") Spnl HtmlAttribute* \">\"") 16124 Rules[:_HtmlBlockCloseMenu] = rule_info("HtmlBlockCloseMenu", "\"<\" Spnl \"/\" (\"menu\" | \"MENU\") Spnl \">\"") 16125 Rules[:_HtmlBlockMenu] = rule_info("HtmlBlockMenu", "HtmlBlockOpenMenu (HtmlBlockMenu | !HtmlBlockCloseMenu .)* HtmlBlockCloseMenu") 16126 Rules[:_HtmlBlockOpenNoframes] = rule_info("HtmlBlockOpenNoframes", "\"<\" Spnl (\"noframes\" | \"NOFRAMES\") Spnl HtmlAttribute* \">\"") 16127 Rules[:_HtmlBlockCloseNoframes] = rule_info("HtmlBlockCloseNoframes", "\"<\" Spnl \"/\" (\"noframes\" | \"NOFRAMES\") Spnl \">\"") 16128 Rules[:_HtmlBlockNoframes] = rule_info("HtmlBlockNoframes", "HtmlBlockOpenNoframes (HtmlBlockNoframes | !HtmlBlockCloseNoframes .)* HtmlBlockCloseNoframes") 16129 Rules[:_HtmlBlockOpenNoscript] = rule_info("HtmlBlockOpenNoscript", "\"<\" Spnl (\"noscript\" | \"NOSCRIPT\") Spnl HtmlAttribute* \">\"") 16130 Rules[:_HtmlBlockCloseNoscript] = rule_info("HtmlBlockCloseNoscript", "\"<\" Spnl \"/\" (\"noscript\" | \"NOSCRIPT\") Spnl \">\"") 16131 Rules[:_HtmlBlockNoscript] = rule_info("HtmlBlockNoscript", "HtmlBlockOpenNoscript (HtmlBlockNoscript | !HtmlBlockCloseNoscript .)* HtmlBlockCloseNoscript") 16132 Rules[:_HtmlBlockOpenOl] = rule_info("HtmlBlockOpenOl", "\"<\" Spnl (\"ol\" | \"OL\") Spnl HtmlAttribute* \">\"") 16133 Rules[:_HtmlBlockCloseOl] = rule_info("HtmlBlockCloseOl", "\"<\" Spnl \"/\" (\"ol\" | \"OL\") Spnl \">\"") 16134 Rules[:_HtmlBlockOl] = rule_info("HtmlBlockOl", "HtmlBlockOpenOl (HtmlBlockOl | !HtmlBlockCloseOl .)* HtmlBlockCloseOl") 16135 Rules[:_HtmlBlockOpenP] = rule_info("HtmlBlockOpenP", "\"<\" Spnl (\"p\" | \"P\") Spnl HtmlAttribute* \">\"") 16136 Rules[:_HtmlBlockCloseP] = rule_info("HtmlBlockCloseP", "\"<\" Spnl \"/\" (\"p\" | \"P\") Spnl \">\"") 16137 Rules[:_HtmlBlockP] = rule_info("HtmlBlockP", "HtmlBlockOpenP (HtmlBlockP | !HtmlBlockCloseP .)* HtmlBlockCloseP") 16138 Rules[:_HtmlBlockOpenPre] = rule_info("HtmlBlockOpenPre", "\"<\" Spnl (\"pre\" | \"PRE\") Spnl HtmlAttribute* \">\"") 16139 Rules[:_HtmlBlockClosePre] = rule_info("HtmlBlockClosePre", "\"<\" Spnl \"/\" (\"pre\" | \"PRE\") Spnl \">\"") 16140 Rules[:_HtmlBlockPre] = rule_info("HtmlBlockPre", "HtmlBlockOpenPre (HtmlBlockPre | !HtmlBlockClosePre .)* HtmlBlockClosePre") 16141 Rules[:_HtmlBlockOpenTable] = rule_info("HtmlBlockOpenTable", "\"<\" Spnl (\"table\" | \"TABLE\") Spnl HtmlAttribute* \">\"") 16142 Rules[:_HtmlBlockCloseTable] = rule_info("HtmlBlockCloseTable", "\"<\" Spnl \"/\" (\"table\" | \"TABLE\") Spnl \">\"") 16143 Rules[:_HtmlBlockTable] = rule_info("HtmlBlockTable", "HtmlBlockOpenTable (HtmlBlockTable | !HtmlBlockCloseTable .)* HtmlBlockCloseTable") 16144 Rules[:_HtmlBlockOpenUl] = rule_info("HtmlBlockOpenUl", "\"<\" Spnl (\"ul\" | \"UL\") Spnl HtmlAttribute* \">\"") 16145 Rules[:_HtmlBlockCloseUl] = rule_info("HtmlBlockCloseUl", "\"<\" Spnl \"/\" (\"ul\" | \"UL\") Spnl \">\"") 16146 Rules[:_HtmlBlockUl] = rule_info("HtmlBlockUl", "HtmlBlockOpenUl (HtmlBlockUl | !HtmlBlockCloseUl .)* HtmlBlockCloseUl") 16147 Rules[:_HtmlBlockOpenDd] = rule_info("HtmlBlockOpenDd", "\"<\" Spnl (\"dd\" | \"DD\") Spnl HtmlAttribute* \">\"") 16148 Rules[:_HtmlBlockCloseDd] = rule_info("HtmlBlockCloseDd", "\"<\" Spnl \"/\" (\"dd\" | \"DD\") Spnl \">\"") 16149 Rules[:_HtmlBlockDd] = rule_info("HtmlBlockDd", "HtmlBlockOpenDd (HtmlBlockDd | !HtmlBlockCloseDd .)* HtmlBlockCloseDd") 16150 Rules[:_HtmlBlockOpenDt] = rule_info("HtmlBlockOpenDt", "\"<\" Spnl (\"dt\" | \"DT\") Spnl HtmlAttribute* \">\"") 16151 Rules[:_HtmlBlockCloseDt] = rule_info("HtmlBlockCloseDt", "\"<\" Spnl \"/\" (\"dt\" | \"DT\") Spnl \">\"") 16152 Rules[:_HtmlBlockDt] = rule_info("HtmlBlockDt", "HtmlBlockOpenDt (HtmlBlockDt | !HtmlBlockCloseDt .)* HtmlBlockCloseDt") 16153 Rules[:_HtmlBlockOpenFrameset] = rule_info("HtmlBlockOpenFrameset", "\"<\" Spnl (\"frameset\" | \"FRAMESET\") Spnl HtmlAttribute* \">\"") 16154 Rules[:_HtmlBlockCloseFrameset] = rule_info("HtmlBlockCloseFrameset", "\"<\" Spnl \"/\" (\"frameset\" | \"FRAMESET\") Spnl \">\"") 16155 Rules[:_HtmlBlockFrameset] = rule_info("HtmlBlockFrameset", "HtmlBlockOpenFrameset (HtmlBlockFrameset | !HtmlBlockCloseFrameset .)* HtmlBlockCloseFrameset") 16156 Rules[:_HtmlBlockOpenLi] = rule_info("HtmlBlockOpenLi", "\"<\" Spnl (\"li\" | \"LI\") Spnl HtmlAttribute* \">\"") 16157 Rules[:_HtmlBlockCloseLi] = rule_info("HtmlBlockCloseLi", "\"<\" Spnl \"/\" (\"li\" | \"LI\") Spnl \">\"") 16158 Rules[:_HtmlBlockLi] = rule_info("HtmlBlockLi", "HtmlBlockOpenLi (HtmlBlockLi | !HtmlBlockCloseLi .)* HtmlBlockCloseLi") 16159 Rules[:_HtmlBlockOpenTbody] = rule_info("HtmlBlockOpenTbody", "\"<\" Spnl (\"tbody\" | \"TBODY\") Spnl HtmlAttribute* \">\"") 16160 Rules[:_HtmlBlockCloseTbody] = rule_info("HtmlBlockCloseTbody", "\"<\" Spnl \"/\" (\"tbody\" | \"TBODY\") Spnl \">\"") 16161 Rules[:_HtmlBlockTbody] = rule_info("HtmlBlockTbody", "HtmlBlockOpenTbody (HtmlBlockTbody | !HtmlBlockCloseTbody .)* HtmlBlockCloseTbody") 16162 Rules[:_HtmlBlockOpenTd] = rule_info("HtmlBlockOpenTd", "\"<\" Spnl (\"td\" | \"TD\") Spnl HtmlAttribute* \">\"") 16163 Rules[:_HtmlBlockCloseTd] = rule_info("HtmlBlockCloseTd", "\"<\" Spnl \"/\" (\"td\" | \"TD\") Spnl \">\"") 16164 Rules[:_HtmlBlockTd] = rule_info("HtmlBlockTd", "HtmlBlockOpenTd (HtmlBlockTd | !HtmlBlockCloseTd .)* HtmlBlockCloseTd") 16165 Rules[:_HtmlBlockOpenTfoot] = rule_info("HtmlBlockOpenTfoot", "\"<\" Spnl (\"tfoot\" | \"TFOOT\") Spnl HtmlAttribute* \">\"") 16166 Rules[:_HtmlBlockCloseTfoot] = rule_info("HtmlBlockCloseTfoot", "\"<\" Spnl \"/\" (\"tfoot\" | \"TFOOT\") Spnl \">\"") 16167 Rules[:_HtmlBlockTfoot] = rule_info("HtmlBlockTfoot", "HtmlBlockOpenTfoot (HtmlBlockTfoot | !HtmlBlockCloseTfoot .)* HtmlBlockCloseTfoot") 16168 Rules[:_HtmlBlockOpenTh] = rule_info("HtmlBlockOpenTh", "\"<\" Spnl (\"th\" | \"TH\") Spnl HtmlAttribute* \">\"") 16169 Rules[:_HtmlBlockCloseTh] = rule_info("HtmlBlockCloseTh", "\"<\" Spnl \"/\" (\"th\" | \"TH\") Spnl \">\"") 16170 Rules[:_HtmlBlockTh] = rule_info("HtmlBlockTh", "HtmlBlockOpenTh (HtmlBlockTh | !HtmlBlockCloseTh .)* HtmlBlockCloseTh") 16171 Rules[:_HtmlBlockOpenThead] = rule_info("HtmlBlockOpenThead", "\"<\" Spnl (\"thead\" | \"THEAD\") Spnl HtmlAttribute* \">\"") 16172 Rules[:_HtmlBlockCloseThead] = rule_info("HtmlBlockCloseThead", "\"<\" Spnl \"/\" (\"thead\" | \"THEAD\") Spnl \">\"") 16173 Rules[:_HtmlBlockThead] = rule_info("HtmlBlockThead", "HtmlBlockOpenThead (HtmlBlockThead | !HtmlBlockCloseThead .)* HtmlBlockCloseThead") 16174 Rules[:_HtmlBlockOpenTr] = rule_info("HtmlBlockOpenTr", "\"<\" Spnl (\"tr\" | \"TR\") Spnl HtmlAttribute* \">\"") 16175 Rules[:_HtmlBlockCloseTr] = rule_info("HtmlBlockCloseTr", "\"<\" Spnl \"/\" (\"tr\" | \"TR\") Spnl \">\"") 16176 Rules[:_HtmlBlockTr] = rule_info("HtmlBlockTr", "HtmlBlockOpenTr (HtmlBlockTr | !HtmlBlockCloseTr .)* HtmlBlockCloseTr") 16177 Rules[:_HtmlBlockOpenScript] = rule_info("HtmlBlockOpenScript", "\"<\" Spnl (\"script\" | \"SCRIPT\") Spnl HtmlAttribute* \">\"") 16178 Rules[:_HtmlBlockCloseScript] = rule_info("HtmlBlockCloseScript", "\"<\" Spnl \"/\" (\"script\" | \"SCRIPT\") Spnl \">\"") 16179 Rules[:_HtmlBlockScript] = rule_info("HtmlBlockScript", "HtmlBlockOpenScript (!HtmlBlockCloseScript .)* HtmlBlockCloseScript") 16180 Rules[:_HtmlBlockOpenHead] = rule_info("HtmlBlockOpenHead", "\"<\" Spnl (\"head\" | \"HEAD\") Spnl HtmlAttribute* \">\"") 16181 Rules[:_HtmlBlockCloseHead] = rule_info("HtmlBlockCloseHead", "\"<\" Spnl \"/\" (\"head\" | \"HEAD\") Spnl \">\"") 16182 Rules[:_HtmlBlockHead] = rule_info("HtmlBlockHead", "HtmlBlockOpenHead (!HtmlBlockCloseHead .)* HtmlBlockCloseHead") 16183 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)") 16184 Rules[:_HtmlBlock] = rule_info("HtmlBlock", "< (HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) > @BlankLine+ { if html? then RDoc::Markup::Raw.new text end }") 16185 Rules[:_HtmlUnclosed] = rule_info("HtmlUnclosed", "\"<\" Spnl HtmlUnclosedType Spnl HtmlAttribute* Spnl \">\"") 16186 Rules[:_HtmlUnclosedType] = rule_info("HtmlUnclosedType", "(\"HR\" | \"hr\")") 16187 Rules[:_HtmlBlockSelfClosing] = rule_info("HtmlBlockSelfClosing", "\"<\" Spnl HtmlBlockType Spnl HtmlAttribute* \"/\" Spnl \">\"") 16188 Rules[:_HtmlBlockType] = rule_info("HtmlBlockType", "(\"ADDRESS\" | \"BLOCKQUOTE\" | \"CENTER\" | \"DD\" | \"DIR\" | \"DIV\" | \"DL\" | \"DT\" | \"FIELDSET\" | \"FORM\" | \"FRAMESET\" | \"H1\" | \"H2\" | \"H3\" | \"H4\" | \"H5\" | \"H6\" | \"HR\" | \"ISINDEX\" | \"LI\" | \"MENU\" | \"NOFRAMES\" | \"NOSCRIPT\" | \"OL\" | \"P\" | \"PRE\" | \"SCRIPT\" | \"TABLE\" | \"TBODY\" | \"TD\" | \"TFOOT\" | \"TH\" | \"THEAD\" | \"TR\" | \"UL\" | \"address\" | \"blockquote\" | \"center\" | \"dd\" | \"dir\" | \"div\" | \"dl\" | \"dt\" | \"fieldset\" | \"form\" | \"frameset\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"hr\" | \"isindex\" | \"li\" | \"menu\" | \"noframes\" | \"noscript\" | \"ol\" | \"p\" | \"pre\" | \"script\" | \"table\" | \"tbody\" | \"td\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"ul\")") 16189 Rules[:_StyleOpen] = rule_info("StyleOpen", "\"<\" Spnl (\"style\" | \"STYLE\") Spnl HtmlAttribute* \">\"") 16190 Rules[:_StyleClose] = rule_info("StyleClose", "\"<\" Spnl \"/\" (\"style\" | \"STYLE\") Spnl \">\"") 16191 Rules[:_InStyleTags] = rule_info("InStyleTags", "StyleOpen (!StyleClose .)* StyleClose") 16192 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 }") 16194 Rules[:_Inline] = rule_info("Inline", "(Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)") 16195 Rules[:_Space] = rule_info("Space", "@Spacechar+ { \" \" }") 16196 Rules[:_Str] = rule_info("Str", "@StartList:a < @NormalChar+ > { a = text } (StrChunk:c { a << c })* { a }") 16197 Rules[:_StrChunk] = rule_info("StrChunk", "< (@NormalChar | /_+/ &Alphanumeric)+ > { text }") 16198 Rules[:_EscapedChar] = rule_info("EscapedChar", "\"\\\\\" !@Newline < /[:\\\\`|*_{}\\[\\]()\#+.!><-]/ > { text }") 16199 Rules[:_Entity] = rule_info("Entity", "(HexEntity | DecEntity | CharEntity):a { a }") 16200 Rules[:_Endline] = rule_info("Endline", "(@LineBreak | @TerminalEndline | @NormalEndline)") 16201 Rules[:_NormalEndline] = rule_info("NormalEndline", "@Sp @Newline !@BlankLine !\">\" !AtxStart !(Line /={1,}|-{1,}/ @Newline) { \"\\n\" }") 16202 Rules[:_TerminalEndline] = rule_info("TerminalEndline", "@Sp @Newline @Eof") 16203 Rules[:_LineBreak] = rule_info("LineBreak", "\" \" @NormalEndline { RDoc::Markup::HardBreak.new }") 16204 Rules[:_Symbol] = rule_info("Symbol", "< @SpecialChar > { text }") 16205 Rules[:_UlOrStarLine] = rule_info("UlOrStarLine", "(UlLine | StarLine):a { a }") 16206 Rules[:_StarLine] = rule_info("StarLine", "(< /\\*{4,}/ > { text } | < @Spacechar /\\*+/ &@Spacechar > { text })") 16207 Rules[:_UlLine] = rule_info("UlLine", "(< /_{4,}/ > { text } | < @Spacechar /_+/ &@Spacechar > { text })") 16208 Rules[:_Emph] = rule_info("Emph", "(EmphStar | EmphUl)") 16209 Rules[:_Whitespace] = rule_info("Whitespace", "(@Spacechar | @Newline)") 16210 Rules[:_EmphStar] = rule_info("EmphStar", "\"*\" !@Whitespace @StartList:a (!\"*\" Inline:b { a << b } | StrongStar:b { a << b })+ \"*\" { emphasis a.join }") 16211 Rules[:_EmphUl] = rule_info("EmphUl", "\"_\" !@Whitespace @StartList:a (!\"_\" Inline:b { a << b } | StrongUl:b { a << b })+ \"_\" { emphasis a.join }") 16212 Rules[:_Strong] = rule_info("Strong", "(StrongStar | StrongUl)") 16213 Rules[:_StrongStar] = rule_info("StrongStar", "\"**\" !@Whitespace @StartList:a (!\"**\" Inline:b { a << b })+ \"**\" { strong a.join }") 16214 Rules[:_StrongUl] = rule_info("StrongUl", "\"__\" !@Whitespace @StartList:a (!\"__\" Inline:b { a << b })+ \"__\" { strong a.join }") 16215 Rules[:_Strike] = rule_info("Strike", "&{ strike? } \"~~\" !@Whitespace @StartList:a (!\"~~\" Inline:b { a << b })+ \"~~\" { strike a.join }") 16216 Rules[:_Image] = rule_info("Image", "\"!\" (ExplicitLink | ReferenceLink):a { \"rdoc-image:\#{a[/\\[(.*)\\]/, 1]}\" }") 16217 Rules[:_Link] = rule_info("Link", "(ExplicitLink | ReferenceLink | AutoLink)") 16218 Rules[:_ReferenceLink] = rule_info("ReferenceLink", "(ReferenceLinkDouble | ReferenceLinkSingle)") 16219 Rules[:_ReferenceLinkDouble] = rule_info("ReferenceLinkDouble", "Label:content < Spnl > !\"[]\" Label:label { link_to content, label, text }") 16220 Rules[:_ReferenceLinkSingle] = rule_info("ReferenceLinkSingle", "Label:content < (Spnl \"[]\")? > { link_to content, content, text }") 16221 Rules[:_ExplicitLink] = rule_info("ExplicitLink", "Label:l \"(\" @Sp Source:s Spnl Title @Sp \")\" { \"{\#{l}}[\#{s}]\" }") 16222 Rules[:_Source] = rule_info("Source", "(\"<\" < SourceContents > \">\" | < SourceContents >) { text }") 16223 Rules[:_SourceContents] = rule_info("SourceContents", "((!\"(\" !\")\" !\">\" Nonspacechar)+ | \"(\" SourceContents \")\")*") 16224 Rules[:_Title] = rule_info("Title", "(TitleSingle | TitleDouble | \"\"):a { a }") 16225 Rules[:_TitleSingle] = rule_info("TitleSingle", "\"'\" (!(\"'\" @Sp (\")\" | @Newline)) .)* \"'\"") 16226 Rules[:_TitleDouble] = rule_info("TitleDouble", "\"\\\"\" (!(\"\\\"\" @Sp (\")\" | @Newline)) .)* \"\\\"\"") 16227 Rules[:_AutoLink] = rule_info("AutoLink", "(AutoLinkUrl | AutoLinkEmail)") 16228 Rules[:_AutoLinkUrl] = rule_info("AutoLinkUrl", "\"<\" < /[A-Za-z]+/ \"://\" (!@Newline !\">\" .)+ > \">\" { text }") 16229 Rules[:_AutoLinkEmail] = rule_info("AutoLinkEmail", "\"<\" \"mailto:\"? < /[\\w+.\\/!%~$-]+/i \"@\" (!@Newline !\">\" .)+ > \">\" { \"mailto:\#{text}\" }") 16230 Rules[:_Reference] = rule_info("Reference", "@NonindentSpace !\"[]\" Label:label \":\" Spnl RefSrc:link RefTitle @BlankLine+ { \# TODO use title reference label, link nil }") 16231 Rules[:_Label] = rule_info("Label", "\"[\" (!\"^\" &{ notes? } | &. &{ !notes? }) @StartList:a (!\"]\" Inline:l { a << l })* \"]\" { a.join.gsub(/\\s+/, ' ') }") 16232 Rules[:_RefSrc] = rule_info("RefSrc", "< Nonspacechar+ > { text }") 16233 Rules[:_RefTitle] = rule_info("RefTitle", "(RefTitleSingle | RefTitleDouble | RefTitleParens | EmptyTitle)") 16234 Rules[:_EmptyTitle] = rule_info("EmptyTitle", "\"\"") 16235 Rules[:_RefTitleSingle] = rule_info("RefTitleSingle", "Spnl \"'\" < (!(\"'\" @Sp @Newline | @Newline) .)* > \"'\" { text }") 16236 Rules[:_RefTitleDouble] = rule_info("RefTitleDouble", "Spnl \"\\\"\" < (!(\"\\\"\" @Sp @Newline | @Newline) .)* > \"\\\"\" { text }") 16237 Rules[:_RefTitleParens] = rule_info("RefTitleParens", "Spnl \"(\" < (!(\")\" @Sp @Newline | @Newline) .)* > \")\" { text }") 16238 Rules[:_References] = rule_info("References", "(Reference | SkipBlock)*") 16239 Rules[:_Ticks1] = rule_info("Ticks1", "\"`\" !\"`\"") 16240 Rules[:_Ticks2] = rule_info("Ticks2", "\"``\" !\"`\"") 16241 Rules[:_Ticks3] = rule_info("Ticks3", "\"```\" !\"`\"") 16242 Rules[:_Ticks4] = rule_info("Ticks4", "\"````\" !\"`\"") 16243 Rules[:_Ticks5] = rule_info("Ticks5", "\"`````\" !\"`\"") 16244 Rules[:_Code] = rule_info("Code", "(Ticks1 @Sp < ((!\"`\" Nonspacechar)+ | !Ticks1 /`+/ | !(@Sp Ticks1) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks1 | Ticks2 @Sp < ((!\"`\" Nonspacechar)+ | !Ticks2 /`+/ | !(@Sp Ticks2) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks2 | Ticks3 @Sp < ((!\"`\" Nonspacechar)+ | !Ticks3 /`+/ | !(@Sp Ticks3) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks3 | Ticks4 @Sp < ((!\"`\" Nonspacechar)+ | !Ticks4 /`+/ | !(@Sp Ticks4) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks4 | Ticks5 @Sp < ((!\"`\" Nonspacechar)+ | !Ticks5 /`+/ | !(@Sp Ticks5) (@Spacechar | @Newline !@BlankLine))+ > @Sp Ticks5) { \"<code>\#{text}</code>\" }") 16245 Rules[:_RawHtml] = rule_info("RawHtml", "< (HtmlComment | HtmlBlockScript | HtmlTag) > { if html? then text else '' end }") 16246 Rules[:_BlankLine] = rule_info("BlankLine", "@Sp @Newline { \"\\n\" }") 16247 Rules[:_Quoted] = rule_info("Quoted", "(\"\\\"\" (!\"\\\"\" .)* \"\\\"\" | \"'\" (!\"'\" .)* \"'\")") 16248 Rules[:_HtmlAttribute] = rule_info("HtmlAttribute", "(AlphanumericAscii | \"-\")+ Spnl (\"=\" Spnl (Quoted | (!\">\" Nonspacechar)+))? Spnl") 16249 Rules[:_HtmlComment] = rule_info("HtmlComment", "\"<!--\" (!\"-->\" .)* \"-->\"") 16250 Rules[:_HtmlTag] = rule_info("HtmlTag", "\"<\" Spnl \"/\"? AlphanumericAscii+ Spnl HtmlAttribute* \"/\"? Spnl \">\"") 16251 Rules[:_Eof] = rule_info("Eof", "!.") 16252 Rules[:_Nonspacechar] = rule_info("Nonspacechar", "!@Spacechar !@Newline .") 16253 Rules[:_Sp] = rule_info("Sp", "@Spacechar*") 16254 Rules[:_Spnl] = rule_info("Spnl", "@Sp (@Newline @Sp)?") 16255 Rules[:_SpecialChar] = rule_info("SpecialChar", "(/[~*_`&\\[\\]()<!\#\\\\'\"]/ | @ExtendedSpecialChar)") 16256 Rules[:_NormalChar] = rule_info("NormalChar", "!(@SpecialChar | @Spacechar | @Newline) .") 16257 Rules[:_Digit] = rule_info("Digit", "[0-9]") 16258 Rules[:_Alphanumeric] = rule_info("Alphanumeric", "%literals.Alphanumeric") 16259 Rules[:_AlphanumericAscii] = rule_info("AlphanumericAscii", "%literals.AlphanumericAscii") 16260 Rules[:_BOM] = rule_info("BOM", "%literals.BOM") 16261 Rules[:_Newline] = rule_info("Newline", "%literals.Newline") 16262 Rules[:_Spacechar] = rule_info("Spacechar", "%literals.Spacechar") 16263 Rules[:_HexEntity] = rule_info("HexEntity", "/&\#x/i < /[0-9a-fA-F]+/ > \";\" { [text.to_i(16)].pack 'U' }") 16264 Rules[:_DecEntity] = rule_info("DecEntity", "\"&\#\" < /[0-9]+/ > \";\" { [text.to_i].pack 'U' }") 16265 Rules[:_CharEntity] = rule_info("CharEntity", "\"&\" < /[A-Za-z0-9]+/ > \";\" { if entity = HTML_ENTITIES[text] then entity.pack 'U*' else \"&\#{text};\" end }") 16266 Rules[:_NonindentSpace] = rule_info("NonindentSpace", "/ {0,3}/") 16267 Rules[:_Indent] = rule_info("Indent", "/\\t| /") 16268 Rules[:_IndentedLine] = rule_info("IndentedLine", "Indent Line") 16269 Rules[:_OptionallyIndentedLine] = rule_info("OptionallyIndentedLine", "Indent? Line") 16270 Rules[:_StartList] = rule_info("StartList", "&. { [] }") 16271 Rules[:_Line] = rule_info("Line", "@RawLine:a { a }") 16272 Rules[:_RawLine] = rule_info("RawLine", "(< (!\"\\r\" !\"\\n\" .)* @Newline > | < .+ > @Eof) { text }") 16273 Rules[:_SkipBlock] = rule_info("SkipBlock", "(HtmlBlock | (!\"\#\" !SetextBottom1 !SetextBottom2 !@BlankLine @RawLine)+ @BlankLine* | @BlankLine+ | @RawLine)") 16274 Rules[:_ExtendedSpecialChar] = rule_info("ExtendedSpecialChar", "&{ notes? } \"^\"") 16275 Rules[:_NoteReference] = rule_info("NoteReference", "&{ notes? } RawNoteReference:ref { note_for ref }") 16276 Rules[:_RawNoteReference] = rule_info("RawNoteReference", "\"[^\" < (!@Newline !\"]\" .)+ > \"]\" { text }") 16277 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 }") 16278 Rules[:_InlineNote] = rule_info("InlineNote", "&{ notes? } \"^[\" @StartList:a (!\"]\" Inline:l { a << l })+ \"]\" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref }") 16279 Rules[:_Notes] = rule_info("Notes", "(Note | SkipBlock)*") 16280 Rules[:_RawNoteBlock] = rule_info("RawNoteBlock", "@StartList:a (!@BlankLine OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }") 16281 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 }") 16282 Rules[:_DefinitionList] = rule_info("DefinitionList", "&{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }") 16283 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 Rules[:_DefinitionListLabel] = rule_info("DefinitionListLabel", "StrChunk:label @Sp @Newline { label }") 16285 Rules[:_DefinitionListDefinition] = rule_info("DefinitionListDefinition", "@NonindentSpace \":\" @Space Inlines:a @BlankLine+ { paragraph a }") 16286 # :startdoc: 16287end 16288