cabal-version: 3.0 name: dhscanner-kbgen category: parsing synopsis: knowledge base predicates for static code analysis description: * The [knowledge base](https://en.wikipedia.org/wiki/Knowledge_representation_and_reasoning) ( kb ) aims to be a data structure able to: * represent /multiple/ facts about the source code repo * from /various/ programming languages * each fact can be translated to a [Prolog](https://en.wikipedia.org/wiki/Prolog) fact * facts can be combined to create [predicates](https://en.wikipedia.org/wiki/Predicate_%28logic%29) * predictaes can be combined to formulate /security queries/ * [Prolog](https://en.wikipedia.org/wiki/Prolog) facts describe relations between: * code locations * const strings * const integers * [Prolog](https://en.wikipedia.org/wiki/Prolog) facts can be /combined/: * create /expressive/ queries from /simple/ facts * [conjunction](https://en.wikipedia.org/wiki/Logical_conjunction) * [disjunction](https://en.wikipedia.org/wiki/Logical_disjunction) * [negation](https://en.wikipedia.org/wiki/Negation) * [Prolog](https://en.wikipedia.org/wiki/Prolog) queries are /easy/ to write: * you /don't/ have to be a Prolog expert * copy-paste the basic facts to /any/ [LLM](https://en.wikipedia.org/wiki/Large_language_model) * explain in plain English your query's purpose * et voilĂ  ! version: 1.0.0 license: GPL-3.0-only license-file: LICENSE author: OrenGitHub maintainer: Oren Ish Shalom copyright: (c) 2025 Oren Ish Shalom homepage: https://github.com/OrenGitHub/dhscanner stability: experimental build-type: Simple common warnings ghc-options: -Wall library import: warnings exposed-modules: Kbgen build-depends: aeson < 2.3, base >= 4.18 && < 4.19, containers < 0.7, dhscanner-ast >= 1.1.0, dhscanner-bitcode >= 1.0.7 hs-source-dirs: src default-language: Haskell2010