language-c-0.3.2.1: Analysis and generation of C code

Portabilityghc
Stabilityexperimental
Maintainerbenedikt.huber@gmail.com
Safe HaskellNone

Language.C.Data.Position

Description

Source code position

Synopsis

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 

Instances

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

initPos :: FilePath -> Position

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

posFile :: Position -> String

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

posRow :: Position -> Int

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

posColumn :: Position -> Int

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

isSourcePos :: Position -> Bool

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

nopos :: Position

no position (for unknown position information)

isNoPos :: Position -> Bool

builtinPos :: Position

position attached to built-in objects

isBuiltinPos :: Position -> Bool

returns True if the given position refers to a builtin definition

internalPos :: Position

position used for internal errors

isInternalPos :: Position -> Bool

returns True if the given position is internal

incPos :: Position -> Int -> Position

advance column

tabPos :: Position -> Position

Deprecated: Use 'incPos column-adjustment' instead

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

retPos :: Position -> Position

advance to next line

adjustPos :: FilePath -> Int -> Position -> Position

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