Language.C.Analysis.TravMonad

# AST traversal monad

class MonadTrav m

# Handling declarations

handleTagDecl
handleTagDef
handleEnumeratorDef
handleTypeDef
handleObjectDef
handleFunDef
handleVarDecl
handleParamDecl
handleAsmBlock

# Symbol table scope modification

enterPrototypeScope
leavePrototypeScope
enterFunctionScope
leaveFunctionScope
enterBlockScope
leaveBlockScope

# Symbol table lookup (delegate)

lookupTypeDef
lookupObject

# Symbol table modification

createSUERef

# Additional error handling facilities

hadHardErrors
handleTravError
throwOnLeft
astError
warn

# Trav - default MonadTrav implementation

data Trav s a
runTrav
runTrav_
data TravState s
initTravState
withExtDeclHandler
modifyUserState
userState

# Helpers

mapMaybeM
maybeM
mapSndM
concatMapM