dhscanner-bitcode-0.1.0.3: Intermediate language for static code analysis
Safe HaskellSafe-Inferred
LanguageHaskell2010

Bitcode

Description

  • The intermediate language (IL) / intermediate representation (IR) / bitcode are all synonyms for:

    • a data structure able to represent code originating from multiple programming languages.
  • Its main purpose is to serve as the:

    • second step for static code analysis
    • part of the dhscanner framework for CI/CD container security checks 🔒 and PII leaks detection 🪪
  • As part of the dhscanner framework:

    • targets mostly languages used for cloud native applications ☁️
    • Python, Ruby 💎, Php, Javascript, Typescript, Java ☕️, C# and Golang.
  • Typical flow:

    • the Asts (collection of all Ast objects from some code base) are sent for code generation

      • received through REST API as a JSON http request
      • Callable entities are identified
      • each Callable is associated with its control flow graph (Cfg)
    • the collection of all Callables is returned
  • Non Haskell parogrammers note:

    • Each Callable object is immutable ( like everything else in Haskell ... )
Synopsis

Documentation

data Instruction Source #

  • All instructions have an associated location
  • That is also true for instrumented instructions (like Nop and Assume)

Instances

Instances details
FromJSON Instruction Source # 
Instance details

Defined in Bitcode

ToJSON Instruction Source # 
Instance details

Defined in Bitcode

Generic Instruction Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep Instruction :: Type -> Type

Methods

from :: Instruction -> Rep Instruction x

to :: Rep Instruction x -> Instruction

Show Instruction Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> Instruction -> ShowS

show :: Instruction -> String

showList :: [Instruction] -> ShowS

Eq Instruction Source # 
Instance details

Defined in Bitcode

Methods

(==) :: Instruction -> Instruction -> Bool

(/=) :: Instruction -> Instruction -> Bool

Ord Instruction Source # 
Instance details

Defined in Bitcode

type Rep Instruction Source # 
Instance details

Defined in Bitcode

