in scala.io
object Position

object Position
extends java.lang.Object
with scala.ScalaObject

The object Position provides convenience methods to encode line and column number in one single integer. The encode line (column) numbers range from 0 to LINE_MASK (COLUMN_MASK), where 0 indicates that the line (column) is the undefined and 1 represents the first line (column). Line (Column) numbers greater than LINE_MASK (COLUMN_MASK) are replaced by LINE_MASK (COLUMN_MASK). Furthermore, if the encoded line number is LINE_MASK, the column number is always set to 0.

The following properties hold:

  • the undefined position is 0: encode(0,0) == 0
  • encodings are non-negative : encode(line,column) >= 0
  • position order is preserved: (line1 < line2) || (line1 == line2 && column1 < column2)
    implies
    encode(line1,column1) <= encode(line2,column2)
Author:
Burak Emir (translated from work by Matthias Zenger and others)

Constructor Summary
def this

Val Summary
final val COLUMN_BITS : scala.Int(11)
Number of bits used to encode the column number
final val COLUMN_MASK : scala.Int(2047)
Mask to decode the column number
final val FIRSTPOS : scala.Int
The first position in a source file
final val LINE_BITS : scala.Int(20)
Number of bits used to encode the line number
final val LINE_MASK : scala.Int(1048575)
Mask to decode the line number
final val NOPOS : scala.Int(0)
The undefined position
Def Summary
final def column (pos: scala.Int) : scala.Int
Returns the column number of the encoded position.
final def encode (line: scala.Int, column: scala.Int) : scala.Int
Encodes a position into a single integer.
final def line (pos: scala.Int) : scala.Int
Returns the line number of the encoded position.
def toString (pos: scala.Int) : java.lang.String
Returns a string representation of the encoded position.
Constructor Detail
def this

Val Detail
final val COLUMN_BITS : scala.Int(11)
Number of bits used to encode the column number

final val COLUMN_MASK : scala.Int(2047)
Mask to decode the column number

final val FIRSTPOS : scala.Int
The first position in a source file

final val LINE_BITS : scala.Int(20)
Number of bits used to encode the line number

final val LINE_MASK : scala.Int(1048575)
Mask to decode the line number

final val NOPOS : scala.Int(0)
The undefined position

Def Detail
final def column (pos: scala.Int): scala.Int
Returns the column number of the encoded position.

final def encode (line: scala.Int, column: scala.Int): scala.Int
Encodes a position into a single integer.

final def line (pos: scala.Int): scala.Int
Returns the line number of the encoded position.

def toString (pos: scala.Int): java.lang.String
Returns a string representation of the encoded position.