cabal-version: 3.0 name: dhscanner-bitcode category: sast synopsis: Intermediate language for static code analysis description: The [intermediate language \/ intermediate representation \/ bitcode](https://en.wikipedia.org/wiki/Intermediate_representation#Intermediate_language) (IL \/ IR \/ bitcode) is a data structure able to represent code originating from /multiple/ programming languages. Its main purpose is to enable an efficient and uniform /static code analysis/, as part of the [dhscanner](https://github.com/OrenGitHub/dhscanner) framework for [CI/CD](https://en.wikipedia.org/wiki/CI/CD) container security checks. As part of that framework, it targets mostly languages used for /cloud native applications/: __Python__, __Ruby__, __Php__, __Javascript__, __Typescript__, __Java__, __C#__ and __Golang__. Typically, a collection of files are first parsed using relevant [parsers](https://github.com/OrenGitHub/dhscanner.1.parsers), then, the resulting collection of abstract syntax trees is sent to code generation, where it is translated into a collection of /callables/. A callable is a sequence of commands corresponding to either a function, a method or (in languages like python) a script. The design of commands was done with simplicity in mind. The commands resemble an abstract RISC-style assembley, motivated by keeping later-phases analyses as simple as possible. version: 1.0.9 license: GPL-3.0-only license-file: LICENSE author: OrenGitHub maintainer: Oren Ish Shalom copyright: (c) 2024 Oren Ish Shalom homepage: https://github.com/OrenGitHub/dhscanner stability: experimental build-type: Simple common ghc_options ghc-options: -Wall -O2 library import: ghc_options exposed-modules: Bitcode, Callable, Cfg, Fqn build-depends: aeson, base >=4.17 && <=4.20, containers, dhscanner-ast >= 1.1.2, hs-source-dirs: src default-language: Haskell2010 test-suite dhscanner-bitcode-test import: ghc_options type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Main.hs build-depends: base, dhscanner-ast, dhscanner-bitcode, containers, QuickCheck, random default-language: Haskell2010