Package com.oracle.truffle.api.source
Class SourceSection
java.lang.Object
com.oracle.truffle.api.source.SourceSection
Description of contiguous section of text within a
Source
of program code.; supports
multiple modes of access to the text and its location.
Two available source sections are considered equal if their sources, start and length are equal.
Unavailable
source sections are compared by identity. Source sections can
be used as keys in hash maps.
- Since:
- 0.8 or earlier
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionabstract boolean
abstract CharSequence
Returns the source code fragment described by this section.abstract int
Returns the index of the text position immediately following the last character in the section.abstract int
Returns the 0-based index of the first character in this section.abstract int
Returns the length of this section in characters.abstract int
Returns the 1-based column number of the last character in this section (inclusive).abstract int
Returns 1-based line number of the last character in this section (inclusive).final Source
Representation of the source program that contains this section.abstract int
Returns the 1-based column number of the first character in this section (inclusive).abstract int
Returns 1-based line number of the first character in this section (inclusive).abstract boolean
Returnstrue
if this section has a character index information,false
otherwise.abstract boolean
Returnstrue
if this section has a column number information,false
otherwise.abstract int
hashCode()
abstract boolean
hasLines()
Returnstrue
if this section has a line number information,false
otherwise.abstract boolean
Returns whether this is a special instance that signifies that source information is available.final String
toString()
Returns an implementation-defined string representation of this source section to be used for debugging purposes only.
-
Method Details
-
isAvailable
public abstract boolean isAvailable()Returns whether this is a special instance that signifies that source information is available. Unavailable source sections can be created usingSource.createUnavailableSection()
. Available source sections are never equal to unavailable source sections. Unavailable source sections return the same indices and lengths as empty source sections starting at character index0
.- Since:
- 0.18
- See Also:
-
hasLines
public abstract boolean hasLines()Returnstrue
if this section has a line number information,false
otherwise. Whentrue
,getStartLine()
andgetEndLine()
return valid line numbers, whenfalse
,getStartLine()
andgetEndLine()
return1
.- Since:
- 19.0
-
hasColumns
public abstract boolean hasColumns()Returnstrue
if this section has a column number information,false
otherwise. Whentrue
,hasLines()
istrue
as well,getStartColumn()
andgetEndColumn()
return valid column numbers. Whenfalse
,getStartColumn()
andgetEndColumn()
return1
.- Since:
- 19.0
-
hasCharIndex
public abstract boolean hasCharIndex()Returnstrue
if this section has a character index information,false
otherwise. Whentrue
,getCharIndex()
,getCharEndIndex()
andgetCharLength()
return valid character indices, whenfalse
,getCharIndex()
,getCharEndIndex()
andgetCharLength()
return0
.- Since:
- 19.0
-
getSource
Representation of the source program that contains this section.- Returns:
- the source object
- Since:
- 0.8 or earlier
-
getStartLine
public abstract int getStartLine()Returns 1-based line number of the first character in this section (inclusive). Returns1
for out of bounds orunavailable
source sections, or source sections nothaving lines
.- Returns:
- the starting line number
- Since:
- 0.8 or earlier
- See Also:
-
getStartColumn
public abstract int getStartColumn()Returns the 1-based column number of the first character in this section (inclusive). Returns1
for out of bounds orunavailable
source sections, or source sections nothaving columns
.- Returns:
- the starting column number
- Since:
- 0.8 or earlier
- See Also:
-
getEndLine
public abstract int getEndLine()Returns 1-based line number of the last character in this section (inclusive). Returns1
for out of bounds orunavailable
source sections, or source sections nothaving lines
.- Returns:
- the starting line number
- Since:
- 0.8 or earlier
- See Also:
-
getEndColumn
public abstract int getEndColumn()Returns the 1-based column number of the last character in this section (inclusive). Returns1
for out of bounds orunavailable
source sections, or source sections nothaving columns
.- Returns:
- the starting column number
- Since:
- 0.8 or earlier
- See Also:
-
getCharIndex
public abstract int getCharIndex()Returns the 0-based index of the first character in this section. Returns0
forunavailable
source sections, or sections nothaving character index
. The returned index might be out of bounds of the source code if assertions (-ea) are not enabled.- Returns:
- the starting character index
- Since:
- 0.8 or earlier
- See Also:
-
getCharLength
public abstract int getCharLength()Returns the length of this section in characters. Returns0
forunavailable
source sections, or sections nothaving character index
. The returned length might be out of bounds of the source code if assertions (-ea) are not enabled.- Returns:
- the number of characters in the section
- Since:
- 0.8 or earlier
- See Also:
-
getCharEndIndex
public abstract int getCharEndIndex()Returns the index of the text position immediately following the last character in the section. Returns0
forunavailable
source sections, or sections nothaving character index
. The returned index might be out of bounds of the source code if assertions (-ea) are not enabled.- Returns:
- the end position of the section
- Since:
- 0.8 or earlier
- See Also:
-
getCharacters
Returns the source code fragment described by this section. Returns an empty character sequence for out of bounds orunavailable
source sections, or sections whose source does nothave characters
.- Returns:
- the code as a CharSequence
- Since:
- 0.28
- See Also:
-
toString
Returns an implementation-defined string representation of this source section to be used for debugging purposes only. -
hashCode
public abstract int hashCode() -
equals
-