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).
ReadonlynameName the reference is identified by (e.g., the name of the variable), undefined if the reference is "artificial" (e.g., anonymous)
ReadonlynodeThe 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
An identifier reference points to a variable like
ainb <- a. Without any surrounding code,awill produce the identifier referencea. Similarly,bwill create a reference (although it will be an identifier definition which adds even more information).In general, references are merely pointers (with meta-information) to a vertex in the DataflowGraph|dataflow graph. In the context of the extractor, for example, they indicate the references that are currently (during the analysis at this given node) DataflowInformation#in|read (
in), DataflowInformation#out|written (out), or DataflowInformation#unknownReferences|unknown (unknownReferences).See
InGraphIdentifierDefinition