UMinho Haskell Libraries (1.0)ContentsIndex
Language.Gnumeric.Dataflow
Portability portable
Stability experimental
Maintainer Cupertino Miranda and Joost Visser
Contents
Two variations of data flow extraction.
General algorithm for data flow extraction.
Functions to instantiate the general algorithm
Description
Derive data flow graph for spreadsheets. Two variations of data flow graphs are supported. The first variation has nodes of type CellBlock. In the second variations, cell blocks are expanded to their constituent cells, and the node type is CellRef. The first variation is more concise and more suitable for human consumption. The second variation is more suited for spreadsheet manipulation, such as slicing.
Synopsis
dataflow :: Term a => a -> Gph CellBlock
dataflowExpanded :: Term a => a -> Gph CellRef
dataflowEdgesSheet :: (Term a, Ord b) => (forall a . Term a => String -> a -> Rel CellRef b) -> a -> Rel CellRef b
dataflowEdgesCell :: (Term a, Ord b) => (forall a . Term a => a -> [b]) -> String -> a -> Rel CellRef b
dataflowEdgesFormula :: Ord b => (forall a . Term a => a -> [b]) -> String -> Gmr'Cell -> Rel CellRef b
nesting :: [CellBlock] -> Gph CellBlock
collectBlockRefs :: Term a => a -> [CellBlock]
collectCellRefs :: Term a => a -> [CellRef]
Two variations of data flow extraction.
dataflow :: Term a => a -> Gph CellBlock
Create a data flow graph from a Workbook (spreadsheet), where the nodes of the graph are cell blocks.
dataflowExpanded :: Term a => a -> Gph CellRef
Create a data flow graph from a Workbook (spreadsheet), where the nodes of the graph are individual cell references. It is similar to dataflow except that cell blocks are expanded into their constituent cells.
General algorithm for data flow extraction.
dataflowEdgesSheet :: (Term a, Ord b) => (forall a . Term a => String -> a -> Rel CellRef b) -> a -> Rel CellRef b
Construct dataflow edges for a complete sheet.
dataflowEdgesCell :: (Term a, Ord b) => (forall a . Term a => a -> [b]) -> String -> a -> Rel CellRef b
create CellBlock edges from all Gmr'Cells
dataflowEdgesFormula :: Ord b => (forall a . Term a => a -> [b]) -> String -> Gmr'Cell -> Rel CellRef b
Create data flow edges for a given cell given a Gmr'Cell collector
nesting :: [CellBlock] -> Gph CellBlock
Create nesting relationships between cell blocks and their individual constituent cells. Only cells that appear themselves among the given blocks are considered.
Functions to instantiate the general algorithm
collectBlockRefs :: Term a => a -> [CellBlock]
Collect all block references from a given term.
collectCellRefs :: Term a => a -> [CellRef]
Collect all cell references from a given term. Blocks are expanded to to their constituent CellRefs.
Produced by Haddock version 0.6