title: ANTLR4 Grammar - Issue with "dot" in fields and extended expressions
body: <p>I have the following ANTLR4 Grammar</p>
  <pre><code>grammar ExpressionGrammar;
  
  parse: (expr)
       ;
  
  expr: MIN expr
      | expr ( MUL | DIV ) expr
      | expr ( ADD | MIN ) expr
      | NUM
      | function
      | '(' expr ')'
      ;
  
  function : ID '(' arguments? ')';
  
  arguments: expr ( ',' expr)*;
  
  /* Tokens */
  
  MUL : '*';
  DIV : '/';
  MIN : '-';
  ADD : '+';
  OPEN_PAR : '(' ;
  CLOSE_PAR : ')' ;
  
  NUM : '0' | [1-9][0-9]*;
  ID : [a-zA-Z_] [a-zA-Z]*;
  COMMENT: '//' ~[\r\n]* -&gt; skip;
  WS: [ \t\n]+ -&gt; skip;
  </code></pre>
  <p>I have an input expression like this :-</p>
  <pre><code>(Fields.V1)*(Fields.V2) + (Constants.Value1)*(Constants.Value2)
  </code></pre>
  <p>The ANTLR parser generated the following text from the grammar above :-</p>
  <pre><code>(FieldsV1)*(FieldsV2)+(Constants&lt;missing ')'&gt; 
  </code></pre>
  <p>As you can see, the &quot;dots&quot; in Fields.V1 and Fields.V2 are missing from the text and also there is a &lt;missing ')' Error node. I believe I should somehow make ANTLR understand that an expression can also have fields with dot operators.</p>
  <p>A question on top of this :-</p>
  <pre><code> (Var1)(Var2)    
  </code></pre>
  <p>ANTLR is not throwing me error for this above scenario , the expressions should not be (Var1)(Var2) -- It should always have the operator (var1)*(var2) or (var1)+(var2) etc. The parser error tree is not generating this error. How should the grammar be modified to make sure even this scenario is taken into consideration.</p>