public final class Span extends Object
SqlParserPos.
Because it is mutable, it is convenient for keeping track of the positions of the tokens that go into a non-terminal. It can be passed into methods, which can add the positions of tokens consumed to it.
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.pos() returns a position spanning all tokens in the list
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
| Modifier and Type | Method and Description |
|---|---|
Span |
add(org.apache.calcite.sql.parser.SqlAbstractParserImpl parser)
Adds the position of the last token emitted by a parser to the list,
and returns this Span.
|
Span |
add(SqlNode n)
Adds a node's position to the list,
and returns this Span.
|
Span |
add(SqlParserPos pos)
Adds a position to the list,
and returns this Span.
|
Span |
addAll(Iterable<? extends SqlNode> nodes)
Adds the positions of a collection of nodes to the list,
and returns this Span.
|
Span |
addIf(@Nullable SqlNode n)
Adds a node's position to the list if the node is not null,
and returns this Span.
|
Span |
clear()
Clears the contents of this Span, and returns this Span.
|
SqlParserPos |
end(org.apache.calcite.sql.parser.SqlAbstractParserImpl parser)
Adds the position of the last token emitted by a parser to the list,
and returns a position that covers the whole range.
|
SqlParserPos |
end(SqlNode n)
Adds a node's position to the list,
and returns a position that covers the whole range.
|
static Span |
of()
Creates an empty Span.
|
static Span |
of(Collection<? extends SqlNode> nodes)
Creates a Span of a list of nodes.
|
static Span |
of(SqlNode n)
Creates a Span of one node.
|
static Span |
of(SqlNodeList nodeList)
Creates a Span of a node list.
|
static Span |
of(SqlNode n0,
SqlNode n1)
Creates a Span between two nodes.
|
static Span |
of(SqlParserPos p)
Creates a Span with one position.
|
SqlParserPos |
pos()
Returns a position spanning the earliest position to the latest.
|
public static Span of()
public static Span of(SqlParserPos p)
public static Span of(Collection<? extends SqlNode> nodes)
public static Span of(SqlNodeList nodeList)
public Span addIf(@Nullable SqlNode n)
public Span add(SqlParserPos pos)
public Span addAll(Iterable<? extends SqlNode> nodes)
public Span add(org.apache.calcite.sql.parser.SqlAbstractParserImpl parser)
public SqlParserPos pos()
public SqlParserPos end(org.apache.calcite.sql.parser.SqlAbstractParserImpl parser)
public SqlParserPos end(SqlNode n)
public Span clear()
Copyright © 2012-2022 Apache Software Foundation. All Rights Reserved.