Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data DecodedName
- data CVQualifier
- data CXXType
- = QualifiedType [CVQualifier] CXXType
- | PointerToType CXXType
- | ReferenceToType CXXType
- | RValueReferenceToType CXXType
- | ComplexPairType CXXType
- | ImaginaryType CXXType
- | ParameterPack CXXType
- | VendorTypeQualifier String CXXType
- | VoidType
- | Wchar_tType
- | BoolType
- | CharType
- | SignedCharType
- | UnsignedCharType
- | ShortType
- | UnsignedShortType
- | IntType
- | UnsignedIntType
- | LongType
- | UnsignedLongType
- | LongLongType
- | UnsignedLongLongType
- | Int128Type
- | UnsignedInt128Type
- | FloatType
- | DoubleType
- | LongDoubleType
- | Float128Type
- | EllipsisType
- | Char32Type
- | Char16Type
- | AutoType
- | NullPtrType
- | VendorBuiltinType String
- | FunctionType [CXXType]
- | ExternCFunctionType [CXXType]
- | ArrayTypeN (Maybe Int) CXXType
- | ArrayTypeE Expression
- | PtrToMemberType CXXType CXXType
- | ClassEnumType Name
- | SubstitutionType Substitution
- | TemplateParamType TemplateParam
- | TemplateTemplateParamType TemplateParam [TemplateArg]
- | TemplateTemplateParamSubstitutionType Substitution [TemplateArg]
- data Name
- = NestedName [CVQualifier] [Prefix] UnqualifiedName
- | NestedTemplateName [CVQualifier] [Prefix] [TemplateArg]
- | UnscopedName UName
- | UnscopedTemplateName UName [TemplateArg]
- | UnscopedTemplateSubstitution Substitution [TemplateArg]
- data Prefix
- = DataMemberPrefix String
- | UnqualifiedPrefix UnqualifiedName
- | SubstitutionPrefix Substitution
- | TemplateParamPrefix TemplateParam
- | TemplateArgsPrefix [TemplateArg]
- data UnqualifiedName
- data CtorDtor
- data Operator
- = OpNew
- | OpNewArray
- | OpDelete
- | OpDeleteArray
- | OpUPlus
- | OpUMinus
- | OpAddressOf
- | OpDeref
- | OpBitNot
- | OpPlus
- | OpMinus
- | OpMul
- | OpDiv
- | OpMod
- | OpBitAnd
- | OpBitOr
- | OpBitXor
- | OpAssign
- | OpPlusAssign
- | OpMinusAssign
- | OpMulAssign
- | OpDivAssign
- | OpModAssign
- | OpAndAssign
- | OpOrAssign
- | OpXorAssign
- | OpShl
- | OpShr
- | OpShlAssign
- | OpShrAssign
- | OpEquals
- | OpNotEquals
- | OpLt
- | OpGt
- | OpLte
- | OpGte
- | OpNot
- | OpAnd
- | OpOr
- | OpPlusPlus
- | OpMinusMinus
- | OpComma
- | OpArrowStar
- | OpArrow
- | OpCall
- | OpIndex
- | OpQuestion
- | OpSizeofType
- | OpSizeofExpr
- | OpAlignofType
- | OpAlignofExpr
- | OpCast CXXType
- | OpVendor Int String
- data Expression = Expression
- data CallOffset
- data Substitution
- data UName
- demangleName :: String -> Either String DecodedName
- mangleName :: DecodedName -> Maybe String
- cxxNameToString :: (Monad m, MonadThrow m) => DecodedName -> m String
- cxxNameToText :: (Monad m, MonadThrow m) => DecodedName -> m Text
- rUnqualifiedPrefix :: forall tok e r. Boomerang e tok ((:-) UnqualifiedName r) ((:-) Prefix r)
- rConst :: forall tok e r. Boomerang e tok r ((:-) CVQualifier r)
- rSourceName :: forall tok e r. Boomerang e tok ((:-) String r) ((:-) UnqualifiedName r)
- rUName :: forall tok e r. Boomerang e tok ((:-) UnqualifiedName r) ((:-) UName r)
- rNestedName :: forall tok e r. Boomerang e tok ((:-) [CVQualifier] ((:-) [Prefix] ((:-) UnqualifiedName r))) ((:-) Name r)
- rUnscopedName :: forall tok e r. Boomerang e tok ((:-) UName r) ((:-) Name r)
Documentation
data DecodedName Source #
Function Name [CXXType] | |
Data Name | |
VirtualTable CXXType | |
VTTStructure CXXType | |
TypeInfo CXXType | |
TypeInfoName CXXType | |
GuardVariable Name | |
OverrideThunk CallOffset DecodedName | |
OverrideThunkCovariant CallOffset CallOffset DecodedName | |
ConstStructData UnqualifiedName | Const data that is not a builtin data type (as a special-name). This construct is not specifically identified in the documentation, but for the following input: struct mystr { int val; }; const struct mystr here = { 9 }; Also works with: class mycls { public: int val; } const class mycls here = { 8 }; When compiled with Clang/LLVM results in Global Variable (apparently always using the length-specified source-name syntax): _ZL4here This is apparently only used for const declarations and only for non-builtin datatypes. |
Instances
data CVQualifier Source #
Instances
Instances
Data CXXType Source # | |
Defined in ABI.Itanium.Types gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CXXType -> c CXXType # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CXXType # toConstr :: CXXType -> Constr # dataTypeOf :: CXXType -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CXXType) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CXXType) # gmapT :: (forall b. Data b => b -> b) -> CXXType -> CXXType # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CXXType -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CXXType -> r # gmapQ :: (forall d. Data d => d -> u) -> CXXType -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CXXType -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CXXType -> m CXXType # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CXXType -> m CXXType # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CXXType -> m CXXType # | |
Show CXXType Source # | |
Eq CXXType Source # | |
Ord CXXType Source # | |
NestedName [CVQualifier] [Prefix] UnqualifiedName | |
NestedTemplateName [CVQualifier] [Prefix] [TemplateArg] | |
UnscopedName UName | |
UnscopedTemplateName UName [TemplateArg] | |
UnscopedTemplateSubstitution Substitution [TemplateArg] |
Instances
Data Name Source # | |
Defined in ABI.Itanium.Types gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Name -> c Name # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Name # dataTypeOf :: Name -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Name) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Name) # gmapT :: (forall b. Data b => b -> b) -> Name -> Name # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r # gmapQ :: (forall d. Data d => d -> u) -> Name -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Name -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Name -> m Name # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name # | |
Show Name Source # | |
Eq Name Source # | |
Ord Name Source # | |
DataMemberPrefix String | |
UnqualifiedPrefix UnqualifiedName | |
SubstitutionPrefix Substitution | |
TemplateParamPrefix TemplateParam | |
TemplateArgsPrefix [TemplateArg] |
Instances
Data Prefix Source # | |
Defined in ABI.Itanium.Types gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Prefix -> c Prefix # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Prefix # toConstr :: Prefix -> Constr # dataTypeOf :: Prefix -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Prefix) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Prefix) # gmapT :: (forall b. Data b => b -> b) -> Prefix -> Prefix # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Prefix -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Prefix -> r # gmapQ :: (forall d. Data d => d -> u) -> Prefix -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Prefix -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Prefix -> m Prefix # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Prefix -> m Prefix # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Prefix -> m Prefix # | |
Show Prefix Source # | |
Eq Prefix Source # | |
Ord Prefix Source # | |
data UnqualifiedName Source #
Instances
Instances
Data CtorDtor Source # | |
Defined in ABI.Itanium.Types gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CtorDtor -> c CtorDtor # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CtorDtor # toConstr :: CtorDtor -> Constr # dataTypeOf :: CtorDtor -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CtorDtor) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CtorDtor) # gmapT :: (forall b. Data b => b -> b) -> CtorDtor -> CtorDtor # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CtorDtor -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CtorDtor -> r # gmapQ :: (forall d. Data d => d -> u) -> CtorDtor -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CtorDtor -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CtorDtor -> m CtorDtor # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CtorDtor -> m CtorDtor # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CtorDtor -> m CtorDtor # | |
Show CtorDtor Source # | |
Eq CtorDtor Source # | |
Ord CtorDtor Source # | |
Defined in ABI.Itanium.Types |
Instances
Data Operator Source # | |
Defined in ABI.Itanium.Types gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Operator -> c Operator # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Operator # toConstr :: Operator -> Constr # dataTypeOf :: Operator -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Operator) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Operator) # gmapT :: (forall b. Data b => b -> b) -> Operator -> Operator # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Operator -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Operator -> r # gmapQ :: (forall d. Data d => d -> u) -> Operator -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Operator -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Operator -> m Operator # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Operator -> m Operator # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Operator -> m Operator # | |
Show Operator Source # | |
Eq Operator Source # | |
Ord Operator Source # | |
Defined in ABI.Itanium.Types |
data Expression Source #
Instances
data CallOffset Source #
Instances
data Substitution Source #
Substitution (Maybe String) | |
SubStdNamespace | |
SubStdAllocator | |
SubBasicString | |
SubBasicStringArgs | |
SubBasicIstream | |
SubBasicOstream | |
SubBasicIostream |
Instances
Instances
Data UName Source # | |
Defined in ABI.Itanium.Types gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UName -> c UName # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UName # dataTypeOf :: UName -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UName) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UName) # gmapT :: (forall b. Data b => b -> b) -> UName -> UName # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UName -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UName -> r # gmapQ :: (forall d. Data d => d -> u) -> UName -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> UName -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UName -> m UName # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UName -> m UName # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UName -> m UName # | |
Show UName Source # | |
Eq UName Source # | |
Ord UName Source # | |
demangleName :: String -> Either String DecodedName Source #
Demangle a name into a structured representation (or an error string)
mangleName :: DecodedName -> Maybe String Source #
Re-mangle a name
cxxNameToString :: (Monad m, MonadThrow m) => DecodedName -> m String Source #
Primary interface to get the pretty version of a parsed mangled name in String form.
cxxNameToText :: (Monad m, MonadThrow m) => DecodedName -> m Text Source #
Primary interface to get the pretty version of a parsed mangled name in Text form. This is a monadic operation to support throwing an exception in that outer monad when there is a pretty-printing conversion error.
Generated parsers
rUnqualifiedPrefix :: forall tok e r. Boomerang e tok ((:-) UnqualifiedName r) ((:-) Prefix r) Source #
rSourceName :: forall tok e r. Boomerang e tok ((:-) String r) ((:-) UnqualifiedName r) Source #
rNestedName :: forall tok e r. Boomerang e tok ((:-) [CVQualifier] ((:-) [Prefix] ((:-) UnqualifiedName r))) ((:-) Name r) Source #