IR Context Classes

IR Nodes

These non-nodes handle the symbol space of nodes. These provide 'mechanism' over 'policy'; how look ups are performed, where they're performed. Parameter shadowing parent Scopes is allowed by these, that error has to come from another layer. The main restriction provided by these classes is that you can't have multiple Stores associated with the same name in a single Scope.

Some passes that deal with context are the Context pass, the DeclGatherer pass, and the ScopeManager pass.

In addition most of the semantic passes will lookup things in Scopes.

Classes

Store A container class for a various things that can be stored in a Scope.
Scope A single scope containing declared items and their identifiers.