| language-c-0.3.1.1: Analysis and generation of C code | Source code | Contents | Index

Language.C.Data.Position

Portability | ghc
Stability | experimental
Maintainer | benedikt.huber@gmail.com

Description
Source code position
Synopsis

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

posOf :: a -> Position

Documentation

data Position | Source

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 |

Instances

Eq Position
Data Position
Ord Position
Read Position
Show Position
Typeable Position

initPos :: FilePath -> Position | Source

initialize a Position to the start of the translation unit starting in the given file

posFile :: Position -> String | Source

get the source file of the specified position. Fails unless `isSourcePos pos`.

posRow :: Position -> Int | Source

get the line number of the specified position. Fails unless `isSourcePos pos`

posColumn :: Position -> Int | Source

get the column of the specified position. Fails unless `isSourcePos pos`

isSourcePos :: Position -> Bool | Source

returns `True` if the given position refers to an actual source file

nopos :: Position | Source

no position (for unknown position information)

isNoPos :: Position -> Bool | Source

builtinPos :: Position | Source

position attached to built-in objects

isBuiltinPos :: Position -> Bool | Source

returns `True` if the given position refers to a builtin definition

internalPos :: Position | Source

position used for internal errors

isInternalPos :: Position -> Bool | Source

returns `True` if the given position is internal

incPos :: Position -> Int -> Position | Source

advance column

tabPos :: Position -> Position | Source

advance column to next tab positions (tabs are considered to be at every 8th column)

retPos :: Position -> Position | Source

advance to next line

adjustPos :: FilePath -> Int -> Position -> Position | Source

adjust position: change file and line number, reseting column to 1. This is usually used for #LINE pragmas.

class Pos a where | Source

class of type which aggregate a source code location
Methods

posOf :: a -> Position | Source

Instances

Pos NodeInfo
Pos Ident
Pos CStrLit
Pos CConst
Pos CBuiltin
Pos CExpr
Pos CAttr
Pos CDesignator
Pos CInit
Pos CEnum
Pos CStructUnion
Pos CTypeQual
Pos CTypeSpec
Pos CStorageSpec
Pos CDeclSpec
Pos CBlockItem
Pos CAsmOperand
Pos CAsmStmt
Pos CStat
Pos CDerivedDeclr
Pos CDeclr
Pos CDecl
Pos CFunDef
Pos CExtDecl
Pos CTranslUnit
Pos CToken
Pos Attr
Pos Enumerator
Pos EnumType
Pos CompType
Pos EnumTypeRef
Pos CompTypeRef
Pos TypeDefRef
Pos TypeDef
Pos MemberDecl
Pos ParamDecl
Pos FunDef
Pos ObjDef
Pos Decl
Pos DeclEvent
Pos IdentDecl
Pos TagDef
Pos a => Pos ([] a)
Pos a => Pos (Reversed a)
Pos (Located a)

Produced by Haddock version 2.4.2