language-c-0.3.1.1: Analysis and generation of C codeSource codeContentsIndex
Language.C.Data.Ident
Portabilityghc
Stabilityexperimental
Maintainerbenedikt.huber@gmail.com
Description
This module provides the notion of identifiers in C, speed up using hashing. Identifiers are associated optionally associated with a NodeInfo, i.e. with a unique Name and a source location (Position). The ordering relation on identifiers is based on the hash and does not follow the lexical order.
Synopsis
data Ident = Ident String !Int NodeInfo
data SUERef
= AnonymousRef Name
| NamedRef Ident
isAnonymousRef :: SUERef -> Bool
mkIdent :: Position -> String -> Name -> Ident
builtinIdent :: String -> Ident
internalIdent :: String -> Ident
internalIdentAt :: Position -> String -> Ident
isInternalIdent :: Ident -> Bool
identToString :: Ident -> String
dumpIdent :: Ident -> String
Documentation
data Ident Source
C identifiers
Constructors
Ident String !Int NodeInfo
show/hide Instances
data SUERef Source
References uniquely determining a struct, union or enum type. Those are either identified by an string identifier, or by a unique name (anonymous types).
Constructors
AnonymousRef Name
NamedRef Ident
show/hide Instances
isAnonymousRef :: SUERef -> BoolSource
Return true if the struct/union/enum reference is anonymous.
mkIdent :: Position -> String -> Name -> IdentSource

build an identifier from a string.

  • only minimal error checking, e.g., the characters of the identifier are not checked for being alphanumerical only; the correct lexis of the identifier should be ensured by the caller, e.g., the scanner.
  • for reasons of simplicity the complete lexeme is hashed.
builtinIdent :: String -> IdentSource
returns a builtin identifier (has builtin position and no unique name)
internalIdent :: String -> IdentSource
returns an internal identifier (has internal position and no unique name)
internalIdentAt :: Position -> String -> IdentSource
return an internal identifier with position info
isInternalIdent :: Ident -> BoolSource
return True if the given identifier is internal
identToString :: Ident -> StringSource
string of an identifier
dumpIdent :: Ident -> StringSource
dump the identifier string and its positions for debugging purposes
Produced by Haddock version 2.4.2