title: Use token tokens in ANTLR4
body: <p>I ran into a problem with ANTLR and I wonder if a situation like this is even acceptable in ANTLR. I have prepared a very simplified example below.</p>
  <pre><code>grammar test;
  
  test
      : statement*
      ;
  
  statement
      : s1
      | s2
      ;
  
  s1
      : 'OK' INT
      ;
  
  s2
      : 'ABC' US_INT
      ;
  
  INT
      : S_INT
      | US_INT
      ;
  
  S_INT
     : [+-] [0-9]+
     ;
  
  US_INT
      : [0-9]+
      ;
  </code></pre>
  <p>For <code>OK 5</code> everything is ok, but for <code>ABC 5</code> I get the following error:</p>
  <pre><code>line 1:4 mismatched input '5' expecting US_INT
  </code></pre>
  <p>I was running the <code>grun</code> with the <code>-tokens</code> option and I have here <code>INT</code> instead of <code>US_INT</code></p>
  <pre><code>[@1,4:4='5',&lt;INT&gt;,1:4]
  </code></pre>
  <p>This made me wonder if such a situation in ANTLR was possible at all. Previously, I tried reordering tokens, moving <code>US_INT</code> out of <code>INT</code>, fragments and some other things, but it didn't work well. The only change was that <code>OK 5</code> stopped working and <code>ABC 5</code> started. I would like both of these cases to work without errors.</p>