Pidgin

Struct SourcePos

Represents a (line, col) position in an input stream.

Implements
Inherited Members
Declaration
public readonly struct SourcePos : IEquatable<SourcePos>, IComparable<SourcePos>

Constructors

SourcePos(int, int)

Create a new SourcePos with the specified 1-indexed line and column number.

Declaration
public SourcePos(int line, int col)
Parameters
Type Name Description

int

line

The 1-indexed line number.

int

col

The 1-indexed column number.

Properties

Col

Gets the column of the position in the input stream The value is 1-indexed: a Col value of 1 refers to the first column of the line.

Declaration
public int Col { get; }
Property Value
Type Description

int

The column.

Line

Gets the line of the position in the input stream. The value is 1-indexed: a Line value of 1 refers to the first line of the input document.

Declaration
public int Line { get; }
Property Value
Type Description

int

The line.

Methods

Add(SourcePosDelta)

Add a SourcePosDelta to this SourcePos.

Declaration
public SourcePos Add(SourcePosDelta other)
Parameters
Type Name Description

SourcePosDelta

other

The SourcePosDelta to add to this SourcePos.

Returns
Type Description

SourcePos

A SourcePos representing the composition of this and other.

CompareTo(SourcePos)

Represents a (line, col) position in an input stream.

Declaration
public int CompareTo(SourcePos other)
Parameters
Type Name Description

SourcePos

other

Returns
Type Description

int

Equals(SourcePos)

Represents a (line, col) position in an input stream.

Declaration
public bool Equals(SourcePos other)
Parameters
Type Name Description

SourcePos

other

Returns
Type Description

bool

Equals(object?)

Represents a (line, col) position in an input stream.

Declaration
public override bool Equals(object? obj)
Parameters
Type Name Description

object

obj

Returns
Type Description

bool

Overrides
ValueType.Equals(object)

GetHashCode()

Represents a (line, col) position in an input stream.

Declaration
public override int GetHashCode()
Returns
Type Description

int

Overrides
ValueType.GetHashCode()

IncrementCol()

Creates a SourcePos with the column number incremented by one.

Declaration
public SourcePos IncrementCol()
Returns
Type Description

SourcePos

A SourcePos with the column number incremented by one.

NewLine()

Creates a SourcePos with the line number incremented by one and the column number reset to 1.

Declaration
public SourcePos NewLine()
Returns
Type Description

SourcePos

A SourcePos with the line number incremented by one and the column number reset to 1.

Plus(SourcePosDelta)

Add a SourcePosDelta to this SourcePos.

Declaration
public SourcePos Plus(SourcePosDelta other)
Parameters
Type Name Description

SourcePosDelta

other

The SourcePosDelta to add to this SourcePos.

Returns
Type Description

SourcePos

A SourcePos representing the composition of this and other.

Operators

operator +(SourcePos, SourcePosDelta)

Add a SourcePosDelta to this SourcePos.

Declaration
public static SourcePos operator +(SourcePos left, SourcePosDelta right)
Parameters
Type Name Description

SourcePos

left

The SourcePos.

SourcePosDelta

right

The SourcePosDelta to add to this SourcePos.

Returns
Type Description

SourcePos

A SourcePos representing the composition of left and right.

operator ==(SourcePos, SourcePos)

Equality operator.

Declaration
public static bool operator ==(SourcePos left, SourcePos right)
Parameters
Type Name Description

SourcePos

left

The left SourcePos.

SourcePos

right

The right SourcePos.

Returns
Type Description

bool

operator >(SourcePos, SourcePos)

Comparison operator.

Declaration
public static bool operator >(SourcePos left, SourcePos right)
Parameters
Type Name Description

SourcePos

left

The left SourcePos.

SourcePos

right

The right SourcePos.

Returns
Type Description

bool

operator >=(SourcePos, SourcePos)

Comparison operator.

Declaration
public static bool operator >=(SourcePos left, SourcePos right)
Parameters
Type Name Description

SourcePos

left

The left SourcePos.

SourcePos

right

The right SourcePos.

Returns
Type Description

bool

operator !=(SourcePos, SourcePos)

Inequality operator.

Declaration
public static bool operator !=(SourcePos left, SourcePos right)
Parameters
Type Name Description

SourcePos

left

The left SourcePos.

SourcePos

right

The right SourcePos.

Returns
Type Description

bool

operator <(SourcePos, SourcePos)

Comparison operator.

Declaration
public static bool operator <(SourcePos left, SourcePos right)
Parameters
Type Name Description

SourcePos

left

The left SourcePos.

SourcePos

right

The right SourcePos.

Returns
Type Description

bool

operator <=(SourcePos, SourcePos)

Comparison operator.

Declaration
public static bool operator <=(SourcePos left, SourcePos right)
Parameters
Type Name Description

SourcePos

left

The left SourcePos.

SourcePos

right

The right SourcePos.

Returns
Type Description

bool

Implements

IEquatable<T>
IComparable<T>