packages feed

dhscanner-kbgen 1.0.1 → 1.0.2

raw patch · 2 files changed

+34/−42 lines, 2 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Kbgen: ArgCallCtor :: ArgForCall -> Fact
- Kbgen: instance Kbgen.Prologify Kbgen.Fact
+ Kbgen: ArgIndex :: Word -> ArgIndex
+ Kbgen: ConstStr :: Location -> ConstStr
+ Kbgen: data ArgIndex
+ Kbgen: data ConstStr
- Kbgen: prologify :: Prologify a => a -> String
+ Kbgen: prologify :: Fact -> String

Files

dhscanner-kbgen.cabal view
@@ -33,7 +33,7 @@         * explain in plain English your query's purpose
         * et voilà !
     
-version:            1.0.1
+version:            1.0.2
 license:            GPL-3.0-only
 license-file:       LICENSE
 author:             OrenGitHub
@@ -43,13 +43,14 @@ stability:          experimental
 build-type:         Simple
 
-common warnings
-    ghc-options: -Wall
+common ghc_options
 
+    ghc-options: -Wall -O2
+
 library
 
     import:
-        warnings
+        ghc_options
 
     exposed-modules:
         Kbgen
src/Kbgen.hs view
@@ -73,8 +73,10 @@     Keyword(..),
     Resolved(..),
     Arg(..),
+    ArgIndex(..),
     ResolvedType(..),
     CallResolved(..),
+    ConstStr(..),
     Fact(..)
 )
 
@@ -338,7 +340,6 @@     Class -- ^
     deriving ( Show, Generic, ToJSON, FromJSON )
 
-
 -- |
 --
 -- Usage:
@@ -411,19 +412,8 @@ 
 data Arg = Arg Location deriving ( Show, Generic, ToJSON, FromJSON )
 data Call = Call Location deriving ( Show, Generic, ToJSON, FromJSON )
-
--- | Simply a wrapper around [Location](https://hackage-.haskell.org/package/dhscanner-ast-1.1.0/docs/Location.html)
--- 
-data Param = Param
-    Location -- ^
-    deriving ( Show, Generic, ToJSON, FromJSON )
-
--- |
--- 
--- Class is the code location defined in [Ast.StmtClassContent](https://hackage-content.haskell.org/package/dhscanner-ast-1.1.0/docs/Ast.html#t:StmtClassContent)
-data Class = Class
-    Location -- ^
-    deriving ( Show, Generic, ToJSON, FromJSON )
+data Param = Param Location deriving ( Show, Generic, ToJSON, FromJSON )
+data Class = Class Location deriving ( Show, Generic, ToJSON, FromJSON )
 
 data CallResolved = CallResolved
     Call -- ^
@@ -455,8 +445,7 @@ -- * often, a single bitcode instruction will yield /more/ than one fact
 --
 data Fact
-   = ArgCallCtor ArgForCall
-   | ParamNameCtor ParamName
+   = ParamNameCtor ParamName
    | ClassNameCtor ClassName
    | ArgForCallCtor ArgForCall
    | ArgiForCallCtor ArgiForCall
@@ -473,29 +462,31 @@    | CallableAnnotationCtor CallableAnnotation
    deriving ( Show, Generic, ToJSON, FromJSON )
 
-class Prologify a where prologify :: a -> String
-
-instance Prologify Fact where prologify = prologifyFact
-
 -- |
--- translate a code fact into a prolog fact
--- the translation "strips" type info
-prologifyFact :: Fact -> String
-prologifyFact (ParamNameCtor content) = prologify_ParamName content
-prologifyFact (ClassNameCtor content) = prologify_ClassName content
-prologifyFact (ArgForCallCtor content) = prologifyArgForCall content
-prologifyFact (ArgiForCallCtor content) = prologifyArgiForCall content
-prologifyFact (ConstStringCtor content) = prologify_ConstString content
-prologifyFact (CallResolvedCtor content) = prologify_CallResolved content
-prologifyFact (ConstBoolTrueCtor content) = prologify_ConstBoolTrue content
-prologifyFact (MethodOfClassCtor content) = prologify_MethodOfClass content
-prologifyFact (ClassNamedSuperCtor content) = prologifyClassNamedSuper content
-prologifyFact (ClassAnnotationCtor content) = prologify_ClassAnnotation content
-prologifyFact (ParamiOfCallableCtor content) = prologify_ParamiOfCallable content
-prologifyFact (ParamResolvedTypeCtor content) = prologify_ParamResolvedType content
-prologifyFact (KeywordArgForCallCtor content) = prologify_KeywordArgForCall content
-prologifyFact (ClassResolvedSuperCtor content) = prologifyClassResolvedSuper content
-prologifyFact (CallableAnnotationCtor content) = prologify_CallableAnnotation content
+-- Translate a code fact into a prolog fact
+--
+-- 'ParamName'
+--
+-- @
+-- kb_param_has_name( Param, Name ).
+-- @
+--
+prologify :: Fact -> String
+prologify (ParamNameCtor content) = prologify_ParamName content
+prologify (ClassNameCtor content) = prologify_ClassName content
+prologify (ArgForCallCtor content) = prologifyArgForCall content
+prologify (ArgiForCallCtor content) = prologifyArgiForCall content
+prologify (ConstStringCtor content) = prologify_ConstString content
+prologify (CallResolvedCtor content) = prologify_CallResolved content
+prologify (ConstBoolTrueCtor content) = prologify_ConstBoolTrue content
+prologify (MethodOfClassCtor content) = prologify_MethodOfClass content
+prologify (ClassNamedSuperCtor content) = prologifyClassNamedSuper content
+prologify (ClassAnnotationCtor content) = prologify_ClassAnnotation content
+prologify (ParamiOfCallableCtor content) = prologify_ParamiOfCallable content
+prologify (ParamResolvedTypeCtor content) = prologify_ParamResolvedType content
+prologify (KeywordArgForCallCtor content) = prologify_KeywordArgForCall content
+prologify (ClassResolvedSuperCtor content) = prologifyClassResolvedSuper content
+prologify (CallableAnnotationCtor content) = prologify_CallableAnnotation content
 
 prologify_ParamResolvedType' :: Location -> String -> String
 prologify_ParamResolvedType' l fqn = printf "kb_param_has_type( %s, \'%s\' )." (locationify l) fqn