AmpersandContext.mesa
Sturgis, March 16, 1989 9:25:05 am PST
Last changed by Theimer on July 16, 1989 4:30:10 pm PDT
DIRECTORY
CirioTypes USING[CompilerContext, Node, Type];
AmpersandContext: CEDAR DEFINITIONS =
BEGIN
CC: TYPE = CirioTypes.CompilerContext;
Each of the following types has only a single instance. These create routines will return that instance if it has already been created.
CreateAmpersandContextType: PROC[cc: CC] RETURNS[CirioTypes.Type];
implemented in AmpersandContextImpl
CirioCode.GetTypeClass[type] = $ampersandContext
CCTypes.GetTypeRepresentation will return NIL.
CreateNodeType: PROC[cc: CC] RETURNS[CirioTypes.Type];
implemented in AmpersandContextImpl
CirioCode.GetTypeClass[type] = $amnode
We have the following node creation routines
CreateAnAmpersandContext: PROC [cc: CC] RETURNS[CirioTypes.Node];
MakeNodeFromNode: PROC[node: CirioTypes.Node, cc: CC] RETURNS[CirioTypes.Node];
Creates a Node whose contained value is the given node.
StripAMNode: PROC[node: CirioTypes.Node] RETURNS[CirioTypes.Node];
Undoes the previous procedure. Generates CCE[cirioError] if argument is not a node whose contained value is a node.
END..