Module stack_graphs::paths

source ·
Expand description

Paths represent name bindings in a source language.

With the set of rules we have for constructing stack graphs, bindings between references and definitions are represented by paths within the graph. Each edge in the path must leave the symbol and scopes stacks in a valid state — otherwise we have violated some name binding rule in the source language. The symbol and scope stacks must be empty at the beginning and end of the path. The reference’s push symbol node “seeds” the symbol stack with the first thing that we want to look for, and once we (hopefully) reach the definition that reference refers to, its pop node will remove that symbol from the symbol stack, leaving both stacks empty.

Enums§

Traits§

  • A collection that can be used to receive the results of the [Path::extend][] method.