Text.XML.HaXml.Posn

HaXml-1.25.3: Utilities for manipulating XML documents

Safe Haskell | Safe
Language | Haskell98

Text.XML.HaXml.Posn

Contents

- Position type
  - Constructors of a new position
  - Strictifier
  - Modifiers
  - Accessors

Description

Define a position datatype for giving locations in error messages.

Synopsis

- data Posn
- posInNewCxt :: String -> Maybe Posn -> Posn
- noPos :: Posn
- forcep :: Posn -> Int
- addcol :: Int -> Posn -> Posn
- newline :: Posn -> Posn
- tab :: Posn -> Posn
- white :: Char -> Posn -> Posn
- posnFilename :: Posn -> FilePath
- posnLine :: Posn -> Int
- posnColumn :: Posn -> Int

# Position type

data Posn

Source positions contain a filename, line, column, and an inclusion point, which is itself another source position, recursively.

Instances

Eq Posn |
Show Posn |

## Constructors of a new position

posInNewCxt :: String -> Maybe Posn -> Posn

`posInNewCxt name pos` creates a new source position from an old one. It is used when opening a new file (e.g. a DTD inclusion), to denote the start of the file `name`, but retain the stacked information that it was included from the old `pos`.

noPos :: Posn

Dummy value for generated data, where a true source position does not exist.

## Strictifier

forcep :: Posn -> Int

Just used to strictify the internal values of a position, to avoid space leaks.

## Modifiers

addcol :: Int -> Posn -> Posn

Add n character positions to the given position.

newline :: Posn -> Posn

Add a newline or tab to the given position.

tab :: Posn -> Posn

Add a newline or tab to the given position.

white :: Char -> Posn -> Posn

Add the given whitespace char to the given position. Precondition: `white c | isSpace c = True`

## Accessors

posnFilename :: Posn -> FilePath

posnLine :: Posn -> Int

posnColumn :: Posn -> Int