PageRenderTime 58ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 1ms

/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/rdoc/markdown.rb

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