|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.olap4j.mdx.ParseRegion
public class ParseRegion
Region of parser source code.
The main purpose of a ParseRegion is to give detailed locations in error messages and warnings from the parsing and validation process.
A region has a start and end line number and column number. A region is a point if the start and end positions are the same.
The line and column number are one-based, because that is what end-users understand.
A region's end-points are inclusive. For example, in the code
theSELECT FROM [Sales]
SELECT
token has region [1:1, 1:6].
Regions are immutable.
Nested Class Summary | |
---|---|
static class |
ParseRegion.RegionAndSource
Combination of a region within an MDX statement with the source text of the whole MDX statement. |
Constructor Summary | |
---|---|
ParseRegion(int line,
int column)
Creates a ParseRegion. |
|
ParseRegion(int startLine,
int startColumn,
int endLine,
int endColumn)
Creates a ParseRegion. |
Method Summary | |
---|---|
java.lang.String |
annotate(java.lang.String source)
Generates a string of the source code annotated with caret symbols ("^") at the beginning and end of the region. |
boolean |
equals(java.lang.Object obj)
|
static ParseRegion.RegionAndSource |
findPos(java.lang.String code)
Looks for one or two carets in an MDX string, and if present, converts them into a parser position. |
int |
getEndColumn()
Return ending column number (1-based). |
int |
getEndLine()
Return ending line number (1-based). |
int |
getStartColumn()
Return starting column number (1-based). |
int |
getStartLine()
Return starting line number (1-based). |
int |
hashCode()
|
boolean |
isPoint()
Returns whether this region has the same start and end point. |
ParseRegion |
plusAll(java.lang.Iterable<ParseRegion> regions)
Combines this region with a list of parse tree nodes to create a region which spans from the first point in the first to the last point in the other. |
static ParseRegion |
sum(java.lang.Iterable<ParseRegion> nodes)
Combines the parser positions of a list of nodes to create a position which spans from the beginning of the first to the end of the last. |
java.lang.String |
toString()
Returns a string representation of this ParseRegion. |
Methods inherited from class java.lang.Object |
---|
getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public ParseRegion(int startLine, int startColumn, int endLine, int endColumn)
All lines and columns are 1-based and inclusive. For example, the token "select" in "select from [Sales]" has a region [1:1, 1:6].
startLine
- Line of the beginning of the regionstartColumn
- Column of the beginning of the regionendLine
- Line of the end of the regionendColumn
- Column of the end of the regionpublic ParseRegion(int line, int column)
line
- Line of the beginning and end of the regioncolumn
- Column of the beginning and end of the regionMethod Detail |
---|
public int getStartLine()
public int getStartColumn()
public int getEndLine()
public int getEndColumn()
public java.lang.String toString()
Regions are of the form
[startLine:startColumn, endLine:endColumn]
, or
[startLine:startColumn]
for point regions.
toString
in class java.lang.Object
public boolean isPoint()
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public ParseRegion plusAll(java.lang.Iterable<ParseRegion> regions)
regions
- Collection of source code regions
public static ParseRegion sum(java.lang.Iterable<ParseRegion> nodes)
nodes
- Collection of parse tree nodes
public static ParseRegion.RegionAndSource findPos(java.lang.String code)
Examples:
code
- Source code
public java.lang.String annotate(java.lang.String source)
For example, for the region (1, 9, 1, 12)
and source
"values (foo)"
,
yields the string "values (^foo^)"
.
source
- Source code
|
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |