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

    The definition of an identifier within the DataflowGraph|graph. This extends on the IdentifierReference by adding the NodeId of the definition (and using type to mark the object type).

    Within a code snippet like a <- 3, the symbol processor will first create an identifier reference for a to reference the use and then promote it to an identifier definition.

    interface InGraphIdentifierDefinition {
        cds?: ControlDependency[];
        definedAt: NodeId;
        name: Identifier | undefined;
        nodeId: NodeId;
        type: InGraphReferenceType;
        value?: NodeId[];
    }

    Hierarchy (View Summary)

    Hierarchy-Diagram

    UML class diagram of InGraphIdentifierDefinition
    Index

    Properties

    If the reference is only effective, if, for example, an if-then-else condition is true, this references the root of the if. As a hacky intermediate solution (until we have pointer-analysis), an empty array may indicate a maybe which is due to pointer access (e.g., in a[x] <- 3).

    definedAt: NodeId

    The assignment node which ultimately defined this identifier (the arrow operator for e.g. x <- 3, or assign call in assign("x", 3))

    name: Identifier | undefined

    Name the reference is identified by (e.g., the name of the variable), undefined if the reference is "artificial" (e.g., anonymous)

    nodeId: NodeId

    The id of the node which represents the reference in the NormalizedAst|normalized AST and the DataflowGraph|dataflow graph.

    Type of the reference to be resolved

    value?: NodeId[]

    For value tracking, this contains all nodeIds of constant values that may be made available to this identifier For example, in x <- 3; y <- x, the definition of y will have the value 3 in its value set