tokstyle-0.0.9: TokTok C code style checker
Safe HaskellSafe-Inferred
LanguageHaskell2010

Tokstyle.Analysis.Dataflow

Synopsis

Documentation

data Dataflow node edge state Source #

A generic dataflow problem definition.

Constructors

Dataflow 

Fields

  • transfer :: node -> state -> state

    How a node changes the state

  • edgeTransfer :: node -> edge -> state -> state

    How an edge changes the state

  • merge :: state -> state -> state

    How to combine states from two paths

  • initial :: state

    Starting state for Entry node (forward) or Exit node (backward)

solve Source #

Arguments

:: (Ord node, Eq state) 
=> node

The entry node

-> Map node [(edge, node)]

The CFG

-> Dataflow node edge state 
-> Map node state 

Solves the forward dataflow problem using a worklist algorithm.

solveBackward Source #

Arguments

:: (Ord node, Eq state) 
=> [node]

Exit nodes

-> Map node [(edge, node)]

The CFG

-> Dataflow node edge state 
-> Map node state 

Solves the backward dataflow problem using a worklist algorithm.