diff options
Diffstat (limited to 'sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.htm')
-rw-r--r-- | sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.htm | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.htm b/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.htm deleted file mode 100644 index 1e6057be1..000000000 --- a/sandbox/code-block-directive/tools/pygments-enhanced-front-ends/for-else-test.py.htm +++ /dev/null @@ -1,185 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1" ?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> -<meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" /> -<title>Example for syntax highlight with Pygments</title> -<style type="text/css"> - -/* Stylesheet for pygments enhanced reStructured Text */ -/* ================================================== */ - -/* :Author: Guenter Milde */ -/* :Copyright: 2007 G. Milde */ -/* This stylesheet is released under the GPL v. 2 or later */ - -/* This stylesheet provides syntax highlight for documents generated with a */ -/* pygments_ enhanced reStructured Text -> html converter. */ - -/* Import the default docutils style sheet */ -/* --------------------------------------- */ -/* :: */ - -@import url("/stylesheets/html4css1.css"); - -/* Indent the code block */ -/* --------------------- */ - -/* Content copied from the `html4css1.css` rule for literal blocks. */ -/* Selector adapted to the output of Pygments_. :: */ - -div.highlight { - margin-left: 2em ; - margin-right: 2em ; - background-color: #eeeeee - } - - -/* Colour code blocks */ -/* ------------------ */ - -/* Pygments_ has an option to generate stylesheets for html and latex. */ -/* The following code is generated with the command */ -/* `pygmentize -S default -f html > pygments-default.css`:: */ - -.c { color: #008800; font-style: italic } /* Comment */ -.err { border: 1px solid #FF0000 } /* Error */ -.k { color: #AA22FF; font-weight: bold } /* Keyword */ -.o { color: #666666 } /* Operator */ -.cm { color: #008800; font-style: italic } /* Comment.Multiline */ -.cp { color: #008800 } /* Comment.Preproc */ -.c1 { color: #008800; font-style: italic } /* Comment.Single */ -.gd { color: #A00000 } /* Generic.Deleted */ -.ge { font-style: italic } /* Generic.Emph */ -.gr { color: #FF0000 } /* Generic.Error */ -.gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.gi { color: #00A000 } /* Generic.Inserted */ -.go { color: #808080 } /* Generic.Output */ -.gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -.gs { font-weight: bold } /* Generic.Strong */ -.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.gt { color: #0040D0 } /* Generic.Traceback */ -.kc { color: #AA22FF; font-weight: bold } /* Keyword.Constant */ -.kd { color: #AA22FF; font-weight: bold } /* Keyword.Declaration */ -.kp { color: #AA22FF } /* Keyword.Pseudo */ -.kr { color: #AA22FF; font-weight: bold } /* Keyword.Reserved */ -.kt { color: #AA22FF; font-weight: bold } /* Keyword.Type */ -.m { color: #666666 } /* Literal.Number */ -.s { color: #BB4444 } /* Literal.String */ -.na { color: #BB4444 } /* Name.Attribute */ -.nb { color: #AA22FF } /* Name.Builtin */ -.nc { color: #0000FF } /* Name.Class */ -.no { color: #880000 } /* Name.Constant */ -.nd { color: #AA22FF } /* Name.Decorator */ -.ni { color: #999999; font-weight: bold } /* Name.Entity */ -.ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -.nf { color: #00A000 } /* Name.Function */ -.nl { color: #A0A000 } /* Name.Label */ -.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -.nt { color: #008000; font-weight: bold } /* Name.Tag */ -.nv { color: #B8860B } /* Name.Variable */ -.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -.mf { color: #666666 } /* Literal.Number.Float */ -.mh { color: #666666 } /* Literal.Number.Hex */ -.mi { color: #666666 } /* Literal.Number.Integer */ -.mo { color: #666666 } /* Literal.Number.Oct */ -.sb { color: #BB4444 } /* Literal.String.Backtick */ -.sc { color: #BB4444 } /* Literal.String.Char */ -.sd { color: #BB4444; font-style: italic } /* Literal.String.Doc */ -.s2 { color: #BB4444 } /* Literal.String.Double */ -.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -.sh { color: #BB4444 } /* Literal.String.Heredoc */ -.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -.sx { color: #008000 } /* Literal.String.Other */ -.sr { color: #BB6688 } /* Literal.String.Regex */ -.s1 { color: #BB4444 } /* Literal.String.Single */ -.ss { color: #B8860B } /* Literal.String.Symbol */ -.bp { color: #AA22FF } /* Name.Builtin.Pseudo */ -.vc { color: #B8860B } /* Name.Variable.Class */ -.vg { color: #B8860B } /* Name.Variable.Global */ -.vi { color: #B8860B } /* Name.Variable.Instance */ -.il { color: #666666 } /* Literal.Number.Integer.Long */ - -/* .. _pygments: http://pygments.org/ */ - -</style> -</head> -<body> -<div class="document" id="example-for-syntax-highlight-with-pygments"> -<h1 class="title">Example for syntax highlight with Pygments</h1> -<p>Translate this document to HTML with a pygments enhanced frontend:</p> -<pre class="literal-block"> -rst2html-pygments --stylesheet=pygments-default.css -</pre> -<p>or to LaTeX with:</p> -<pre class="literal-block"> -rst2latex-pygments --stylesheet=pygments-default.sty -</pre> -<p>to gain syntax highlight in the output.</p> -<p>Convert between text <-> code source formats with:</p> -<pre class="literal-block"> -pylit --code-block-marker='.. code-block:: python' -</pre> -<p>Run the doctests with:</p> -<pre class="literal-block"> -pylit --doctest for-else-test.py -</pre> -<div class="section"> -<h1><a id="for-else-test" name="for-else-test">for-else-test</a></h1> -<p>Test the flow in a <cite>for</cite> loop with <cite>else</cite> statement.</p> -<p>First define a simple <cite>for</cite> loop.</p> -<div class="highlight"><pre><span class="k">def</span> <span class="nf">loop1</span><span class="p">(</span><span class="n">iterable</span><span class="p">):</span> - <span class="sd">"""simple for loop with `else` statement"""</span> - <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">iterable</span><span class="p">:</span> - <span class="k">print</span> <span class="n">i</span> - <span class="k">else</span><span class="p">:</span> - <span class="k">print</span> <span class="s">"iterable empty"</span> - <span class="k">print</span> <span class="s">"Ende"</span> -</pre></div> -<p>Now test it:</p> -<p>The first test runs as I expect: iterator empty -> else clause applies:</p> -<div class="highlight"><pre><span class="gp">>>> </span><span class="nb">execfile</span><span class="p">(</span><span class="s">'for-else-test.py'</span><span class="p">)</span> -<span class="gp">>>> </span><span class="n">loop1</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span> -<span class="go">iterable empty</span> -<span class="go">Ende</span> -</pre></div> -<p>However, the else clause even runs if the iterator is not empty in the first -place but after it is "spent":</p> -<div class="highlight"><pre><span class="gp">>>> </span><span class="n">loop1</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">))</span> -<span class="go">0</span> -<span class="go">1</span> -<span class="go">2</span> -<span class="go">iterable empty</span> -<span class="go">Ende</span> -</pre></div> -<p>It seems like the else clause can only be prevented, if we break out of -the loop. Let's try</p> -<div class="highlight"><pre><span class="k">def</span> <span class="nf">loop2</span><span class="p">(</span><span class="n">iterable</span><span class="p">):</span> - <span class="sd">"""for loop with `break` and `else` statement"""</span> - <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">iterable</span><span class="p">:</span> - <span class="k">print</span> <span class="n">i</span> - <span class="k">break</span> - <span class="k">else</span><span class="p">:</span> - <span class="k">print</span> <span class="s">"iterable empty"</span> - <span class="k">print</span> <span class="s">"Ende"</span> -</pre></div> -<p>And indeed, the else clause is skipped after breaking out of the loop:</p> -<div class="highlight"><pre><span class="gp">>>> </span><span class="n">loop2</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">))</span> -<span class="go">0</span> -<span class="go">Ende</span> -</pre></div> -<p>The empty iterator runs as expected:</p> -<div class="highlight"><pre><span class="gp">>>> </span><span class="n">loop2</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span> -<span class="go">iterable empty</span> -<span class="go">Ende</span> -</pre></div> -</div> -</div> -<div class="footer"> -<hr class="footer" /> -Generated on: 2007-06-21. - -</div> -</body> -</html> |