<!DOCTYPE html>
<html> <head> <meta content=“text/html; charset=UTF-8” http-equiv=“Content-Type”>
<title>class ReVIEW::Compiler - review-2.1.0 Documentation</title>
<link type=“text/css” media=“screen” href=“../rdoc.css” rel=“stylesheet”>
<script type=“text/javascript”>
var rdoc_rel_prefix = "../";
</script>
<script type=“text/javascript” charset=“utf-8” src=“../js/jquery.js”></script> <script type=“text/javascript” charset=“utf-8” src=“../js/navigation.js”></script> <script type=“text/javascript” charset=“utf-8” src=“../js/search_index.js”></script> <script type=“text/javascript” charset=“utf-8” src=“../js/search.js”></script> <script type=“text/javascript” charset=“utf-8” src=“../js/searcher.js”></script> <script type=“text/javascript” charset=“utf-8” src=“../js/darkfish.js”></script>
<body id=“top” class=“class”> <nav id=“metadata”>
<nav id="home-section" class="section"> <h3 class="section-header"> <a href="../index.html">Home</a> <a href="../table_of_contents.html#classes">Classes</a> <a href="../table_of_contents.html#methods">Methods</a> </h3>
</nav>
<nav id="search-section" class="section project-section" class="initially-hidden"> <form action="#" method="get" accept-charset="utf-8"> <h3 class="section-header"> <input type="text" name="search" placeholder="Search" id="search-field" title="Type to search, Up and Down to navigate, Enter to load"> </h3> </form> <ul id="search-results" class="initially-hidden"></ul>
</nav>
<div id="file-metadata"> <nav id="file-list-section" class="section"> <h3 class="section-header">Defined In</h3> <ul> <li>lib/review/compiler.rb </ul>
</nav>
</div> <div id="class-metadata"> <nav id="parent-class-section" class="section"> <h3 class="section-header">Parent</h3> <p class="link"><a href="../Object.html">Object</a>
</nav>
<!-- Method Quickref -->
<nav id=“method-list-section” class=“section”>
<h3 class="section-header">Methods</h3> <ul class="link-list"> <li ><a href="#method-c-defblock">::defblock</a> <li ><a href="#method-c-definline">::definline</a> <li ><a href="#method-c-defsingle">::defsingle</a> <li ><a href="#method-c-defsyntax">::defsyntax</a> <li ><a href="#method-c-new">::new</a> <li ><a href="#method-i-block_open-3F">#block_open?</a> <li ><a href="#method-i-close_all_tagged_section">#close_all_tagged_section</a> <li ><a href="#method-i-close_current_tagged_section">#close_current_tagged_section</a> <li ><a href="#method-i-close_tagged_section">#close_tagged_section</a> <li ><a href="#method-i-compile">#compile</a> <li ><a href="#method-i-compile_block">#compile_block</a> <li ><a href="#method-i-compile_command">#compile_command</a> <li ><a href="#method-i-compile_dlist">#compile_dlist</a> <li ><a href="#method-i-compile_headline">#compile_headline</a> <li ><a href="#method-i-compile_inline">#compile_inline</a> <li ><a href="#method-i-compile_olist">#compile_olist</a> <li ><a href="#method-i-compile_paragraph">#compile_paragraph</a> <li ><a href="#method-i-compile_single">#compile_single</a> <li ><a href="#method-i-compile_ulist">#compile_ulist</a> <li ><a href="#method-i-compile_unknown_command">#compile_unknown_command</a> <li ><a href="#method-i-default_block">#default_block</a> <li ><a href="#method-i-do_compile">#do_compile</a> <li ><a href="#method-i-error">#error</a> <li ><a href="#method-i-headline">#headline</a> <li ><a href="#method-i-inline_defined-3F">#inline_defined?</a> <li ><a href="#method-i-open_tagged_section">#open_tagged_section</a> <li ><a href="#method-i-parse_args">#parse_args</a> <li ><a href="#method-i-read_block">#read_block</a> <li ><a href="#method-i-read_command">#read_command</a> <li ><a href="#method-i-syntax_defined-3F">#syntax_defined?</a> <li ><a href="#method-i-syntax_descriptor">#syntax_descriptor</a> <li ><a href="#method-i-tagged_section_init">#tagged_section_init</a> <li ><a href="#method-i-text">#text</a> <li ><a href="#method-i-warn">#warn</a> </ul>
</nav>
</div> <div id="project-metadata"> <nav id="fileindex-section" class="section project-section"> <h3 class="section-header">Pages</h3> <ul> <li class="file"><a href="../ChangeLog.html">ChangeLog</a> </ul>
</nav>
<nav id="classindex-section" class="section project-section"> <h3 class="section-header">Class and Module Index</h3> <ul class="link-list"> <li><a href="../EPUBMaker.html">EPUBMaker</a> <li><a href="../EPUBMaker/Content.html">EPUBMaker::Content</a> <li><a href="../EPUBMaker/EPUBCommon.html">EPUBMaker::EPUBCommon</a> <li><a href="../EPUBMaker/EPUBv2.html">EPUBMaker::EPUBv2</a> <li><a href="../EPUBMaker/EPUBv3.html">EPUBMaker::EPUBv3</a> <li><a href="../EPUBMaker/Producer.html">EPUBMaker::Producer</a> <li><a href="../Encoding.html">Encoding</a> <li><a href="../Hash.html">Hash</a> <li><a href="../LineInput.html">LineInput</a> <li><a href="../Object.html">Object</a> <li><a href="../ReVIEW.html">ReVIEW</a> <li><a href="../ReVIEW/ApplicationError.html">ReVIEW::ApplicationError</a> <li><a href="../ReVIEW/Book.html">ReVIEW::Book</a> <li><a href="../ReVIEW/Book/Base.html">ReVIEW::Book::Base</a> <li><a href="../ReVIEW/Book/BibpaperIndex.html">ReVIEW::Book::BibpaperIndex</a> <li><a href="../ReVIEW/Book/Chapter.html">ReVIEW::Book::Chapter</a> <li><a href="../ReVIEW/Book/ChapterIndex.html">ReVIEW::Book::ChapterIndex</a> <li><a href="../ReVIEW/Book/ColumnIndex.html">ReVIEW::Book::ColumnIndex</a> <li><a href="../ReVIEW/Book/Compilable.html">ReVIEW::Book::Compilable</a> <li><a href="../ReVIEW/Book/FootnoteIndex.html">ReVIEW::Book::FootnoteIndex</a> <li><a href="../ReVIEW/Book/HeadlineIndex.html">ReVIEW::Book::HeadlineIndex</a> <li><a href="../ReVIEW/Book/IconIndex.html">ReVIEW::Book::IconIndex</a> <li><a href="../ReVIEW/Book/ImageFinder.html">ReVIEW::Book::ImageFinder</a> <li><a href="../ReVIEW/Book/ImageIndex.html">ReVIEW::Book::ImageIndex</a> <li><a href="../ReVIEW/Book/ImageIndex/Item.html">ReVIEW::Book::ImageIndex::Item</a> <li><a href="../ReVIEW/Book/IndepImageIndex.html">ReVIEW::Book::IndepImageIndex</a> <li><a href="../ReVIEW/Book/IndepImageIndex/Item.html">ReVIEW::Book::IndepImageIndex::Item</a> <li><a href="../ReVIEW/Book/Index.html">ReVIEW::Book::Index</a> <li><a href="../ReVIEW/Book/ListIndex.html">ReVIEW::Book::ListIndex</a> <li><a href="../ReVIEW/Book/NumberlessImageIndex.html">ReVIEW::Book::NumberlessImageIndex</a> <li><a href="../ReVIEW/Book/NumberlessImageIndex/Item.html">ReVIEW::Book::NumberlessImageIndex::Item</a> <li><a href="../ReVIEW/Book/PageMetric.html">ReVIEW::Book::PageMetric</a> <li><a href="../ReVIEW/Book/Part.html">ReVIEW::Book::Part</a> <li><a href="../ReVIEW/Book/TableIndex.html">ReVIEW::Book::TableIndex</a> <li><a href="../ReVIEW/Book/Volume.html">ReVIEW::Book::Volume</a> <li><a href="../ReVIEW/Builder.html">ReVIEW::Builder</a> <li><a href="../ReVIEW/Catalog.html">ReVIEW::Catalog</a> <li><a href="../ReVIEW/CompileError.html">ReVIEW::CompileError</a> <li><a href="../ReVIEW/Compiler.html">ReVIEW::Compiler</a> <li><a href="../ReVIEW/Compiler/InlineSyntaxElement.html">ReVIEW::Compiler::InlineSyntaxElement</a> <li><a href="../ReVIEW/Compiler/SyntaxElement.html">ReVIEW::Compiler::SyntaxElement</a> <li><a href="../ReVIEW/ConfigError.html">ReVIEW::ConfigError</a> <li><a href="../ReVIEW/Configure.html">ReVIEW::Configure</a> <li><a href="../ReVIEW/Converter.html">ReVIEW::Converter</a> <li><a href="../ReVIEW/EPUBBuilder.html">ReVIEW::EPUBBuilder</a> <li><a href="../ReVIEW/EPUBMaker.html">ReVIEW::EPUBMaker</a> <li><a href="../ReVIEW/EPUBMaker/ReVIEWHeaderListener.html">ReVIEW::EPUBMaker::ReVIEWHeaderListener</a> <li><a href="../ReVIEW/EWBBuilder.html">ReVIEW::EWBBuilder</a> <li><a href="../ReVIEW/Error.html">ReVIEW::Error</a> <li><a href="../ReVIEW/ErrorUtils.html">ReVIEW::ErrorUtils</a> <li><a href="../ReVIEW/FileNotFound.html">ReVIEW::FileNotFound</a> <li><a href="../ReVIEW/HTMLBuilder.html">ReVIEW::HTMLBuilder</a> <li><a href="../ReVIEW/HTMLTOCPrinter.html">ReVIEW::HTMLTOCPrinter</a> <li><a href="../ReVIEW/HTMLToc.html">ReVIEW::HTMLToc</a> <li><a href="../ReVIEW/HTMLUtils.html">ReVIEW::HTMLUtils</a> <li><a href="../ReVIEW/I18n.html">ReVIEW::I18n</a> <li><a href="../ReVIEW/IDGXMLBuilder.html">ReVIEW::IDGXMLBuilder</a> <li><a href="../ReVIEW/KeyError.html">ReVIEW::KeyError</a> <li><a href="../ReVIEW/LATEXBuilder.html">ReVIEW::LATEXBuilder</a> <li><a href="../ReVIEW/LaTeXIndex.html">ReVIEW::LaTeXIndex</a> <li><a href="../ReVIEW/LaTeXUtils.html">ReVIEW::LaTeXUtils</a> <li><a href="../ReVIEW/Line.html">ReVIEW::Line</a> <li><a href="../ReVIEW/LineInput.html">ReVIEW::LineInput</a> <li><a href="../ReVIEW/Location.html">ReVIEW::Location</a> <li><a href="../ReVIEW/MARKDOWNBuilder.html">ReVIEW::MARKDOWNBuilder</a> <li><a href="../ReVIEW/MD2INAOBuilder.html">ReVIEW::MD2INAOBuilder</a> <li><a href="../ReVIEW/MakerHelper.html">ReVIEW::MakerHelper</a> <li><a href="../ReVIEW/PDFMaker.html">ReVIEW::PDFMaker</a> <li><a href="../ReVIEW/Preprocessor.html">ReVIEW::Preprocessor</a> <li><a href="../ReVIEW/Preprocessor/Directive.html">ReVIEW::Preprocessor::Directive</a> <li><a href="../ReVIEW/Preprocessor/Strip.html">ReVIEW::Preprocessor::Strip</a> <li><a href="../ReVIEW/Repository.html">ReVIEW::Repository</a> <li><a href="../ReVIEW/SecCounter.html">ReVIEW::SecCounter</a> <li><a href="../ReVIEW/SyntaxError.html">ReVIEW::SyntaxError</a> <li><a href="../ReVIEW/TEXTBuilder.html">ReVIEW::TEXTBuilder</a> <li><a href="../ReVIEW/TOCParser.html">ReVIEW::TOCParser</a> <li><a href="../ReVIEW/TOCParser/Chapter.html">ReVIEW::TOCParser::Chapter</a> <li><a href="../ReVIEW/TOCParser/List.html">ReVIEW::TOCParser::List</a> <li><a href="../ReVIEW/TOCParser/Node.html">ReVIEW::TOCParser::Node</a> <li><a href="../ReVIEW/TOCParser/Paragraph.html">ReVIEW::TOCParser::Paragraph</a> <li><a href="../ReVIEW/TOCParser/Section.html">ReVIEW::TOCParser::Section</a> <li><a href="../ReVIEW/TOCPrinter.html">ReVIEW::TOCPrinter</a> <li><a href="../ReVIEW/TOPBuilder.html">ReVIEW::TOPBuilder</a> <li><a href="../ReVIEW/Template.html">ReVIEW::Template</a> <li><a href="../ReVIEW/TextTOCPrinter.html">ReVIEW::TextTOCPrinter</a> <li><a href="../ReVIEW/TextUtils.html">ReVIEW::TextUtils</a> <li><a href="../ReVIEW/Unfold.html">ReVIEW::Unfold</a> <li><a href="../ReVIEW/WEBMaker.html">ReVIEW::WEBMaker</a> <li><a href="../ReVIEW/WEBTOCPrinter.html">ReVIEW::WEBTOCPrinter</a> <li><a href="../ReVIEW/WrongInput.html">ReVIEW::WrongInput</a> <li><a href="../ReVIEW/YAMLLoader.html">ReVIEW::YAMLLoader</a> <li><a href="../String.html">String</a> </ul>
</nav>
</div>
</nav>
<div id=“documentation”>
<h1 class="class">class ReVIEW::Compiler</h1> <div id="description" class="description"> </div><!-- description --> <section id="5Buntitled-5D" class="documentation-section"> <!-- Constants --> <section id="constants-list" class="section"> <h3 class="section-header">Constants</h3> <dl> <dt id="INLINE">INLINE <dd class="description"> <dt id="SYNTAX">SYNTAX <dd class="description"> </dl> </section> <!-- Attributes --> <section id="attribute-method-details" class="method-section section"> <h3 class="section-header">Attributes</h3> <div id="attribute-i-strategy" class="method-detail"> <div class="method-heading attribute-method-heading"> <span class="method-name">strategy</span><span class="attribute-access-type">[R]</pan> </div> <div class="method-description"> </div> </div> </ection><!-- attribute-method-details --> <!-- Methods --> <section id="public-class-5Buntitled-5D-method-details" class="method-section section"> <h3 class="section-header">Public Class Methods</h3> <div id="method-c-defblock" class="method-detail "> <div class="method-heading"> <span class="method-name">defblock</pan><span class="method-args">(name, argc, optional = false, &block)</span> <span class="method-click-advice">click to toggle source</pan> </div> <div class="method-description"> <div class="method-source-code" id="defblock-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 92</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-constant”>Compiler</span>.<span class=“ruby-identifier”>defblock</span>(<span class=“ruby-identifier”>name</span>, <span class=“ruby-identifier”>argc</span>, <span class=“ruby-identifier”>optional</span> = <span class=“ruby-keyword”>false</span>, <span class=“ruby-operator”>&</span><span class=“ruby-identifier”>block</span>)
<span class="ruby-identifier">defsyntax</span> <span class="ruby-identifier">name</span>, (<span class="ruby-identifier">optional</span> <span class="ruby-operator">?</span> <span class="ruby-value">:optional</span> <span class="ruby-operator">:</span> <span class="ruby-value">:block</span>), <span class="ruby-identifier">argc</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- defblock-source --> </div> </div><!-- defblock-method --> <div id="method-c-definline" class="method-detail "> <div class="method-heading"> <span class="method-name">definline</span><span class="method-args">(name)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="definline-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 122</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-constant”>Compiler</span>.<span class=“ruby-identifier”>definline</span>(<span class=“ruby-identifier”>name</span>)
<span class="ruby-constant">INLINE</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-constant">InlineSyntaxElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>)
<span class=“ruby-keyword”>end</span></pre>
</div><!-- definline-source --> </div> </div><!-- definline-method --> <div id="method-c-defsingle" class="method-detail "> <div class="method-heading"> <span class="method-name">defsingle</span><span class="method-args">(name, argc, &block)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="defsingle-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 96</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-constant”>Compiler</span>.<span class=“ruby-identifier”>defsingle</span>(<span class=“ruby-identifier”>name</span>, <span class=“ruby-identifier”>argc</span>, <span class=“ruby-operator”>&</span><span class=“ruby-identifier”>block</span>)
<span class="ruby-identifier">defsyntax</span> <span class="ruby-identifier">name</span>, <span class="ruby-value">:line</span>, <span class="ruby-identifier">argc</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- defsingle-source --> </div> </div><!-- defsingle-method --> <div id="method-c-defsyntax" class="method-detail "> <div class="method-heading"> <span class="method-name">defsyntax</span><span class="method-args">(name, type, argc, &block)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="defsyntax-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 100</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-constant”>Compiler</span>.<span class=“ruby-identifier”>defsyntax</span>(<span class=“ruby-identifier”>name</span>, <span class=“ruby-identifier”>type</span>, <span class=“ruby-identifier”>argc</span>, <span class=“ruby-operator”>&</span><span class=“ruby-identifier”>block</span>)
<span class="ruby-constant">SYNTAX</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-constant">SyntaxElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">argc</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
<span class=“ruby-keyword”>end</span></pre>
</div><!-- defsyntax-source --> </div> </div><!-- defsyntax-method --> <div id="method-c-new" class="method-detail "> <div class="method-heading"> <span class="method-name">new</span><span class="method-args">(strategy)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="new-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 43</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>initialize</span>(<span class=“ruby-identifier”>strategy</span>)
<span class="ruby-ivar">@strategy</span> = <span class="ruby-identifier">strategy</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- new-source --> </div> </div><!-- new-method --> </section><!-- public-class-method-details --> <section id="public-instance-5Buntitled-5D-method-details" class="method-section section"> <h3 class="section-header">Public Instance Methods</h3> <div id="method-i-compile" class="method-detail "> <div class="method-heading"> <span class="method-name">compile</span><span class="method-args">(chap)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="compile-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 49</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>compile</span>(<span class=“ruby-identifier”>chap</span>)
<span class="ruby-ivar">@chapter</span> = <span class="ruby-identifier">chap</span> <span class="ruby-identifier">do_compile</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">result</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- compile-source --> </div> </div><!-- compile-method --> <div id="method-i-inline_defined-3F" class="method-detail "> <div class="method-heading"> <span class="method-name">inline_defined?</span><span class="method-args">(name)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="inline_defined-3F-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 126</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>inline_defined?</span>(<span class=“ruby-identifier”>name</span>)
<span class="ruby-constant">INLINE</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>)
<span class=“ruby-keyword”>end</span></pre>
</div><!-- inline_defined-3F-source --> </div> </div><!-- inline_defined-3F-method --> <div id="method-i-syntax_defined-3F" class="method-detail "> <div class="method-heading"> <span class="method-name">syntax_defined?</span><span class="method-args">(name)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="syntax_defined-3F-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 104</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>syntax_defined?</span>(<span class=“ruby-identifier”>name</span>)
<span class="ruby-constant">SYNTAX</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>)
<span class=“ruby-keyword”>end</span></pre>
</div><!-- syntax_defined-3F-source --> </div> </div><!-- syntax_defined-3F-method --> <div id="method-i-syntax_descriptor" class="method-detail "> <div class="method-heading"> <span class="method-name">syntax_descriptor</span><span class="method-args">(name)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="syntax_descriptor-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 108</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>syntax_descriptor</span>(<span class=“ruby-identifier”>name</span>)
<span class="ruby-constant">SYNTAX</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>]
<span class=“ruby-keyword”>end</span></pre>
</div><!-- syntax_descriptor-source --> </div> </div><!-- syntax_descriptor-method --> <div id="method-i-text" class="method-detail "> <div class="method-heading"> <span class="method-name">text</span><span class="method-args">(str)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="text-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 517</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>text</span>(<span class=“ruby-identifier”>str</span>)
<span class="ruby-keyword">return</span> <span class="ruby-string">''</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-identifier">words</span> = <span class="ruby-identifier">str</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/(@<\w+>\{(?:[^\}\]|\.)*?\})/</span>, <span class="ruby-value">-1</span>) <span class="ruby-identifier">words</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">w</span><span class="ruby-operator">|</span> <span class="ruby-identifier">error</span> <span class="ruby-node">"`@<xxx>' seen but is not valid inline op: #{w}"</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">w</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp">/@<\w+>/</span>).<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-value">1</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-regexp">/\A@<raw>/</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">w</span>) <span class="ruby-keyword">end</span> <span class="ruby-identifier">result</span> = <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">nofunc_text</span>(<span class="ruby-identifier">words</span>.<span class="ruby-identifier">shift</span>) <span class="ruby-keyword">until</span> <span class="ruby-identifier">words</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-identifier">result</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">compile_inline</span>(<span class="ruby-identifier">words</span>.<span class="ruby-identifier">shift</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/\\}/</span>, <span class="ruby-string">'}'</span>)) <span class="ruby-identifier">result</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">nofunc_text</span>(<span class="ruby-identifier">words</span>.<span class="ruby-identifier">shift</span>) <span class="ruby-keyword">end</span> <span class="ruby-identifier">result</span>
<span class=“ruby-keyword”>rescue</span> =<span class=“ruby-operator”>></span> <span class=“ruby-identifier”>err</span>
<span class="ruby-identifier">error</span> <span class="ruby-identifier">err</span>.<span class="ruby-identifier">message</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- text-source --> </div> </div><!-- text-method --> </section><!-- public-instance-method-details --> <section id="private-instance-5Buntitled-5D-method-details" class="method-section section"> <h3 class="section-header">Private Instance Methods</h3> <div id="method-i-block_open-3F" class="method-detail "> <div class="method-heading"> <span class="method-name">block_open?</span><span class="method-args">(line)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="block_open-3F-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 438</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>block_open?</span>(<span class=“ruby-identifier”>line</span>)
<span class="ruby-identifier">line</span>.<span class="ruby-identifier">rstrip</span>[<span class="ruby-value">-1</span>,<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-string">'{'</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- block_open-3F-source --> </div> </div><!-- block_open-3F-method --> <div id="method-i-close_all_tagged_section" class="method-detail "> <div class="method-heading"> <span class="method-name">close_all_tagged_section</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="close_all_tagged_section-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 345</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>close_all_tagged_section</span>
<span class="ruby-keyword">until</span> <span class="ruby-ivar">@tagged_section</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-identifier">close_tagged_section</span>(<span class="ruby-operator">*</span> <span class="ruby-ivar">@tagged_section</span>.<span class="ruby-identifier">pop</span>) <span class="ruby-keyword">end</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- close_all_tagged_section-source --> </div> </div><!-- close_all_tagged_section-method --> <div id="method-i-close_current_tagged_section" class="method-detail "> <div class="method-heading"> <span class="method-name">close_current_tagged_section</span><span class="method-args">(level)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="close_current_tagged_section-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 311</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>close_current_tagged_section</span>(<span class=“ruby-identifier”>level</span>)
<span class="ruby-keyword">while</span> <span class="ruby-ivar">@tagged_section</span>.<span class="ruby-identifier">last</span> <span class="ruby-keyword">and</span> <span class="ruby-ivar">@tagged_section</span>.<span class="ruby-identifier">last</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">>=</span> <span class="ruby-identifier">level</span> <span class="ruby-identifier">close_tagged_section</span>(<span class="ruby-operator">*</span> <span class="ruby-ivar">@tagged_section</span>.<span class="ruby-identifier">pop</span>) <span class="ruby-keyword">end</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- close_current_tagged_section-source --> </div> </div><!-- close_current_tagged_section-method --> <div id="method-i-close_tagged_section" class="method-detail "> <div class="method-heading"> <span class="method-name">close_tagged_section</span><span class="method-args">(tag, level)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="close_tagged_section-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 336</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>close_tagged_section</span>(<span class=“ruby-identifier”>tag</span>, <span class=“ruby-identifier”>level</span>)
<span class="ruby-identifier">mid</span> = <span class="ruby-node">"#{tag}_end"</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">mid</span>) <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">__send__</span> <span class="ruby-identifier">mid</span>, <span class="ruby-identifier">level</span> <span class="ruby-keyword">else</span> <span class="ruby-identifier">error</span> <span class="ruby-node">"strategy does not support block op: #{mid}"</span> <span class="ruby-keyword">end</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- close_tagged_section-source --> </div> </div><!-- close_tagged_section-method --> <div id="method-i-compile_block" class="method-detail "> <div class="method-heading"> <span class="method-name">compile_block</span><span class="method-args">(syntax, args, lines)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="compile_block-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 502</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>compile_block</span>(<span class=“ruby-identifier”>syntax</span>, <span class=“ruby-identifier”>args</span>, <span class=“ruby-identifier”>lines</span>)
<span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">__send__</span>(<span class="ruby-identifier">syntax</span>.<span class="ruby-identifier">name</span>, (<span class="ruby-identifier">lines</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">default_block</span>(<span class="ruby-identifier">syntax</span>)), <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
<span class=“ruby-keyword”>end</span></pre>
</div><!-- compile_block-source --> </div> </div><!-- compile_block-method --> <div id="method-i-compile_command" class="method-detail "> <div class="method-heading"> <span class="method-name">compile_command</span><span class="method-args">(syntax, args, lines)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="compile_command-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 476</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>compile_command</span>(<span class=“ruby-identifier”>syntax</span>, <span class=“ruby-identifier”>args</span>, <span class=“ruby-identifier”>lines</span>)
<span class="ruby-keyword">unless</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">syntax</span>.<span class="ruby-identifier">name</span>) <span class="ruby-identifier">error</span> <span class="ruby-node">"strategy does not support command: //#{syntax.name}"</span> <span class="ruby-identifier">compile_unknown_command</span> <span class="ruby-identifier">args</span>, <span class="ruby-identifier">lines</span> <span class="ruby-keyword">return</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">begin</span> <span class="ruby-identifier">syntax</span>.<span class="ruby-identifier">check_args</span> <span class="ruby-identifier">args</span> <span class="ruby-keyword">rescue</span> <span class="ruby-constant">CompileError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">err</span> <span class="ruby-identifier">error</span> <span class="ruby-identifier">err</span>.<span class="ruby-identifier">message</span> <span class="ruby-identifier">args</span> = [<span class="ruby-string">'(NoArgument)'</span>] <span class="ruby-operator">*</span> <span class="ruby-identifier">syntax</span>.<span class="ruby-identifier">min_argc</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">syntax</span>.<span class="ruby-identifier">block_allowed?</span> <span class="ruby-identifier">compile_block</span> <span class="ruby-identifier">syntax</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">lines</span> <span class="ruby-keyword">else</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">lines</span> <span class="ruby-identifier">error</span> <span class="ruby-node">"block is not allowed for command //#{syntax.name}; ignore"</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">compile_single</span> <span class="ruby-identifier">syntax</span>, <span class="ruby-identifier">args</span> <span class="ruby-keyword">end</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- compile_command-source --> </div> </div><!-- compile_command-method --> <div id="method-i-compile_dlist" class="method-detail "> <div class="method-heading"> <span class="method-name">compile_dlist</span><span class="method-args">(f)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="compile_dlist-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 410</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>compile_dlist</span>(<span class=“ruby-identifier”>f</span>)
<span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">dl_begin</span> <span class="ruby-keyword">while</span> <span class="ruby-regexp">/\A\s*:/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">peek</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">dt</span> <span class="ruby-identifier">text</span>(<span class="ruby-identifier">f</span>.<span class="ruby-identifier">gets</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/\A\s*:/</span>, <span class="ruby-string">''</span>).<span class="ruby-identifier">strip</span>) <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">dd</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">break</span>(<span class="ruby-regexp">/\A(\S|\s*:)/</span>).<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span> <span class="ruby-identifier">text</span>(<span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip</span>) } <span class="ruby-identifier">f</span>.<span class="ruby-identifier">skip_blank_lines</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">skip_comment_lines</span> <span class="ruby-keyword">end</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">dl_end</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- compile_dlist-source --> </div> </div><!-- compile_dlist-method --> <div id="method-i-compile_headline" class="method-detail "> <div class="method-heading"> <span class="method-name">compile_headline</span><span class="method-args">(line)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="compile_headline-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 280</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>compile_headline</span>(<span class=“ruby-identifier”>line</span>)
<span class="ruby-ivar">@headline_indexs</span> <span class="ruby-operator">||=</span> [<span class="ruby-ivar">@chapter</span>.<span class="ruby-identifier">number</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>] <span class="ruby-identifier">m</span> = <span class="ruby-regexp">/\A(=+)(?:\[(.+?)\])?(?:\{(.+?)\})?(.*)/</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">line</span>) <span class="ruby-identifier">level</span> = <span class="ruby-identifier">m</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">size</span> <span class="ruby-identifier">tag</span> = <span class="ruby-identifier">m</span>[<span class="ruby-value">2</span>] <span class="ruby-identifier">label</span> = <span class="ruby-identifier">m</span>[<span class="ruby-value">3</span>] <span class="ruby-identifier">caption</span> = <span class="ruby-identifier">m</span>[<span class="ruby-value">4</span>].<span class="ruby-identifier">strip</span> <span class="ruby-identifier">index</span> = <span class="ruby-identifier">level</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">tag</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">tag</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp">/\A\//</span> <span class="ruby-identifier">close_current_tagged_section</span>(<span class="ruby-identifier">level</span>) <span class="ruby-identifier">open_tagged_section</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">level</span>, <span class="ruby-identifier">label</span>, <span class="ruby-identifier">caption</span>) <span class="ruby-keyword">else</span> <span class="ruby-identifier">open_tag</span> = <span class="ruby-identifier">tag</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-identifier">prev_tag_info</span> = <span class="ruby-ivar">@tagged_section</span>.<span class="ruby-identifier">pop</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">prev_tag_info</span>.<span class="ruby-identifier">first</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">open_tag</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">CompileError</span>, <span class="ruby-node">"#{open_tag} is not opened."</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">close_tagged_section</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">prev_tag_info</span>) <span class="ruby-keyword">end</span> <span class="ruby-keyword">else</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@headline_indexs</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> (<span class="ruby-identifier">index</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>) <span class="ruby-ivar">@headline_indexs</span> = <span class="ruby-ivar">@headline_indexs</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">index</span>] <span class="ruby-keyword">end</span> <span class="ruby-ivar">@headline_indexs</span>[<span class="ruby-identifier">index</span>] = <span class="ruby-value">0</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@headline_indexs</span>[<span class="ruby-identifier">index</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-ivar">@headline_indexs</span>[<span class="ruby-identifier">index</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-identifier">close_current_tagged_section</span>(<span class="ruby-identifier">level</span>) <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">headline</span> <span class="ruby-identifier">level</span>, <span class="ruby-identifier">label</span>, <span class="ruby-identifier">caption</span> <span class="ruby-keyword">end</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- compile_headline-source --> </div> </div><!-- compile_headline-method --> <div id="method-i-compile_inline" class="method-detail "> <div class="method-heading"> <span class="method-name">compile_inline</span><span class="method-args">(str)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="compile_inline-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 534</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>compile_inline</span>(<span class=“ruby-identifier”>str</span>)
<span class="ruby-identifier">op</span>, <span class="ruby-identifier">arg</span> = <span class="ruby-regexp">/\A@<(\w+)>\{(.*?)\}\z/</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">str</span>).<span class="ruby-identifier">captures</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">inline_defined?</span>(<span class="ruby-identifier">op</span>) <span class="ruby-identifier">raise</span> <span class="ruby-constant">CompileError</span>, <span class="ruby-node">"no such inline op: #{op}"</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-node">"inline_#{op}"</span>) <span class="ruby-identifier">raise</span> <span class="ruby-node">"strategy does not support inline op: @<#{op}>"</span> <span class="ruby-keyword">end</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">__send__</span>(<span class="ruby-node">"inline_#{op}"</span>, <span class="ruby-identifier">arg</span>)
<span class=“ruby-keyword”>rescue</span> =<span class=“ruby-operator”>></span> <span class=“ruby-identifier”>err</span>
<span class="ruby-identifier">error</span> <span class="ruby-identifier">err</span>.<span class="ruby-identifier">message</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">nofunc_text</span>(<span class="ruby-identifier">str</span>)
<span class=“ruby-keyword”>end</span></pre>
</div><!-- compile_inline-source --> </div> </div><!-- compile_inline-method --> <div id="method-i-compile_olist" class="method-detail "> <div class="method-heading"> <span class="method-name">compile_olist</span><span class="method-args">(f)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="compile_olist-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 395</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>compile_olist</span>(<span class=“ruby-identifier”>f</span>)
<span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ol_begin</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">while_match</span>(<span class="ruby-node">/\A\s+\d+\.|\A\#@/</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span> <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/\A\#@/</span> <span class="ruby-identifier">num</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/(\d+)\./</span>)[<span class="ruby-value">1</span>] <span class="ruby-identifier">buf</span> = [<span class="ruby-identifier">text</span>(<span class="ruby-identifier">line</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/\d+\./</span>, <span class="ruby-string">''</span>).<span class="ruby-identifier">strip</span>)] <span class="ruby-identifier">f</span>.<span class="ruby-identifier">while_match</span>(<span class="ruby-regexp">/\A\s+(?!\d+\.)\S/</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cont</span><span class="ruby-operator">|</span> <span class="ruby-identifier">buf</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">text</span>(<span class="ruby-identifier">cont</span>.<span class="ruby-identifier">strip</span>) <span class="ruby-keyword">end</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ol_item</span> <span class="ruby-identifier">buf</span>, <span class="ruby-identifier">num</span> <span class="ruby-keyword">end</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ol_end</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- compile_olist-source --> </div> </div><!-- compile_olist-method --> <div id="method-i-compile_paragraph" class="method-detail "> <div class="method-heading"> <span class="method-name">compile_paragraph</span><span class="method-args">(f)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="compile_paragraph-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 421</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>compile_paragraph</span>(<span class=“ruby-identifier”>f</span>)
<span class="ruby-identifier">buf</span> = [] <span class="ruby-identifier">f</span>.<span class="ruby-identifier">until_match</span>(<span class="ruby-node">%r<\A//|\A\#@></span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span> <span class="ruby-keyword">break</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-identifier">buf</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">text</span>(<span class="ruby-identifier">line</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/^(\t+)\s*/</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">m</span><span class="ruby-operator">|</span> <span class="ruby-string">"<!ESCAPETAB!>"</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">size</span>}.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/<!ESCAPETAB!>/</span>, <span class="ruby-string">"\t"</span>)) <span class="ruby-keyword">end</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">paragraph</span> <span class="ruby-identifier">buf</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- compile_paragraph-source --> </div> </div><!-- compile_paragraph-method --> <div id="method-i-compile_single" class="method-detail "> <div class="method-heading"> <span class="method-name">compile_single</span><span class="method-args">(syntax, args)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="compile_single-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 513</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>compile_single</span>(<span class=“ruby-identifier”>syntax</span>, <span class=“ruby-identifier”>args</span>)
<span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">__send__</span>(<span class="ruby-identifier">syntax</span>.<span class="ruby-identifier">name</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
<span class=“ruby-keyword”>end</span></pre>
</div><!-- compile_single-source --> </div> </div><!-- compile_single-method --> <div id="method-i-compile_ulist" class="method-detail "> <div class="method-heading"> <span class="method-name">compile_ulist</span><span class="method-args">(f)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="compile_ulist-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 351</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>compile_ulist</span>(<span class=“ruby-identifier”>f</span>)
<span class="ruby-identifier">level</span> = <span class="ruby-value">0</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">while_match</span>(<span class="ruby-node">/\A\s+\*|\A\#@/</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span> <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/\A\#@/</span> <span class="ruby-identifier">buf</span> = [<span class="ruby-identifier">text</span>(<span class="ruby-identifier">line</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">/\*+/</span>, <span class="ruby-string">''</span>).<span class="ruby-identifier">strip</span>)] <span class="ruby-identifier">f</span>.<span class="ruby-identifier">while_match</span>(<span class="ruby-regexp">/\A\s+(?!\*)\S/</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">cont</span><span class="ruby-operator">|</span> <span class="ruby-identifier">buf</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">text</span>(<span class="ruby-identifier">cont</span>.<span class="ruby-identifier">strip</span>) <span class="ruby-keyword">end</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/\A\s+(\*+)/</span> <span class="ruby-identifier">current_level</span> = <span class="ruby-node">$1</span>.<span class="ruby-identifier">size</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">current_level</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ul_item_end</span> <span class="ruby-comment"># body</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ul_item_begin</span> <span class="ruby-identifier">buf</span> <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">level</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">current_level</span> <span class="ruby-comment"># down</span> <span class="ruby-identifier">level_diff</span> = <span class="ruby-identifier">current_level</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">level</span> <span class="ruby-identifier">level</span> = <span class="ruby-identifier">current_level</span> (<span class="ruby-value">1</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">level_diff</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">reverse_each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ul_begin</span> {<span class="ruby-identifier">i</span>} <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ul_item_begin</span> [] <span class="ruby-keyword">end</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ul_begin</span> {<span class="ruby-identifier">level</span>} <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ul_item_begin</span> <span class="ruby-identifier">buf</span> <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">level</span> <span class="ruby-operator">></span> <span class="ruby-identifier">current_level</span> <span class="ruby-comment"># up</span> <span class="ruby-identifier">level_diff</span> = <span class="ruby-identifier">level</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">current_level</span> <span class="ruby-identifier">level</span> = <span class="ruby-identifier">current_level</span> (<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-identifier">level_diff</span>).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">reverse_each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ul_item_end</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ul_end</span> {<span class="ruby-identifier">level</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">i</span>} <span class="ruby-keyword">end</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ul_item_end</span> <span class="ruby-comment"># body</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ul_item_begin</span> <span class="ruby-identifier">buf</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span> (<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-identifier">level</span>).<span class="ruby-identifier">to_a</span>.<span class="ruby-identifier">reverse_each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ul_item_end</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">ul_end</span> {<span class="ruby-identifier">i</span>} <span class="ruby-keyword">end</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- compile_ulist-source --> </div> </div><!-- compile_ulist-method --> <div id="method-i-compile_unknown_command" class="method-detail "> <div class="method-heading"> <span class="method-name">compile_unknown_command</span><span class="method-args">(args, lines)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="compile_unknown_command-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 498</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>compile_unknown_command</span>(<span class=“ruby-identifier”>args</span>, <span class=“ruby-identifier”>lines</span>)
<span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">unknown_command</span> <span class="ruby-identifier">args</span>, <span class="ruby-identifier">lines</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- compile_unknown_command-source --> </div> </div><!-- compile_unknown_command-method --> <div id="method-i-default_block" class="method-detail "> <div class="method-heading"> <span class="method-name">default_block</span><span class="method-args">(syntax)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="default_block-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 506</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>default_block</span>(<span class=“ruby-identifier”>syntax</span>)
<span class="ruby-keyword">if</span> <span class="ruby-identifier">syntax</span>.<span class="ruby-identifier">block_required?</span> <span class="ruby-identifier">error</span> <span class="ruby-node">"block is required for //#{syntax.name}; use empty block"</span> <span class="ruby-keyword">end</span> []
<span class=“ruby-keyword”>end</span></pre>
</div><!-- default_block-source --> </div> </div><!-- default_block-method --> <div id="method-i-do_compile" class="method-detail "> <div class="method-heading"> <span class="method-name">do_compile</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="do_compile-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 234</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>do_compile</span>
<span class="ruby-identifier">f</span> = <span class="ruby-constant">LineInput</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Preprocessor</span><span class="ruby-operator">::</span><span class="ruby-constant">Strip</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@chapter</span>.<span class="ruby-identifier">content</span>))) <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">bind</span> <span class="ruby-keyword">self</span>, <span class="ruby-ivar">@chapter</span>, <span class="ruby-constant">Location</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@chapter</span>.<span class="ruby-identifier">basename</span>, <span class="ruby-identifier">f</span>) <span class="ruby-identifier">tagged_section_init</span> <span class="ruby-keyword">while</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">next?</span> <span class="ruby-keyword">case</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">peek</span> <span class="ruby-keyword">when</span> <span class="ruby-node">/\A\#@/</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">gets</span> <span class="ruby-comment"># Nothing to do</span> <span class="ruby-keyword">when</span> <span class="ruby-regexp">/\A=+[\[\s\{]/</span> <span class="ruby-identifier">compile_headline</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">gets</span> <span class="ruby-keyword">when</span> <span class="ruby-regexp">%r<\A\s+\*></span> <span class="ruby-identifier">compile_ulist</span> <span class="ruby-identifier">f</span> <span class="ruby-keyword">when</span> <span class="ruby-regexp">%r<\A\s+\d+\.></span> <span class="ruby-identifier">compile_olist</span> <span class="ruby-identifier">f</span> <span class="ruby-keyword">when</span> <span class="ruby-regexp">%r<\A\s*:\s></span> <span class="ruby-identifier">compile_dlist</span> <span class="ruby-identifier">f</span> <span class="ruby-keyword">when</span> <span class="ruby-regexp">%r<\A//\}></span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">gets</span> <span class="ruby-identifier">error</span> <span class="ruby-string">'block end seen but not opened'</span> <span class="ruby-keyword">when</span> <span class="ruby-regexp">%r<\A//[a-z]+></span> <span class="ruby-identifier">name</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">lines</span> = <span class="ruby-identifier">read_command</span>(<span class="ruby-identifier">f</span>) <span class="ruby-identifier">syntax</span> = <span class="ruby-identifier">syntax_descriptor</span>(<span class="ruby-identifier">name</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">syntax</span> <span class="ruby-identifier">error</span> <span class="ruby-node">"unknown command: //#{name}"</span> <span class="ruby-identifier">compile_unknown_command</span> <span class="ruby-identifier">args</span>, <span class="ruby-identifier">lines</span> <span class="ruby-keyword">next</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">compile_command</span> <span class="ruby-identifier">syntax</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">lines</span> <span class="ruby-keyword">when</span> <span class="ruby-regexp">%r<\A//></span> <span class="ruby-identifier">line</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">gets</span> <span class="ruby-identifier">warn</span> <span class="ruby-node">"`//' seen but is not valid command: #{line.strip.inspect}"</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_open?</span>(<span class="ruby-identifier">line</span>) <span class="ruby-identifier">warn</span> <span class="ruby-string">"skipping block..."</span> <span class="ruby-identifier">read_block</span>(<span class="ruby-identifier">f</span>) <span class="ruby-keyword">end</span> <span class="ruby-keyword">else</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">peek</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">gets</span> <span class="ruby-keyword">next</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">compile_paragraph</span> <span class="ruby-identifier">f</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">close_all_tagged_section</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- do_compile-source --> </div> </div><!-- do_compile-method --> <div id="method-i-error" class="method-detail "> <div class="method-heading"> <span class="method-name">error</span><span class="method-args">(msg)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="error-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 552</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>error</span>(<span class=“ruby-identifier”>msg</span>)
<span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">error</span> <span class="ruby-identifier">msg</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- error-source --> </div> </div><!-- error-method --> <div id="method-i-headline" class="method-detail "> <div class="method-heading"> <span class="method-name">headline</span><span class="method-args">(level, label, caption)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="headline-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 317</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>headline</span>(<span class=“ruby-identifier”>level</span>, <span class=“ruby-identifier”>label</span>, <span class=“ruby-identifier”>caption</span>)
<span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">headline</span> <span class="ruby-identifier">level</span>, <span class="ruby-identifier">label</span>, <span class="ruby-identifier">caption</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- headline-source --> </div> </div><!-- headline-method --> <div id="method-i-open_tagged_section" class="method-detail "> <div class="method-heading"> <span class="method-name">open_tagged_section</span><span class="method-args">(tag, level, label, caption)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="open_tagged_section-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 325</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>open_tagged_section</span>(<span class=“ruby-identifier”>tag</span>, <span class=“ruby-identifier”>level</span>, <span class=“ruby-identifier”>label</span>, <span class=“ruby-identifier”>caption</span>)
<span class="ruby-identifier">mid</span> = <span class="ruby-node">"#{tag}_begin"</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">mid</span>) <span class="ruby-identifier">error</span> <span class="ruby-node">"strategy does not support tagged section: #{tag}"</span> <span class="ruby-identifier">headline</span> <span class="ruby-identifier">level</span>, <span class="ruby-identifier">label</span>, <span class="ruby-identifier">caption</span> <span class="ruby-keyword">return</span> <span class="ruby-keyword">end</span> <span class="ruby-ivar">@tagged_section</span>.<span class="ruby-identifier">push</span> [<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">level</span>] <span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">__send__</span> <span class="ruby-identifier">mid</span>, <span class="ruby-identifier">level</span>, <span class="ruby-identifier">label</span>, <span class="ruby-identifier">caption</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- open_tagged_section-source --> </div> </div><!-- open_tagged_section-method --> <div id="method-i-parse_args" class="method-detail "> <div class="method-heading"> <span class="method-name">parse_args</span><span class="method-args">(str, name=nil)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="parse_args-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 458</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>parse_args</span>(<span class=“ruby-identifier”>str</span>, <span class=“ruby-identifier”>name</span>=<span class=“ruby-keyword”>nil</span>)
<span class="ruby-keyword">return</span> [] <span class="ruby-keyword">if</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-identifier">scanner</span> = <span class="ruby-constant">StringScanner</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">str</span>) <span class="ruby-identifier">words</span> = [] <span class="ruby-keyword">while</span> <span class="ruby-identifier">word</span> = <span class="ruby-identifier">scanner</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp">/(\[\]|\[.*?[^\]\])/</span>) <span class="ruby-identifier">w2</span> = <span class="ruby-identifier">word</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>].<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/\(.)/</span>){ <span class="ruby-identifier">ch</span> = <span class="ruby-node">$1</span> (<span class="ruby-identifier">ch</span> <span class="ruby-operator">==</span> <span class="ruby-string">"]"</span> <span class="ruby-keyword">or</span> <span class="ruby-identifier">ch</span> <span class="ruby-operator">==</span> <span class="ruby-string">"\\"</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">ch</span> <span class="ruby-operator">:</span> <span class="ruby-string">"\\"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">ch</span> } <span class="ruby-identifier">words</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">w2</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">scanner</span>.<span class="ruby-identifier">eos?</span> <span class="ruby-identifier">error</span> <span class="ruby-node">"argument syntax error: #{scanner.rest} in #{str.inspect}"</span> <span class="ruby-keyword">return</span> [] <span class="ruby-keyword">end</span> <span class="ruby-keyword">return</span> <span class="ruby-identifier">words</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- parse_args-source --> </div> </div><!-- parse_args-method --> <div id="method-i-read_block" class="method-detail "> <div class="method-heading"> <span class="method-name">read_block</span><span class="method-args">(f)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="read_block-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 442</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>read_block</span>(<span class=“ruby-identifier”>f</span>)
<span class="ruby-identifier">head</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">lineno</span> <span class="ruby-identifier">buf</span> = [] <span class="ruby-identifier">f</span>.<span class="ruby-identifier">until_match</span>(<span class="ruby-regexp">%r<\A//\}></span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">=~</span> <span class="ruby-node">/\A\#@/</span> <span class="ruby-identifier">buf</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">text</span>(<span class="ruby-identifier">line</span>.<span class="ruby-identifier">rstrip</span>) <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">unless</span> <span class="ruby-regexp">%r<\A//\}></span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">peek</span> <span class="ruby-identifier">error</span> <span class="ruby-node">"unexpected EOF (block begins at: #{head})"</span> <span class="ruby-keyword">return</span> <span class="ruby-identifier">buf</span> <span class="ruby-keyword">end</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">gets</span> <span class="ruby-comment"># discard terminator</span> <span class="ruby-identifier">buf</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- read_block-source --> </div> </div><!-- read_block-method --> <div id="method-i-read_command" class="method-detail "> <div class="method-heading"> <span class="method-name">read_command</span><span class="method-args">(f)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="read_command-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 430</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>read_command</span>(<span class=“ruby-identifier”>f</span>)
<span class="ruby-identifier">line</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">gets</span> <span class="ruby-identifier">name</span> = <span class="ruby-identifier">line</span>.<span class="ruby-identifier">slice</span>(<span class="ruby-regexp">/[a-z]+/</span>).<span class="ruby-identifier">to_sym</span> <span class="ruby-identifier">args</span> = <span class="ruby-identifier">parse_args</span>(<span class="ruby-identifier">line</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-regexp">%r<\A//[a-z]+></span>, <span class="ruby-string">''</span>).<span class="ruby-identifier">rstrip</span>.<span class="ruby-identifier">chomp</span>(<span class="ruby-string">'{'</span>), <span class="ruby-identifier">name</span>) <span class="ruby-identifier">lines</span> = <span class="ruby-identifier">block_open?</span>(<span class="ruby-identifier">line</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">read_block</span>(<span class="ruby-identifier">f</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">return</span> <span class="ruby-identifier">name</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">lines</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- read_command-source --> </div> </div><!-- read_command-method --> <div id="method-i-tagged_section_init" class="method-detail "> <div class="method-heading"> <span class="method-name">tagged_section_init</span><span class="method-args">()</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="tagged_section_init-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 321</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>tagged_section_init</span>
<span class="ruby-ivar">@tagged_section</span> = []
<span class=“ruby-keyword”>end</span></pre>
</div><!-- tagged_section_init-source --> </div> </div><!-- tagged_section_init-method --> <div id="method-i-warn" class="method-detail "> <div class="method-heading"> <span class="method-name">warn</span><span class="method-args">(msg)</span> <span class="method-click-advice">click to toggle source</span> </div> <div class="method-description"> <div class="method-source-code" id="warn-source"> <pre><span class="ruby-comment"># File lib/review/compiler.rb, line 548</span>
<span class=“ruby-keyword”>def</span> <span class=“ruby-identifier”>warn</span>(<span class=“ruby-identifier”>msg</span>)
<span class="ruby-ivar">@strategy</span>.<span class="ruby-identifier">warn</span> <span class="ruby-identifier">msg</span>
<span class=“ruby-keyword”>end</span></pre>
</div><!-- warn-source --> </div> </div><!-- warn-method --> </section><!-- private-instance-method-details --> </section><!-- 5Buntitled-5D -->
</div><!– documentation –>
<footer id=“validator-badges”>
<p><a href="http://validator.w3.org/check/referer">[Validate]</a> <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 4.0.0. <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
</footer>