Portability | ghc |
---|---|
Stability | experimental |
Maintainer | benedikt.huber@gmail.com |
Safe Haskell | None |
Language.C.Data.Position
Description
Source code position
- data Position = Position String !Int !Int
- initPos :: FilePath -> Position
- posFile :: Position -> String
- posRow :: Position -> Int
- posColumn :: Position -> Int
- isSourcePos :: Position -> Bool
- nopos :: Position
- isNoPos :: Position -> Bool
- builtinPos :: Position
- isBuiltinPos :: Position -> Bool
- internalPos :: Position
- isInternalPos :: Position -> Bool
- incPos :: Position -> Int -> Position
- tabPos :: Position -> Position
- retPos :: Position -> Position
- adjustPos :: FilePath -> Int -> Position -> Position
- class Pos a where
Documentation
data Position
uniform representation of source file positions; the order of the arguments is important as it leads to the desired ordering of source positions
Constructors
Position String !Int !Int |
initPos :: FilePath -> Position
initialize a Position to the start of the translation unit starting in the given file
get the source file of the specified position. Fails unless isSourcePos pos
.
get the line number of the specified position. Fails unless isSourcePos pos
isSourcePos :: Position -> Bool
returns True
if the given position refers to an actual source file
position attached to built-in objects
isBuiltinPos :: Position -> Bool
returns True
if the given position refers to a builtin definition
position used for internal errors
isInternalPos :: Position -> Bool
returns True
if the given position is internal
tabPos :: Position -> Position
Deprecated: Use 'incPos column-adjustment' instead
advance column to next tab positions (tabs are considered to be at every 8th column)
adjustPos :: FilePath -> Int -> Position -> Position
adjust position: change file and line number, reseting column to 1. This is usually used for #LINE pragmas.
class Pos a where
class of type which aggregate a source code location
Instances