packages feed

demangler 1.1.0.0 → 1.2.0.0

raw patch · 5 files changed

+30/−23 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for demangler +## 1.2.0.0 -- 2023.10.29++* Updated support for local names.+ ## 1.1.0.0 -- 2023.10.23  * Added support for `ABI_Tags` on `SourceName`.@@ -16,6 +20,6 @@  * Parity with origin tests. -## 0.1.0.0 -- YYYY-mm-dd+## 0.1.0.0 -- 2023-10-15  * Initial version.
demangler.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               demangler-version:            1.1.0.0+version:            1.2.0.0 synopsis:           Demangler for C++ mangled names. description:    Provides a demangler (and mangler) for C++ names, with an intermediate
src/Demangler.hs view
@@ -25,7 +25,7 @@ where  import           Control.Applicative-import           Control.Lens ( (&), (^.), view, (.~), (||~) )+import           Control.Lens ( (&), (^.), (.~), (||~) ) import           Control.Monad import           Data.Char import           Data.Either ( isRight )@@ -203,18 +203,19 @@   local_name :: AnyNext Name-local_name i = do f <- match "Z" i >>= function_encoding-                  c <- match "E" f-                  entity f c <|> stringlit f c-  where-    entity f c = do e <- entity_name c-                    discriminated f e-                      <|> ret e (LocalName (f ^. nVal) (e ^. nVal) Nothing)-    stringlit f c = do s <- match "s" c-                       d <- optional (discriminator s)-                       ret (fromMaybe s d) $ StringLitName (f ^. nVal) (view nVal <$> d)-    discriminated f e = do d <- discriminator e-                           ret d $ LocalName (f ^. nVal) (e ^. nVal) (Just $ d ^. nVal)+local_name = match "Z"+             >=> function_encoding+             >=> match "E"+             >=> asum' [ match "s"+                         >=> rmap StringLitName+                         >=> optional' discriminator+                         >=> rmap (uncurry ($))+                       , rmap LocalName+                         >&=> name+                         >=> rmap (uncurry ($))+                         >=> optional' discriminator+                         >=> rmap (uncurry ($))+                       ]   -- | Parse any CV qualifiers; always succeeds but might return an empty array.@@ -605,11 +606,13 @@                          >=> rmap (uncurry (ArrayType . ExprBound))                        ] -function_encoding :: AnyNext FunctionScope-function_encoding = tbd "function_encoding"--entity_name :: Next a FunctionEntity-entity_name = tbd "entity_name"+function_encoding :: AnyNext Encoding+function_encoding i = do e <- encoding i+                         require $ case e ^. nVal of+                                     EncFunc {} -> True+                                     EncStaticFunc {} -> True+                                     _ -> False+                         return e  discriminator :: Next a Int discriminator = asum' [ match "_" >=> single_digit_num
src/Demangler/Structure.hs view
@@ -41,8 +41,8 @@ data Name = NameNested NestedName           | UnscopedName Bool UnqualifiedName -- Bool is "std::" prefix           | UnscopedTemplateName Name TemplateArgs-          | LocalName FunctionScope FunctionEntity (Maybe Discriminator)-          | StringLitName FunctionScope (Maybe Discriminator)+          | LocalName Encoding Name (Maybe Discriminator)+          | StringLitName Encoding (Maybe Discriminator)   deriving (Eq, Show)  data NestedName = NestedName Prefix UnqualifiedName@@ -51,7 +51,6 @@                   [CVQualifier] (Maybe RefQualifier)   deriving (Eq, Show) -type FunctionScope = Coord type FunctionEntity = Coord type Discriminator = Coord 
test/initial-test-cases.txt view
@@ -46,3 +46,4 @@ _ZN10px4_daemon15get_socket_pathB5cxx11B3fooEi _ZN17PositionSmoothing18_generateSetpointsERKN6matrix7Vector3IfEERA3_S3_bS4_fbRNS_26PositionSmoothingSetpointsE _ZN17PositionSmoothing18_generateSetpointsERKN6matrix7Vector3IfEERA_S3_bS4_fbRNS_26PositionSmoothingSetpointsE+_ZZ23airship_att_recalibratevE4amsg