Îõ³h&'Ã#‡¤      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£ Safe-Inferred6# itanium-abinew itanium-abinew[] itanium-abidelete itanium-abidelete[] itanium-abi + (unary) itanium-abi(unary) itanium-abi & (unary) itanium-abi(unary)  itanium-abi~  itanium-abi+  itanium-abi  itanium-abi  itanium-abi/ itanium-abi% itanium-abi& itanium-abi| itanium-abi^ itanium-abi=Z itanium-abiDeclTypeExpression  expression | DeclTypeOther expressionw itanium-abiÇint[5], normal array parameters. The dimension is elided for C99 VLAsx itanium-abiøint[I + 1], expresions due to templates. The dimension is not optional here; if it was it would just be an ArrayTypeNy itanium-abiClass type, member type™ itanium-abi2Const 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.§  !"#$%&'()*+,-./0123456;789:<=>?@¤¥¦§¨©ª«¬­®¯°ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‹‰ŠŒŽ‘’“”•–—˜™ Safe-Inferredã1± itanium-abi¤The EmptyFunctionType exception is thrown when there is no argument specification for the function. This is either a bad mangled name or an internal logic error.² itanium-abi¼The BarePtrToMember exception is thrown when there is not enough information to determine what the pointer should point to. This is either a bad mangled name or an internal logic error.³ itanium-abiÛThe NonPointerFunctionType exception is thrown when attempting to pretty-print a function type that is not a pointer. First-class function types are not supported at this time. This is a logic error in the library?´ itanium-abi±The UnqualCtorDtor exception is thrown when a attempting to generate a Constructor or Destructor name for an Unqualified name. Although this is allowed by the specification, in this implementation it represents a logic issue since there is no known object to declare the Constructor or Destructor for.µ itanium-abiŽThe CtorDtorFallthru exception is thrown when a Constructor or Destructor is declared without declaring the object type that it is the Constructor or Destructor for. This indicates either an invalid mangled name or else an internal logic error in prefix evaluation.¶ itanium-abiéThe MissingTemplateArgument exception is thrown when the mangled name requests a template argument that cannot be found. This indicates either an invalid mangled name or else an internal logic error in this Pretty implementation.· itanium-abiàThe MissingSubstitution exception is thrown when the mangled name requests a substitution that cannot be found. This indicates either an invalid mangled name or else an internal logic error in this Pretty implementation.¸ itanium-abi‚The Pretty type is used as the main State object for performing conversion to pretty output with the Store as the internal state.¹ itanium-abižThe Store maintains the substitution table used for emitting a demangled names. For compression, demangling allows the use of "substitutions" to refer to previously emitted portions of the name. Most portions of the name that are emitted are recorded (with compositional buildup: foo::bar will record both foo and foo::bar³). The only exceptions to recording are function names and builtin types. As a name is demangled, each portion will be added to this table for use in subsequent substitutions.º itanium-abiÒRecords a substitution component in the current table, skipping any duplications.±For convenience, it returns the same item it recorded to allow this to be the last statement for a Pretty Builder operation that should record and return the generated output.» itanium-abi†Called for special cases where a substitution should be recorded, even if it is a duplicate of another already-recorded substitution.¼ itanium-abi"This is a convenience wrapper for ºŸ that will return a void value; this can be used where the results of the recording are not needed and the compiler would warn about an unused return value.½ itanium-abiÆFunction names are not recorded, but their prefixes are. For example:òInput | Records -------------------------------|-------------------------------- foo(int)Ê | (nothing) |  bar::foo(int) | bar* | bar::cow moo::boo::foo(int) | bar bar::cow bar::cow moo& | bar::cow moo::booâTo support this, the various parts of the function call are recorded as normal (using recursive, shared pretty printing) and then this function is called to drop the last element recorded, which is the actual function name.¾ itanium-abiÀLookup a recorded substitution and return it. A lookup failure means either a malformed mangled name (unlikely) or a logic error below that did not properly record a substitution component.¿ itanium-abi%Reserves a template argument locationÀ itanium-abiÿRecords a template argument in the current table, skipping any duplications. Returns the input as a convenience pass-through.Á itanium-abiÅLookup a recorded template argument and return it. A lookup failure means either a malformed mangled name (unlikely) or a logic error below that did not properly record a substitution component.š itanium-abiÙ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.› itanium-abiÕPrimary interface to get the pretty version of a parsed mangled name in String form. itanium-abiÏShow a Function and its arguments. Function representation has several rules: 9template functions have return types with some exceptionsêfunction types which are not part of a function name mangling have return types with some exceptions4non-template function names do not have return typesæThe exceptions are that constructors, destructors, and conversion operators do not have return types.à itanium-abiÛThese are outer namespace/class name qualifiers, so convert them to strings followed by ::±²³´µ·š› Safe-InferredÙÚ!ñ¢ itanium-abiÆDemangle a name into a structured representation (or an error string)£ itanium-abiRe-mangle a nameÄ itanium-abiEquivalent to the  type# production in the Itanium ABI spec2FIXME: Add support for unnamed types and decltypes unnamed-type-name ::= Ut [  nonnegativenumber ] _  decltype ::= Dt  expressionÖ E # decltype of an id-expression or class member access (C++0x) ::= DT  expression' E # decltype of an expression (C++0x)Å itanium-abiÑReads the sequence ID of a Substitution parameter or Template Argument parameterÆ itanium-abi9Parse a length-prefixed string (does not handle newlines)Ç itanium-abi5In the Itanium ABI, negative numbers are prefixed by nÖ instead of a negative sign. This is an alternate parser to be used instead of the È" parser that comes with boomerang.¤  !"#$%&'()*+,-./0123456;789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‹‰ŠŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤‘’“”•–—˜™ˆ‹‰ŠRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~JKLMNOABCDEF=>?@6;789:<  !"#$%&'()*+,-./012345PQŒŽ€‚ƒ„…†‡GHI¢£›š žŸ¡œÉ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKKLMNOPQRSSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊË'itanium-abi-0.1.2-IfQw8wRtOLAFifPBngJjr ABI.ItaniumABI.Itanium.TypesABI.Itanium.PrettyOperatorOpNew OpNewArrayOpDelete OpDeleteArrayOpUPlusOpUMinus OpAddressOfOpDerefOpBitNotOpPlusOpMinusOpMulOpDivOpModOpBitAndOpBitOrOpBitXorOpAssign OpPlusAssign OpMinusAssign OpMulAssign OpDivAssign OpModAssign OpAndAssign OpOrAssign OpXorAssignOpShlOpShr OpShlAssign OpShrAssignOpEquals OpNotEqualsOpLtOpGtOpLteOpGteOpNotOpAndOpOr OpPlusPlus OpMinusMinusOpComma OpArrowStarOpArrowOpCallOpIndex OpQuestion OpSizeofType OpSizeofExpr OpAlignofType OpAlignofExprOpCastOpVendorCtorDtorC1C2C3D0D1D2UnqualifiedName OperatorName CtorDtorName SourceNamePrefixDataMemberPrefixUnqualifiedPrefixSubstitutionPrefixTemplateParamPrefixTemplateArgsPrefixUNameUStdNameName NestedNameNestedTemplateName UnscopedNameUnscopedTemplateNameUnscopedTemplateSubstitution ExpressionCXXType QualifiedType PointerToTypeReferenceToTypeRValueReferenceToTypeComplexPairType ImaginaryType ParameterPackVendorTypeQualifierVoidType Wchar_tTypeBoolTypeCharTypeSignedCharTypeUnsignedCharType ShortTypeUnsignedShortTypeIntTypeUnsignedIntTypeLongTypeUnsignedLongType LongLongTypeUnsignedLongLongType Int128TypeUnsignedInt128Type FloatType DoubleTypeLongDoubleType Float128Type EllipsisType Char32Type Char16TypeAutoType NullPtrTypeVendorBuiltinType FunctionTypeExternCFunctionType ArrayTypeN ArrayTypeEPtrToMemberType ClassEnumTypeSubstitutionTypeTemplateParamTypeTemplateTemplateParamType%TemplateTemplateParamSubstitutionType SubstitutionSubStdNamespaceSubStdAllocatorSubBasicStringSubBasicStringArgsSubBasicIstreamSubBasicOstreamSubBasicIostream CVQualifierRestrictVolatileConst CallOffset VirtualOffsetNonVirtualOffset DecodedNameFunctionData VirtualTable VTTStructureTypeInfo TypeInfoName GuardVariable OverrideThunkOverrideThunkCovariantConstStructData cxxNameToTextcxxNameToString rNestedName rUnscopedNamerConst rSourceNamerUnqualifiedPrefixrUName demangleName mangleName ExprPrimary ExprIntLit ExprFloatLit ExprStringLitExprNullPtrLitExprNullPointerTemplateArgExprComplexFloatLitExprExternName TemplateParam TemplateArgTypeTemplateArgExprPrimaryTemplateArgEmptyFunctionTypeBarePtrToMemberNonPointerFunctionTypeUnqualCtorDtorCtorDtorFallthruMissingTemplateArgumentMissingSubstitutionPrettyStorerecordSubstitutionrecordSubstitutionAlwaysrecordSubstitution'dropLastSubstitutiongetSubstitutionreserveTemplateArgumentrecordTemplateArgumentgetTemplateArgument showFunction showPrefixcxxTypeseq_id sourceNameabiInt(boomerang-1.4.8.1-IajNuiacmAg9306U1DFzwKText.Boomerang.Stringint