title: Why does ANTLR require all or none alternatives be labeled?
body: <p>I'm new to ANTLR. I just discovered that it is possible to label each alternative in a production like so:</p>
  
  <pre><code>foo
      : a # aLabel
      | b # bLabel
      | // ...
      ;
  </code></pre>
  
  <p>However, I find it unpleasant that all or none alternatives must be labeled. I needed to label just 2 alternatives of a production with 20+ branches recently, and I ended up labelling each of the others <code># stubLabel</code>. Is there any reason why all or none have to be labeled?</p>