20 #endif // ENVIRONMENT_HH
bool searchIdDef(Tree id, Tree &def, Tree lenv)
Search the environment (until first barrier) for the definition of a symbol ID and return it...
Tree pushMultiClosureDefs(Tree ldefs, Tree visited, Tree lenv)
Push a new layer with multiple definitions creating the appropriate closures.
A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches.
Tree pushEnvBarrier(Tree lenv)
Tree copyEnvReplaceDefs(Tree anEnv, Tree ldefs, Tree visited, Tree curEnv)
Create a new environment by copying an existing one and replacing some definitions.
Tree pushValueDef(Tree id, Tree def, Tree lenv)
Push a new layer and add a single definition.
bool isEnvBarrier(Tree t)
Test if the environment is a barrier (or nil) so that searchIdDef will know where to stop when search...