title: pyparsing generates empty railroad HTML file in some cases
body: <p>I have been using pyparsing 3.0.0a2 to generate railroads (the versions 3.0.0b generates only horizontal diagrams as it seems the <code>vertical</code> parameter doesn't have any effect, which is annoying).
  The following code is using two expressions <code>sim</code> and <code>sim_expr</code> and I am trying to create the corresponding railroads as HTML files. <strong>Note that I also would like to create the standalone SVG files for documentation but I am not sure how to do it. So if you have at least this information, please let me know in a comment.</strong></p>
  <p>The results are two HTML files, <code>sim.html</code> contains a picture but the <code>sim_expr.html</code> is empty.</p>
  <p>How can I solve the problem of an empty file?</p>
  <pre class="lang-py prettyprint-override"><code>from pyparsing import *
  
  LPAR, RPAR, COMMA, DOT, EQ, COLON = map(Suppress, &quot;(),.=:&quot;)
  
  sim_a = (Literal('1') ^ Literal('2'))('elm*') \
          + COMMA \
          + (Literal('a')
             ^ Literal('b')
             ^ Literal('c')
             ^ Literal('d'))
  sim_b = (Literal('4') ^ Literal('5'))('elm*') \
          + COMMA \
          + (Literal('a')
             ^ Literal('b')
             ^ Literal('c')
             ^ Literal('d'))
  
  sim = sim_a ^ sim_b
  
  sim_expr = Group(Literal('sim')('directive')
                   + LPAR
                   + sim.setName('List')
                   + RPAR).setName('SIM')
  
  if __name__ == '__main__':
      if '3.0.0b' in __version__:
          sim.create_diagram('sim.html')
          sim_expr.create_diagram('sim_expr.html')
      elif '3.0.0' in __version__:
          from pyparsing.diagram import to_railroad, railroad_to_html
  
          with open('sim.html', 'w') as fp:
              rr = to_railroad(sim)
              fp.write(railroad_to_html(rr))
          with open('sim_expr.html', 'w') as fp:
              rr = to_railroad(sim_expr)
              fp.write(railroad_to_html(rr))
  </code></pre>
  <hr />
  <h2>sim_expr.html</h2>
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;!DOCTYPE html&gt;
  &lt;html&gt;
  &lt;head&gt;
      
          &lt;style type="text/css"&gt;
              .railroad-heading {
                  font-family: monospace;
              }
          &lt;/style&gt;
      
  &lt;/head&gt;
  &lt;body&gt;
  
  
  &lt;/body&gt;
  &lt;/html&gt;</code></pre>
  </div>
  </div>
  </p>
  <hr />
  <h2>sim.html</h2>
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;!DOCTYPE html&gt;
  &lt;html&gt;
  &lt;head&gt;
      
          &lt;style type="text/css"&gt;
              .railroad-heading {
                  font-family: monospace;
              }
          &lt;/style&gt;
      
  &lt;/head&gt;
  &lt;body&gt;
  
  
      &lt;div class="railroad-group"&gt;
          &lt;h1 class="railroad-heading"&gt;List&lt;/h1&gt;
          &lt;div class="railroad-description"&gt;&lt;/div&gt;
          &lt;div class="railroad-svg"&gt;
              &lt;svg class="railroad-diagram" height="320" viewBox="0 0 457.0 320" width="457.0" xmlns="http://www.w3.org/2000/svg"&gt;
  &lt;g transform="translate(.5 .5)"&gt;
  &lt;style&gt;/* &lt;![CDATA[ */
      svg.railroad-diagram {
          background-color:hsl(30,20%,95%);
      }
      svg.railroad-diagram path {
          stroke-width:3;
          stroke:black;
          fill:rgba(0,0,0,0);
      }
      svg.railroad-diagram text {
          font:bold 14px monospace;
          text-anchor:middle;
      }
      svg.railroad-diagram text.label{
          text-anchor:start;
      }
      svg.railroad-diagram text.comment{
          font:italic 12px monospace;
      }
      svg.railroad-diagram rect{
          stroke-width:3;
          stroke:black;
          fill:hsl(120,100%,90%);
      }
      svg.railroad-diagram rect.group-box {
          stroke: gray;
          stroke-dasharray: 10 5;
          fill: none;
      }
  
  /* ]]&gt; */
  &lt;/style&gt;&lt;g&gt;
  &lt;path d="M20 45v20m10 -20v20m-10 -10h20"&gt;&lt;/path&gt;&lt;/g&gt;&lt;g&gt;
  &lt;path d="M40 55h0.0"&gt;&lt;/path&gt;&lt;path d="M417.0 55h0.0"&gt;&lt;/path&gt;&lt;path d="M40.0 55h20"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M60.0 55h0.0"&gt;&lt;/path&gt;&lt;path d="M397.0 55h0.0"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M60.0 55h0.0"&gt;&lt;/path&gt;&lt;path d="M221.5 55h0.0"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M60.0 55h0.0"&gt;&lt;/path&gt;&lt;path d="M145.5 55h0.0"&gt;&lt;/path&gt;&lt;path d="M60.0 55h20"&gt;&lt;/path&gt;&lt;g class="terminal "&gt;
  &lt;path d="M80.0 55h0.0"&gt;&lt;/path&gt;&lt;path d="M125.5 55h0.0"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="80.0" y="44"&gt;&lt;/rect&gt;&lt;text x="102.75" y="59"&gt;'1'&lt;/text&gt;&lt;/g&gt;&lt;path d="M125.5 55h20"&gt;&lt;/path&gt;&lt;path d="M60.0 55a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"&gt;&lt;/path&gt;&lt;g class="terminal "&gt;
  &lt;path d="M80.0 85h0.0"&gt;&lt;/path&gt;&lt;path d="M125.5 85h0.0"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="80.0" y="74"&gt;&lt;/rect&gt;&lt;text x="102.75" y="89"&gt;'2'&lt;/text&gt;&lt;/g&gt;&lt;path d="M125.5 85a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"&gt;&lt;/path&gt;&lt;/g&gt;&lt;path d="M145.5 55h10"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M155.5 55h0.0"&gt;&lt;/path&gt;&lt;path d="M221.5 55h0.0"&gt;&lt;/path&gt;&lt;rect class="group-box" height="38" rx="10" ry="10" width="66" x="155.5" y="36"&gt;&lt;/rect&gt;&lt;g class="terminal "&gt;
  &lt;path d="M155.5 55h10.25"&gt;&lt;/path&gt;&lt;path d="M211.25 55h10.25"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="165.75" y="44"&gt;&lt;/rect&gt;&lt;text x="188.5" y="59"&gt;','&lt;/text&gt;&lt;/g&gt;&lt;g class="non-terminal "&gt;
  &lt;path d="M155.5 28h0.0"&gt;&lt;/path&gt;&lt;path d="M221.5 28h0.0"&gt;&lt;/path&gt;&lt;text class="comment" x="188.5" y="33"&gt;Suppress&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path d="M221.5 55h10"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M231.5 55h0.0"&gt;&lt;/path&gt;&lt;path d="M397.0 55h0.0"&gt;&lt;/path&gt;&lt;path d="M231.5 55h20"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M251.5 55h0.0"&gt;&lt;/path&gt;&lt;path d="M377.0 55h0.0"&gt;&lt;/path&gt;&lt;path d="M251.5 55h20"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M271.5 55h0.0"&gt;&lt;/path&gt;&lt;path d="M357.0 55h0.0"&gt;&lt;/path&gt;&lt;path d="M271.5 55h20"&gt;&lt;/path&gt;&lt;g class="terminal "&gt;
  &lt;path d="M291.5 55h0.0"&gt;&lt;/path&gt;&lt;path d="M337.0 55h0.0"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="291.5" y="44"&gt;&lt;/rect&gt;&lt;text x="314.25" y="59"&gt;'a'&lt;/text&gt;&lt;/g&gt;&lt;path d="M337.0 55h20"&gt;&lt;/path&gt;&lt;path d="M271.5 55a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"&gt;&lt;/path&gt;&lt;g class="terminal "&gt;
  &lt;path d="M291.5 85h0.0"&gt;&lt;/path&gt;&lt;path d="M337.0 85h0.0"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="291.5" y="74"&gt;&lt;/rect&gt;&lt;text x="314.25" y="89"&gt;'b'&lt;/text&gt;&lt;/g&gt;&lt;path d="M337.0 85a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"&gt;&lt;/path&gt;&lt;/g&gt;&lt;path d="M357.0 55h20"&gt;&lt;/path&gt;&lt;path d="M251.5 55a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"&gt;&lt;/path&gt;&lt;g class="terminal "&gt;
  &lt;path d="M271.5 115h20.0"&gt;&lt;/path&gt;&lt;path d="M337.0 115h20.0"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="291.5" y="104"&gt;&lt;/rect&gt;&lt;text x="314.25" y="119"&gt;'c'&lt;/text&gt;&lt;/g&gt;&lt;path d="M357.0 115a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"&gt;&lt;/path&gt;&lt;/g&gt;&lt;path d="M377.0 55h20"&gt;&lt;/path&gt;&lt;path d="M231.5 55a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10"&gt;&lt;/path&gt;&lt;g class="terminal "&gt;
  &lt;path d="M251.5 145h40.0"&gt;&lt;/path&gt;&lt;path d="M337.0 145h40.0"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="291.5" y="134"&gt;&lt;/rect&gt;&lt;text x="314.25" y="149"&gt;'d'&lt;/text&gt;&lt;/g&gt;&lt;path d="M377.0 145a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;path d="M397.0 55h20"&gt;&lt;/path&gt;&lt;path d="M40.0 55a10 10 0 0 1 10 10v124a10 10 0 0 0 10 10"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M60.0 199h0.0"&gt;&lt;/path&gt;&lt;path d="M397.0 199h0.0"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M60.0 199h0.0"&gt;&lt;/path&gt;&lt;path d="M221.5 199h0.0"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M60.0 199h0.0"&gt;&lt;/path&gt;&lt;path d="M145.5 199h0.0"&gt;&lt;/path&gt;&lt;path d="M60.0 199h20"&gt;&lt;/path&gt;&lt;g class="terminal "&gt;
  &lt;path d="M80.0 199h0.0"&gt;&lt;/path&gt;&lt;path d="M125.5 199h0.0"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="80.0" y="188"&gt;&lt;/rect&gt;&lt;text x="102.75" y="203"&gt;'4'&lt;/text&gt;&lt;/g&gt;&lt;path d="M125.5 199h20"&gt;&lt;/path&gt;&lt;path d="M60.0 199a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"&gt;&lt;/path&gt;&lt;g class="terminal "&gt;
  &lt;path d="M80.0 229h0.0"&gt;&lt;/path&gt;&lt;path d="M125.5 229h0.0"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="80.0" y="218"&gt;&lt;/rect&gt;&lt;text x="102.75" y="233"&gt;'5'&lt;/text&gt;&lt;/g&gt;&lt;path d="M125.5 229a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"&gt;&lt;/path&gt;&lt;/g&gt;&lt;path d="M145.5 199h10"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M155.5 199h0.0"&gt;&lt;/path&gt;&lt;path d="M221.5 199h0.0"&gt;&lt;/path&gt;&lt;rect class="group-box" height="38" rx="10" ry="10" width="66" x="155.5" y="180"&gt;&lt;/rect&gt;&lt;g class="terminal "&gt;
  &lt;path d="M155.5 199h10.25"&gt;&lt;/path&gt;&lt;path d="M211.25 199h10.25"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="165.75" y="188"&gt;&lt;/rect&gt;&lt;text x="188.5" y="203"&gt;','&lt;/text&gt;&lt;/g&gt;&lt;g class="non-terminal "&gt;
  &lt;path d="M155.5 172h0.0"&gt;&lt;/path&gt;&lt;path d="M221.5 172h0.0"&gt;&lt;/path&gt;&lt;text class="comment" x="188.5" y="177"&gt;Suppress&lt;/text&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;path d="M221.5 199h10"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M231.5 199h0.0"&gt;&lt;/path&gt;&lt;path d="M397.0 199h0.0"&gt;&lt;/path&gt;&lt;path d="M231.5 199h20"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M251.5 199h0.0"&gt;&lt;/path&gt;&lt;path d="M377.0 199h0.0"&gt;&lt;/path&gt;&lt;path d="M251.5 199h20"&gt;&lt;/path&gt;&lt;g&gt;
  &lt;path d="M271.5 199h0.0"&gt;&lt;/path&gt;&lt;path d="M357.0 199h0.0"&gt;&lt;/path&gt;&lt;path d="M271.5 199h20"&gt;&lt;/path&gt;&lt;g class="terminal "&gt;
  &lt;path d="M291.5 199h0.0"&gt;&lt;/path&gt;&lt;path d="M337.0 199h0.0"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="291.5" y="188"&gt;&lt;/rect&gt;&lt;text x="314.25" y="203"&gt;'a'&lt;/text&gt;&lt;/g&gt;&lt;path d="M337.0 199h20"&gt;&lt;/path&gt;&lt;path d="M271.5 199a10 10 0 0 1 10 10v10a10 10 0 0 0 10 10"&gt;&lt;/path&gt;&lt;g class="terminal "&gt;
  &lt;path d="M291.5 229h0.0"&gt;&lt;/path&gt;&lt;path d="M337.0 229h0.0"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="291.5" y="218"&gt;&lt;/rect&gt;&lt;text x="314.25" y="233"&gt;'b'&lt;/text&gt;&lt;/g&gt;&lt;path d="M337.0 229a10 10 0 0 0 10 -10v-10a10 10 0 0 1 10 -10"&gt;&lt;/path&gt;&lt;/g&gt;&lt;path d="M357.0 199h20"&gt;&lt;/path&gt;&lt;path d="M251.5 199a10 10 0 0 1 10 10v40a10 10 0 0 0 10 10"&gt;&lt;/path&gt;&lt;g class="terminal "&gt;
  &lt;path d="M271.5 259h20.0"&gt;&lt;/path&gt;&lt;path d="M337.0 259h20.0"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="291.5" y="248"&gt;&lt;/rect&gt;&lt;text x="314.25" y="263"&gt;'c'&lt;/text&gt;&lt;/g&gt;&lt;path d="M357.0 259a10 10 0 0 0 10 -10v-40a10 10 0 0 1 10 -10"&gt;&lt;/path&gt;&lt;/g&gt;&lt;path d="M377.0 199h20"&gt;&lt;/path&gt;&lt;path d="M231.5 199a10 10 0 0 1 10 10v70a10 10 0 0 0 10 10"&gt;&lt;/path&gt;&lt;g class="terminal "&gt;
  &lt;path d="M251.5 289h40.0"&gt;&lt;/path&gt;&lt;path d="M337.0 289h40.0"&gt;&lt;/path&gt;&lt;rect height="22" rx="10" ry="10" width="45.5" x="291.5" y="278"&gt;&lt;/rect&gt;&lt;text x="314.25" y="293"&gt;'d'&lt;/text&gt;&lt;/g&gt;&lt;path d="M377.0 289a10 10 0 0 0 10 -10v-70a10 10 0 0 1 10 -10"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;path d="M397.0 199a10 10 0 0 0 10 -10v-124a10 10 0 0 1 10 -10"&gt;&lt;/path&gt;&lt;/g&gt;&lt;path d="M 417.0 55 h 20 m -10 -10 v 20 m 10 -20 v 20"&gt;&lt;/path&gt;&lt;/g&gt;&lt;/svg&gt;
          &lt;/div&gt;
      &lt;/div&gt;
  
  &lt;/body&gt;
  &lt;/html&gt;</code></pre>
  </div>
  </div>
  </p>