Julian Hyde created CALCITE-1788:
------------------------------------

             Summary: Simplify handling of position in the parser
                 Key: CALCITE-1788
                 URL: https://issues.apache.org/jira/browse/CALCITE-1788
             Project: Calcite
          Issue Type: Bug
            Reporter: Julian Hyde
            Assignee: Julian Hyde


Simplify handling of position in the parser by adding a class Span that keeps 
track of the tokens that have contributed to the current non-terminal.

Some patterns:
* {{final Span s;}} declaration of a Span at the top of a production
* {{s = span();}}  initializes {{s}} to a Span that includes the token we just 
saw; very often occurs immediately after the first token in the production
* {{s.end(this);}} adds the most recent token to span {{s}} and evaluates to a 
{{SqlParserPosition}} that spans from beginning to end; commonly used when 
making a call to a function
* {{s.add(node);}} adds a SqlNode's parser position to a span
* {{s.addAll(nodeList);}} adds several SqlNodes' parser positions to a span
* {{s = Span.of();}} initializes s to an empty Span, not even including the 
most recent token; rarely used




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to