@eagleoutice/flowr - v2.15.8
    Preparing search index...

    Interface DataflowInformation

    The dataflow information is one of the fundamental structures we have in the dataflow analysis. It is continuously updated during the dataflow analysis and holds its current state for the respective subtree processed. Each processor during the dataflow analysis may use the information from its children to produce a new state of the dataflow information.

    You may initialize a new dataflow information with DataflowInformation.initialize.

    DataflowCfgInformation - the control flow aspects

    interface DataflowInformation {
        cfgEntry?: NodeId;
        cfgExit?: NodeId;
        cutShort?: DataflowBudgetExhaustion;
        entryPoint: NodeId;
        environment: REnvironmentInformation;
        exitPoints: readonly ExitPoint[];
        graph: DataflowGraph;
        hooks: HookInformation[];
        in: readonly IdentifierReference[];
        kill?: readonly KillReference[];
        out: readonly IdentifierReference[];
        unknownReferences: readonly IdentifierReference[];
    }

    Hierarchy (View Summary)

    Index
    cfgEntry?: NodeId

    The node control flow enters this subtree at. Control flow is modeled in post-order (operands are evaluated before the operator that consumes them), so for compound constructs this is not the entryPoint (which names the value-producing node) but the first node that is actually evaluated. Left undefined whenever both coincide, which is the case for all leaves.

    cfgExit?: NodeId

    The node control flow leaves this subtree at, joining the branches of the construct if it has any. Left undefined whenever the exitPoints already name it, which is the case whenever the construct has a single point of exit.

    Set by produceDataFlowGraph when a DataflowBudget ended the extraction early. The graph is then partial: everything processed before the bound was hit, and nothing after it.

    entryPoint: NodeId

    The entry node into the subgraph

    Current environments used for name resolution, probably updated on the next expression-list processing

    exitPoints: readonly ExitPoint[]

    All already identified exit points (active 'return'/'break'/'next'-likes) of the respective structure. This also tracks (local knowledge of) exceptions thrown within the structure. See the ExitPointType#Error|Error type for more information.

    The current constructed dataflow graph

    Registered hooks within the current subtree

    in: readonly IdentifierReference[]

    References which are read within the current subtree.

    IdentifierReference - a reference on a variable, parameter, function call, ...

    kill?: readonly KillReference[]

    References removed from scope within the current subtree (e.g., via rm); undefined unless an rm occurred.

    out: readonly IdentifierReference[]

    References which are written to within the current subtree

    IdentifierReference - a reference on a variable, parameter, function call, ...

    unknownReferences: readonly IdentifierReference[]

    References that have not been identified as read or write and will be so on higher processors.

    For example, when we analyze the x vertex in x <- 3, we will first create an unknown reference for x as we have not yet seen the assignment!

    IdentifierReference - a reference on a variable, parameter, function call, ...