title: What is this "[0 ... 255] =" syntax in C?
body: <p>Refering to <a href="https://github.com/quartzjer/js0n">js0n.c</a></p>
  
  <p>The code syntax is as below:</p>
  
  <pre><code>    static void *gostruct[] =
      {
          [0 ... 255] = &amp;&amp;l_bad,
          ['\t'] = &amp;&amp;l_loop, [' '] = &amp;&amp;l_loop, ['\r'] = &amp;&amp;l_loop, ['\n'] = &amp;&amp;l_loop,
          ['"'] = &amp;&amp;l_qup,
          [':'] = &amp;&amp;l_loop, [','] = &amp;&amp;l_loop,
          ['['] = &amp;&amp;l_up, [']'] = &amp;&amp;l_down, // tracking [] and {} individually would allow fuller validation but is really messy
          ['{'] = &amp;&amp;l_up, ['}'] = &amp;&amp;l_down,
          ['-'] = &amp;&amp;l_bare, [48 ... 57] = &amp;&amp;l_bare, // 0-9
          [65 ... 90] = &amp;&amp;l_bare, // A-Z
          [97 ... 122] = &amp;&amp;l_bare // a-z
      };
  
  ........
  .......
  
  l_bad:
      *vlen = cur - json; // where error'd
      return 0;
  
  ........
  ........
  </code></pre>
  
  <p>Can anyone explain what is being done here? What does syntax <code>[0 ... 255]</code> and 
  <code>&amp;&amp;l_bad</code> do here?</p>