Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
A parser's position in the input.
Documentation
class Ord p => Position p where Source #
A class for representing position values. The methods satisfy these laws:
move (distance pos1 pos2) pos1 == pos2 (pos1 < pos2) == (distance pos1 pos2 > 0)
distance :: p -> p -> Int Source #
Distance from the first position to the second
move :: Int -> p -> p Source #
Move the position by the given distance.
offset :: FactorialMonoid s => s -> p -> Int Source #
Map the position into its offset from the beginning of the full input.
fromStart :: Int -> Int Source #
Construct a Position
given the offset from the beginning of the full input.
fromEnd :: Int -> Down Int Source #
Construct a Position
given the length remaining from the position to the end of the input.
context :: (Eq s, TextualMonoid s, Position p) => s -> p -> Int -> s Source #
Given the parser input, a Position
within it, and desired number of context lines, returns a description of
the offset position in English.
lineAndColumn :: (Eq s, IsString s, FactorialMonoid s, Position p) => s -> p -> ([s], Int) Source #
Given the full input and an offset within it, returns all the input lines up to and including the offset in reverse order, as well as the zero-based column number of the offset