type Rep Instruction = D1 ('MetaData "Instruction" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "Instruction" 'PrefixI 'True) (S1 ('MetaSel ('Just "location") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Location) :*: S1 ('MetaSel ('Just "instructionContent") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 InstructionContent)))

data InstructionContent Source #

A minimal instruction set for translating cloud native programming languages and enabling easier static analysis

Instances

Instances details
FromJSON InstructionContent Source # 
Instance details

Defined in Bitcode

ToJSON InstructionContent Source # 
Instance details

Defined in Bitcode

Generic InstructionContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep InstructionContent :: Type -> Type

Show InstructionContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> InstructionContent -> ShowS

show :: InstructionContent -> String

showList :: [InstructionContent] -> ShowS

Eq InstructionContent Source # 
Instance details

Defined in Bitcode

Ord InstructionContent Source # 
Instance details

Defined in Bitcode

type Rep InstructionContent Source # 
Instance details

Defined in Bitcode

type Rep InstructionContent = D1 ('MetaData "InstructionContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (((C1 ('MetaCons "Nop" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Call" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CallContent)) :+: C1 ('MetaCons "Unop" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnopContent)))) :+: ((C1 ('MetaCons "Binop" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BinopContent)) :+: C1 ('MetaCons "Assume" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AssumeContent))) :+: (C1 ('MetaCons "Return" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ReturnContent)) :+: C1 ('MetaCons "Assign" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AssignContent))))) :+: (((C1 ('MetaCons "LoadImmStr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 StrContent)) :+: C1 ('MetaCons "LoadImmInt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IntContent))) :+: (C1 ('MetaCons "LoadImmBool" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BoolContent)) :+: C1 ('MetaCons "ParamDecl" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParamDeclContent)))) :+: ((C1 ('MetaCons "FieldRead" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FieldReadContent)) :+: C1 ('MetaCons "FieldWrite" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FieldWriteContent))) :+: (C1 ('MetaCons "SubscriptRead" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubscriptReadContent)) :+: C1 ('MetaCons "SubscriptWrite" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SubscriptWriteContent))))))

data TmpVariable Source #

Instances

Instances details
FromJSON TmpVariable Source # 
Instance details

Defined in Bitcode

ToJSON TmpVariable Source # 
Instance details

Defined in Bitcode

Generic TmpVariable Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep TmpVariable :: Type -> Type

Methods

from :: TmpVariable -> Rep TmpVariable x

to :: Rep TmpVariable x -> TmpVariable

Show TmpVariable Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> TmpVariable -> ShowS

show :: TmpVariable -> String

showList :: [TmpVariable] -> ShowS

Eq TmpVariable Source # 
Instance details

Defined in Bitcode

Methods

(==) :: TmpVariable -> TmpVariable -> Bool

(/=) :: TmpVariable -> TmpVariable -> Bool

Ord TmpVariable Source # 
Instance details

Defined in Bitcode

type Rep TmpVariable Source # 
Instance details

Defined in Bitcode

type Rep TmpVariable = D1 ('MetaData "TmpVariable" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "TmpVariable" 'PrefixI 'True) (S1 ('MetaSel ('Just "tmpVariableFqn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Fqn) :*: S1 ('MetaSel ('Just "tmpVariableLocation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Location)))

data SrcVariable Source #

Instances

Instances details
FromJSON SrcVariable Source # 
Instance details

Defined in Bitcode

ToJSON SrcVariable Source # 
Instance details

Defined in Bitcode

Generic SrcVariable Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep SrcVariable :: Type -> Type

Methods

from :: SrcVariable -> Rep SrcVariable x

to :: Rep SrcVariable x -> SrcVariable

Show SrcVariable Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> SrcVariable -> ShowS

show :: SrcVariable -> String

showList :: [SrcVariable] -> ShowS

Eq SrcVariable Source # 
Instance details

Defined in Bitcode

Methods

(==) :: SrcVariable -> SrcVariable -> Bool

(/=) :: SrcVariable -> SrcVariable -> Bool

Ord SrcVariable Source # 
Instance details

Defined in Bitcode

type Rep SrcVariable Source # 
Instance details

Defined in Bitcode

type Rep SrcVariable = D1 ('MetaData "SrcVariable" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "SrcVariable" 'PrefixI 'True) (S1 ('MetaSel ('Just "srcVariableFqn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Fqn) :*: S1 ('MetaSel ('Just "srcVariableToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 VarName)))

data ArgContent Source #

Instances

Instances details
FromJSON ArgContent Source # 
Instance details

Defined in Bitcode

ToJSON ArgContent Source # 
Instance details

Defined in Bitcode

Generic ArgContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep ArgContent :: Type -> Type

Methods

from :: ArgContent -> Rep ArgContent x

to :: Rep ArgContent x -> ArgContent

Show ArgContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> ArgContent -> ShowS

show :: ArgContent -> String

showList :: [ArgContent] -> ShowS

Eq ArgContent Source # 
Instance details

Defined in Bitcode

Methods

(==) :: ArgContent -> ArgContent -> Bool

(/=) :: ArgContent -> ArgContent -> Bool

Ord ArgContent Source # 
Instance details

Defined in Bitcode

type Rep ArgContent Source # 
Instance details

Defined in Bitcode

type Rep ArgContent = D1 ('MetaData "ArgContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "ArgContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "argVariableFqn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Fqn) :*: (S1 ('MetaSel ('Just "argVariableSerialIdx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just "argVariableMyAwesomeCallContext") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Location))))

data ParamVariable Source #

Instances

Instances details
FromJSON ParamVariable Source # 
Instance details

Defined in Bitcode

ToJSON ParamVariable Source # 
Instance details

Defined in Bitcode

Generic ParamVariable Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep ParamVariable :: Type -> Type

Show ParamVariable Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> ParamVariable -> ShowS

show :: ParamVariable -> String

showList :: [ParamVariable] -> ShowS

Eq ParamVariable Source # 
Instance details

Defined in Bitcode

Ord ParamVariable Source # 
Instance details

Defined in Bitcode

type Rep ParamVariable Source # 
Instance details

Defined in Bitcode

type Rep ParamVariable = D1 ('MetaData "ParamVariable" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "ParamVariable" 'PrefixI 'True) (S1 ('MetaSel ('Just "paramVariableFqn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Fqn) :*: (S1 ('MetaSel ('Just "paramVariableSerialIdx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just "paramVariableToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParamName))))

data Variable Source #

Instances

Instances details
FromJSON Variable Source # 
Instance details

Defined in Bitcode

ToJSON Variable Source # 
Instance details

Defined in Bitcode

Generic Variable Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep Variable :: Type -> Type

Methods

from :: Variable -> Rep Variable x

to :: Rep Variable x -> Variable

Show Variable Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> Variable -> ShowS

show :: Variable -> String

showList :: [Variable] -> ShowS

Eq Variable Source # 
Instance details

Defined in Bitcode

Methods

(==) :: Variable -> Variable -> Bool

(/=) :: Variable -> Variable -> Bool

Ord Variable Source # 
Instance details

Defined in Bitcode

Methods

compare :: Variable -> Variable -> Ordering

(<) :: Variable -> Variable -> Bool

(<=) :: Variable -> Variable -> Bool

(>) :: Variable -> Variable -> Bool

(>=) :: Variable -> Variable -> Bool

max :: Variable -> Variable -> Variable

min :: Variable -> Variable -> Variable

type Rep Variable Source # 
Instance details

Defined in Bitcode

type Rep Variable = D1 ('MetaData "Variable" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) ((C1 ('MetaCons "TmpVariableCtor" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TmpVariable)) :+: C1 ('MetaCons "SrcVariableCtor" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SrcVariable))) :+: (C1 ('MetaCons "ParamVariableCtor" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParamVariable)) :+: C1 ('MetaCons "Arg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ArgContent))))

data Variables Source #

Can not be serialized to JSON

Constructors

Variables 

Fields

Instances

Instances details
Show Variables Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> Variables -> ShowS

show :: Variables -> String

showList :: [Variables] -> ShowS

Eq Variables Source # 
Instance details

Defined in Bitcode

Methods

(==) :: Variables -> Variables -> Bool

(/=) :: Variables -> Variables -> Bool

Ord Variables Source # 
Instance details

Defined in Bitcode

Methods

compare :: Variables -> Variables -> Ordering

(<) :: Variables -> Variables -> Bool

(<=) :: Variables -> Variables -> Bool

(>) :: Variables -> Variables -> Bool

(>=) :: Variables -> Variables -> Bool

max :: Variables -> Variables -> Variables

min :: Variables -> Variables -> Variables

data SrcVariables Source #

Constructors

SrcVariables 

Instances

Instances details
Show SrcVariables Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> SrcVariables -> ShowS

show :: SrcVariables -> String

showList :: [SrcVariables] -> ShowS

Eq SrcVariables Source # 
Instance details

Defined in Bitcode

Methods

(==) :: SrcVariables -> SrcVariables -> Bool

(/=) :: SrcVariables -> SrcVariables -> Bool

Ord SrcVariables Source # 
Instance details

Defined in Bitcode

createEmptyCollectionOfGlobalVariables :: SrcVariables Source #

Creating an empty collection of global variables

data TmpVariables Source #

Can not be serialized to JSON

Constructors

TmpVariables 

Instances

Instances details
Show TmpVariables Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> TmpVariables -> ShowS

show :: TmpVariables -> String

showList :: [TmpVariables] -> ShowS

Eq TmpVariables Source # 
Instance details

Defined in Bitcode

Methods

(==) :: TmpVariables -> TmpVariables -> Bool

(/=) :: TmpVariables -> TmpVariables -> Bool

Ord TmpVariables Source # 
Instance details

Defined in Bitcode

data CallContent Source #

Instances

Instances details
FromJSON CallContent Source # 
Instance details

Defined in Bitcode

ToJSON CallContent Source # 
Instance details

Defined in Bitcode

Generic CallContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep CallContent :: Type -> Type

Methods

from :: CallContent -> Rep CallContent x

to :: Rep CallContent x -> CallContent

Show CallContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> CallContent -> ShowS

show :: CallContent -> String

showList :: [CallContent] -> ShowS

Eq CallContent Source # 
Instance details

Defined in Bitcode

Methods

(==) :: CallContent -> CallContent -> Bool

(/=) :: CallContent -> CallContent -> Bool

Ord CallContent Source # 
Instance details

Defined in Bitcode

type Rep CallContent Source # 
Instance details

Defined in Bitcode

type Rep CallContent = D1 ('MetaData "CallContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "CallContent" 'PrefixI 'True) ((S1 ('MetaSel ('Just "callOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: S1 ('MetaSel ('Just "callee") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable)) :*: (S1 ('MetaSel ('Just "args") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Variable]) :*: S1 ('MetaSel ('Just "callLocation") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Location))))

data BinopContent Source #

Instances

Instances details
FromJSON BinopContent Source # 
Instance details

Defined in Bitcode

ToJSON BinopContent Source # 
Instance details

Defined in Bitcode

Generic BinopContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep BinopContent :: Type -> Type

Show BinopContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> BinopContent -> ShowS

show :: BinopContent -> String

showList :: [BinopContent] -> ShowS

Eq BinopContent Source # 
Instance details

Defined in Bitcode

Methods

(==) :: BinopContent -> BinopContent -> Bool

(/=) :: BinopContent -> BinopContent -> Bool

Ord BinopContent Source # 
Instance details

Defined in Bitcode

type Rep BinopContent Source # 
Instance details

Defined in Bitcode

type Rep BinopContent = D1 ('MetaData "BinopContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "BinopContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "binopOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: (S1 ('MetaSel ('Just "binopLhs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: S1 ('MetaSel ('Just "binopRhs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable))))

data UnopContent Source #

Constructors

UnopContent 

Instances

Instances details
FromJSON UnopContent Source # 
Instance details

Defined in Bitcode

ToJSON UnopContent Source # 
Instance details

Defined in Bitcode

Generic UnopContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep UnopContent :: Type -> Type

Methods

from :: UnopContent -> Rep UnopContent x

to :: Rep UnopContent x -> UnopContent

Show UnopContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> UnopContent -> ShowS

show :: UnopContent -> String

showList :: [UnopContent] -> ShowS

Eq UnopContent Source # 
Instance details

Defined in Bitcode

Methods

(==) :: UnopContent -> UnopContent -> Bool

(/=) :: UnopContent -> UnopContent -> Bool

Ord UnopContent Source # 
Instance details

Defined in Bitcode

type Rep UnopContent Source # 
Instance details

Defined in Bitcode

type Rep UnopContent = D1 ('MetaData "UnopContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "UnopContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "unopOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: S1 ('MetaSel ('Just "unopLhs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable)))

data AssumeContent Source #

Constructors

AssumeContent 

Instances

Instances details
FromJSON AssumeContent Source # 
Instance details

Defined in Bitcode

ToJSON AssumeContent Source # 
Instance details

Defined in Bitcode

Generic AssumeContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep AssumeContent :: Type -> Type

Show AssumeContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> AssumeContent -> ShowS

show :: AssumeContent -> String

showList :: [AssumeContent] -> ShowS

Eq AssumeContent Source # 
Instance details

Defined in Bitcode

Ord AssumeContent Source # 
Instance details

Defined in Bitcode

type Rep AssumeContent Source # 
Instance details

Defined in Bitcode

type Rep AssumeContent = D1 ('MetaData "AssumeContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "AssumeContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "assumeVariable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: S1 ('MetaSel ('Just "assumedValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))

data ReturnContent Source #

Constructors

ReturnContent 

Fields

Instances

Instances details
FromJSON ReturnContent Source # 
Instance details

Defined in Bitcode

ToJSON ReturnContent Source # 
Instance details

Defined in Bitcode

Generic ReturnContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep ReturnContent :: Type -> Type

Show ReturnContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> ReturnContent -> ShowS

show :: ReturnContent -> String

showList :: [ReturnContent] -> ShowS

Eq ReturnContent Source # 
Instance details

Defined in Bitcode

Ord ReturnContent Source # 
Instance details

Defined in Bitcode

type Rep ReturnContent Source # 
Instance details

Defined in Bitcode

type Rep ReturnContent = D1 ('MetaData "ReturnContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "ReturnContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "returnValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Variable))))

data AssignContent Source #

Instances

Instances details
FromJSON AssignContent Source # 
Instance details

Defined in Bitcode

ToJSON AssignContent Source # 
Instance details

Defined in Bitcode

Generic AssignContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep AssignContent :: Type -> Type

Show AssignContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> AssignContent -> ShowS

show :: AssignContent -> String

showList :: [AssignContent] -> ShowS

Eq AssignContent Source # 
Instance details

Defined in Bitcode

Ord AssignContent Source # 
Instance details

Defined in Bitcode

type Rep AssignContent Source # 
Instance details

Defined in Bitcode

type Rep AssignContent = D1 ('MetaData "AssignContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "AssignContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "assignOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: S1 ('MetaSel ('Just "assignInput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable)))

data IntContent Source #

Instances

Instances details
FromJSON IntContent Source # 
Instance details

Defined in Bitcode

ToJSON IntContent Source # 
Instance details

Defined in Bitcode

Generic IntContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep IntContent :: Type -> Type

Methods

from :: IntContent -> Rep IntContent x

to :: Rep IntContent x -> IntContent

Show IntContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> IntContent -> ShowS

show :: IntContent -> String

showList :: [IntContent] -> ShowS

Eq IntContent Source # 
Instance details

Defined in Bitcode

Methods

(==) :: IntContent -> IntContent -> Bool

(/=) :: IntContent -> IntContent -> Bool

Ord IntContent Source # 
Instance details

Defined in Bitcode

type Rep IntContent Source # 
Instance details

Defined in Bitcode

type Rep IntContent = D1 ('MetaData "IntContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "IntContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "loadImmIntOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TmpVariable) :*: S1 ('MetaSel ('Just "loadImmIntValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ConstInt)))

data StrContent Source #

Instances

Instances details
FromJSON StrContent Source # 
Instance details

Defined in Bitcode

ToJSON StrContent Source # 
Instance details

Defined in Bitcode

Generic StrContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep StrContent :: Type -> Type

Methods

from :: StrContent -> Rep StrContent x

to :: Rep StrContent x -> StrContent

Show StrContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> StrContent -> ShowS

show :: StrContent -> String

showList :: [StrContent] -> ShowS

Eq StrContent Source # 
Instance details

Defined in Bitcode

Methods

(==) :: StrContent -> StrContent -> Bool

(/=) :: StrContent -> StrContent -> Bool

Ord StrContent Source # 
Instance details

Defined in Bitcode

type Rep StrContent Source # 
Instance details

Defined in Bitcode

type Rep StrContent = D1 ('MetaData "StrContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "StrContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "loadImmStrOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TmpVariable) :*: S1 ('MetaSel ('Just "loadImmStrValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ConstStr)))

data BoolContent Source #

Instances

Instances details
FromJSON BoolContent Source # 
Instance details

Defined in Bitcode

ToJSON BoolContent Source # 
Instance details

Defined in Bitcode

Generic BoolContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep BoolContent :: Type -> Type

Methods

from :: BoolContent -> Rep BoolContent x

to :: Rep BoolContent x -> BoolContent

Show BoolContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> BoolContent -> ShowS

show :: BoolContent -> String

showList :: [BoolContent] -> ShowS

Eq BoolContent Source # 
Instance details

Defined in Bitcode

Methods

(==) :: BoolContent -> BoolContent -> Bool

(/=) :: BoolContent -> BoolContent -> Bool

Ord BoolContent Source # 
Instance details

Defined in Bitcode

type Rep BoolContent Source # 
Instance details

Defined in Bitcode

type Rep BoolContent = D1 ('MetaData "BoolContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "BoolContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "loadImmBoolOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TmpVariable) :*: S1 ('MetaSel ('Just "loadImmBoolValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ConstBool)))

data FieldReadContent Source #

Instances

Instances details
FromJSON FieldReadContent Source # 
Instance details

Defined in Bitcode

ToJSON FieldReadContent Source # 
Instance details

Defined in Bitcode

Generic FieldReadContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep FieldReadContent :: Type -> Type

Show FieldReadContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> FieldReadContent -> ShowS

show :: FieldReadContent -> String

showList :: [FieldReadContent] -> ShowS

Eq FieldReadContent Source # 
Instance details

Defined in Bitcode

Ord FieldReadContent Source # 
Instance details

Defined in Bitcode

type Rep FieldReadContent Source # 
Instance details

Defined in Bitcode

type Rep FieldReadContent = D1 ('MetaData "FieldReadContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "FieldReadContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "fieldReadOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: (S1 ('MetaSel ('Just "fieldReadInput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: S1 ('MetaSel ('Just "fieldReadName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FieldName))))

data FieldWriteContent Source #

Instances

Instances details
FromJSON FieldWriteContent Source # 
Instance details

Defined in Bitcode

ToJSON FieldWriteContent Source # 
Instance details

Defined in Bitcode

Generic FieldWriteContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep FieldWriteContent :: Type -> Type

Show FieldWriteContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> FieldWriteContent -> ShowS

show :: FieldWriteContent -> String

showList :: [FieldWriteContent] -> ShowS

Eq FieldWriteContent Source # 
Instance details

Defined in Bitcode

Ord FieldWriteContent Source # 
Instance details

Defined in Bitcode

type Rep FieldWriteContent Source # 
Instance details

Defined in Bitcode

type Rep FieldWriteContent = D1 ('MetaData "FieldWriteContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "FieldWriteContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "fieldWriteOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: (S1 ('MetaSel ('Just "fieldWriteName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FieldName) :*: S1 ('MetaSel ('Just "fieldWriteInput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable))))

data SubscriptReadContent Source #

Instances

Instances details
FromJSON SubscriptReadContent Source # 
Instance details

Defined in Bitcode

ToJSON SubscriptReadContent Source # 
Instance details

Defined in Bitcode

Generic SubscriptReadContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep SubscriptReadContent :: Type -> Type

Show SubscriptReadContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> SubscriptReadContent -> ShowS

show :: SubscriptReadContent -> String

showList :: [SubscriptReadContent] -> ShowS

Eq SubscriptReadContent Source # 
Instance details

Defined in Bitcode

Ord SubscriptReadContent Source # 
Instance details

Defined in Bitcode

type Rep SubscriptReadContent Source # 
Instance details

Defined in Bitcode

type Rep SubscriptReadContent = D1 ('MetaData "SubscriptReadContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "SubscriptReadContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "subscriptReadOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: (S1 ('MetaSel ('Just "subscriptReadInput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: S1 ('MetaSel ('Just "subscriptReadIdx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable))))

data SubscriptWriteContent Source #

Instances

Instances details
FromJSON SubscriptWriteContent Source # 
Instance details

Defined in Bitcode

ToJSON SubscriptWriteContent Source # 
Instance details

Defined in Bitcode

Generic SubscriptWriteContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep SubscriptWriteContent :: Type -> Type

Show SubscriptWriteContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> SubscriptWriteContent -> ShowS

show :: SubscriptWriteContent -> String

showList :: [SubscriptWriteContent] -> ShowS

Eq SubscriptWriteContent Source # 
Instance details

Defined in Bitcode

Ord SubscriptWriteContent Source # 
Instance details

Defined in Bitcode

type Rep SubscriptWriteContent Source # 
Instance details

Defined in Bitcode

type Rep SubscriptWriteContent = D1 ('MetaData "SubscriptWriteContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "SubscriptWriteContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "subscriptWriteOutput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: (S1 ('MetaSel ('Just "subscriptWriteIdx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable) :*: S1 ('MetaSel ('Just "subscriptWriteInput") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Variable))))

data ParamDeclContent Source #

Instances

Instances details
FromJSON ParamDeclContent Source # 
Instance details

Defined in Bitcode

ToJSON ParamDeclContent Source # 
Instance details

Defined in Bitcode

Generic ParamDeclContent Source # 
Instance details

Defined in Bitcode

Associated Types

type Rep ParamDeclContent :: Type -> Type

Show ParamDeclContent Source # 
Instance details

Defined in Bitcode

Methods

showsPrec :: Int -> ParamDeclContent -> ShowS

show :: ParamDeclContent -> String

showList :: [ParamDeclContent] -> ShowS

Eq ParamDeclContent Source # 
Instance details

Defined in Bitcode

Ord ParamDeclContent Source # 
Instance details

Defined in Bitcode

type Rep ParamDeclContent Source # 
Instance details

Defined in Bitcode

type Rep ParamDeclContent = D1 ('MetaData "ParamDeclContent" "Bitcode" "dhscanner-bitcode-0.1.0.3-inplace" 'False) (C1 ('MetaCons "ParamDeclContent" 'PrefixI 'True) (S1 ('MetaSel ('Just "paramVariable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParamVariable)))

output :: InstructionContent -> Maybe Variable Source #

  • some instructions don't have an output variable

  • other instructions have exactly one output variable

inputs :: InstructionContent -> Set Variable Source #

  • some instructions don't have input variables at all
  • other instructions have multiple input variables