Package org.parboiled.support
Class IndexRange
- java.lang.Object
-
- org.parboiled.support.IndexRange
-
public final class IndexRange extends Object
A simple immutable container for a range of indices into an underlying InputBuffer.
-
-
Field Summary
Fields Modifier and Type Field Description static IndexRange
EMPTY
int
end
The index of the character following the last character of the range.int
start
The index of the first character in the range.
-
Constructor Summary
Constructors Constructor Description IndexRange(int start, int end)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
int
hashCode()
boolean
isEmpty()
Determines whether this range contains no characters.boolean
isFollowedBy(IndexRange other)
Determines whether this range is immediated followed by the given other one.boolean
isPrecededBy(IndexRange other)
Determines whether this range immediated follows the given other one.int
length()
IndexRange
mergedWith(IndexRange other)
Created a new IndexRange that spans all characters between the smallest and the highest index of the two ranges.boolean
overlapsWith(IndexRange other)
Determines whether this range overlaps with the given other one.String
toString()
boolean
touches(IndexRange other)
Determines whether this range immediated follows or precedes the given other one.
-
-
-
Field Detail
-
EMPTY
public static final IndexRange EMPTY
-
start
public final int start
The index of the first character in the range.
-
end
public final int end
The index of the character following the last character of the range.
-
-
Method Detail
-
isEmpty
public boolean isEmpty()
Determines whether this range contains no characters.- Returns:
- true if the end matches the start of the range.
-
length
public int length()
- Returns:
- the number of characters covered by this range
-
overlapsWith
public boolean overlapsWith(IndexRange other)
Determines whether this range overlaps with the given other one.- Parameters:
other
- the other range- Returns:
- true if there is at least one index that is contained in both ranges
-
isPrecededBy
public boolean isPrecededBy(IndexRange other)
Determines whether this range immediated follows the given other one.- Parameters:
other
- the other range- Returns:
- true if this range immediated follows the given other one
-
isFollowedBy
public boolean isFollowedBy(IndexRange other)
Determines whether this range is immediated followed by the given other one.- Parameters:
other
- the other range- Returns:
- true if this range is immediated followed by the given other one
-
touches
public boolean touches(IndexRange other)
Determines whether this range immediated follows or precedes the given other one.- Parameters:
other
- the other range- Returns:
- true if this range immediated follows or precedes the given other one.
-
mergedWith
public IndexRange mergedWith(IndexRange other)
Created a new IndexRange that spans all characters between the smallest and the highest index of the two ranges.- Parameters:
other
- the other range- Returns:
- a new IndexRange instance
-
-