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 +5/−4
- src/Kbgen.hs +29/−38
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