LocationImpl

Implementation of location in source file, which can store different data based on compile time flags.

Constructors

this
this(AliasSeqIf!((flags & LocationTypeFlags.bytes) != 0, T) bytePos, AliasSeqIf!((flags & LocationTypeFlags.lines) != 0, T) line, AliasSeqIf!((flags & LocationTypeFlags.lineOffset) != 0, T) offset)

Create location.

Members

Aliases

LocationAbs
alias LocationAbs = LocationImpl!(flags & ~LocationTypeFlags.diff, T)

Same type, but as absolute difference from beginning.

LocationDiff
alias LocationDiff = LocationImpl!(flags | LocationTypeFlags.diff, T)

Same type, but as difference between locations.

Functions

advance
void advance(string str)

Add location difference from string.

isValid
bool isValid()

Check if the location is valid.

opBinary
LocationDiff opBinary(LocationImpl rhs)

Substract absolute locations.

opBinary
LocationImpl opBinary(LocationDiff rhs)

Substract difference from absolute location.

opBinary
LocationImpl opBinary(LocationDiff rhs)

Add difference to absolute location.

opCmp
int opCmp(LocationImpl rhs)

Compare locations.

toPrettyString
string toPrettyString()

Represent location as string.

toString
string toString()

Represent location as string.

Manifest constants

invalid
enum invalid;

Special invalid value.

max
enum max;

Maximum value.

zero
enum zero;

Location for beginning of file or zero difference.

Static functions

fromStr
LocationImpl fromStr(string str)

Calculate location difference from string.

Variables

bytePos
T bytePos;

Number of bytes.

line
T line;

Number of lines

offset
T offset;

Number of bytes since beginning of line.

Parameters

flags

Configuration of available fields.

T

Type used for numbers in the location.

Meta