Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
Define a position datatype for giving locations in error messages.
Position type
Source positions contain a filename, line, column, and an inclusion point, which is itself another source position, recursively.
Constructors of a new position
posInNewCxt :: String -> Maybe Posn -> Posn Source
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
.
Strictifier
Just used to strictify the internal values of a position, to avoid space leaks.
Modifiers
white :: Char -> Posn -> Posn Source
Add the given whitespace char to the given position.
Precondition: white c | isSpace c = True
Accessors
posnFilename :: Posn -> FilePath Source
posnColumn :: Posn -> Int Source