SiroccoAG1Impl.mesa
Copyright Ó 1987 by Xerox Corporation. All rights reserved.
Generated by BJackson.pa at August 26, 1987 3:38:06 pm PDT
using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT
DIRECTORY
SiroccoAG1Def,
SiroccoCGDef,
SiroccoATDef;
SiroccoAG1Impl: CEDAR PROGRAM IMPORTS SiroccoAG1Def EXPORTS SiroccoAG1Def=
BEGIN
OPEN SiroccoAG1Def, SiroccoCGDef, SiroccoATDef;
ProgramexportProd
ProgramexportProdProcs: PUBLIC ProgramNodeProcs ←
NEW[ProgramNodeProcsBody ← [ProgramexportProdMakeSymbolTable]];
BuildProgramexportProdNode: PUBLIC PROC[position: INT, length: INT, idexport: idNode, decimalpgm: decimalNode, decimalversion: decimalNode, ImportList: ImportListNode, DeclarationList: DeclarationListNode]
RETURNS[ProgramNode] =
BEGIN
data: ProgramexportProdData ←
NEW[ProgramexportProdDataBody ← [
idexport, decimalpgm, decimalversion, ImportList, DeclarationList]];
RETURN[NEW[ProgramNodeBody←[position, length, ProgramexportProdProcs, data]]];
END;
ImportListemptyProd
ImportListemptyProdProcs: PUBLIC ImportListNodeProcs ←
NEW[ImportListNodeProcsBody ← [ImportListemptyProdBuildRIB]];
BuildImportListemptyProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[ImportListNode] =
BEGIN
RETURN[NEW[ImportListNodeBody←[position, length, ImportListemptyProdProcs, NIL]]];
END;
ImportListmoreProd
ImportListmoreProdProcs: PUBLIC ImportListNodeProcs ←
NEW[ImportListNodeProcsBody ← [ImportListmoreProdBuildRIB]];
BuildImportListmoreProdNode: PUBLIC PROC[position: INT, length: INT, ImportList: ImportListNode, Import: ImportNode]
RETURNS[ImportListNode] =
BEGIN
data: ImportListmoreProdData ←
NEW[ImportListmoreProdDataBody ← [
ImportList, Import]];
RETURN[NEW[ImportListNodeBody←[position, length, ImportListmoreProdProcs, data]]];
END;
ImportinterfaceProd
ImportinterfaceProdProcs: PUBLIC ImportNodeProcs ←
NEW[ImportNodeProcsBody ← [ImportinterfaceProdBuildScope]];
BuildImportinterfaceProdNode: PUBLIC PROC[position: INT, length: INT, idinterface: idNode, decimalpgm: decimalNode, decimalversion: decimalNode]
RETURNS[ImportNode] =
BEGIN
data: ImportinterfaceProdData ←
NEW[ImportinterfaceProdDataBody ← [
idinterface, decimalpgm, decimalversion]];
RETURN[NEW[ImportNodeBody←[position, length, ImportinterfaceProdProcs, data]]];
END;
DeclarationListemptyProd
DeclarationListemptyProdProcs: PUBLIC DeclarationListNodeProcs ←
NEW[DeclarationListNodeProcsBody ← [DeclarationListemptyProdBuildItemTable, DeclarationListemptyProdBuildTypeGraph]];
BuildDeclarationListemptyProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[DeclarationListNode] =
BEGIN
RETURN[NEW[DeclarationListNodeBody←[position, length, DeclarationListemptyProdProcs, NIL]]];
END;
DeclarationListmoreProd
DeclarationListmoreProdProcs: PUBLIC DeclarationListNodeProcs ←
NEW[DeclarationListNodeProcsBody ← [DeclarationListmoreProdBuildItemTable, DeclarationListmoreProdBuildTypeGraph]];
BuildDeclarationListmoreProdNode: PUBLIC PROC[position: INT, length: INT, DeclarationList: DeclarationListNode, Declaration: DeclarationNode]
RETURNS[DeclarationListNode] =
BEGIN
data: DeclarationListmoreProdData ←
NEW[DeclarationListmoreProdDataBody ← [
DeclarationList, Declaration]];
RETURN[NEW[DeclarationListNodeBody←[position, length, DeclarationListmoreProdProcs, data]]];
END;
DeclarationtypeProd
DeclarationtypeProdProcs: PUBLIC DeclarationNodeProcs ←
NEW[DeclarationNodeProcsBody ← [DeclarationtypeProdBuildItem, DeclarationtypeProdBuildNamedItem]];
BuildDeclarationtypeProdNode: PUBLIC PROC[position: INT, length: INT, id: idNode, Type: TypeNode]
RETURNS[DeclarationNode] =
BEGIN
data: DeclarationtypeProdData ←
NEW[DeclarationtypeProdDataBody ← [
id, Type]];
RETURN[NEW[DeclarationNodeBody←[position, length, DeclarationtypeProdProcs, data]]];
END;
DeclarationconstantProd
DeclarationconstantProdProcs: PUBLIC DeclarationNodeProcs ←
NEW[DeclarationNodeProcsBody ← [DeclarationconstantProdBuildItem, DeclarationconstantProdBuildNamedItem]];
BuildDeclarationconstantProdNode: PUBLIC PROC[position: INT, length: INT, id: idNode, Type: TypeNode, Constant: ConstantNode]
RETURNS[DeclarationNode] =
BEGIN
data: DeclarationconstantProdData ←
NEW[DeclarationconstantProdDataBody ← [
id, Type, Constant]];
RETURN[NEW[DeclarationNodeBody←[position, length, DeclarationconstantProdProcs, data]]];
END;
TypealiasProd
TypealiasProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypealiasProdBuildTGN]];
BuildTypealiasProdNode: PUBLIC PROC[position: INT, length: INT, id: idNode]
RETURNS[TypeNode] =
BEGIN
data: TypealiasProdData ←
NEW[TypealiasProdDataBody ← [
id]];
RETURN[NEW[TypeNodeBody←[position, length, TypealiasProdProcs, data]]];
END;
TypeimportProd
TypeimportProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypeimportProdBuildTGN]];
BuildTypeimportProdNode: PUBLIC PROC[position: INT, length: INT, idinterface: idNode, iditem: idNode]
RETURNS[TypeNode] =
BEGIN
data: TypeimportProdData ←
NEW[TypeimportProdDataBody ← [
idinterface, iditem]];
RETURN[NEW[TypeNodeBody←[position, length, TypeimportProdProcs, data]]];
END;
TypeboolProd
TypeboolProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypeboolProdBuildTGN]];
BuildTypeboolProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[TypeNode] =
BEGIN
RETURN[NEW[TypeNodeBody←[position, length, TypeboolProdProcs, NIL]]];
END;
Typecard16Prod
Typecard16ProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [Typecard16ProdBuildTGN]];
BuildTypecard16ProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[TypeNode] =
BEGIN
RETURN[NEW[TypeNodeBody←[position, length, Typecard16ProdProcs, NIL]]];
END;
Typecard32Prod
Typecard32ProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [Typecard32ProdBuildTGN]];
BuildTypecard32ProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[TypeNode] =
BEGIN
RETURN[NEW[TypeNodeBody←[position, length, Typecard32ProdProcs, NIL]]];
END;
Typeint16Prod
Typeint16ProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [Typeint16ProdBuildTGN]];
BuildTypeint16ProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[TypeNode] =
BEGIN
RETURN[NEW[TypeNodeBody←[position, length, Typeint16ProdProcs, NIL]]];
END;
Typeint32Prod
Typeint32ProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [Typeint32ProdBuildTGN]];
BuildTypeint32ProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[TypeNode] =
BEGIN
RETURN[NEW[TypeNodeBody←[position, length, Typeint32ProdProcs, NIL]]];
END;
TypesinkProd
TypesinkProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypesinkProdBuildTGN]];
BuildTypesinkProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[TypeNode] =
BEGIN
RETURN[NEW[TypeNodeBody←[position, length, TypesinkProdProcs, NIL]]];
END;
TypesourceProd
TypesourceProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypesourceProdBuildTGN]];
BuildTypesourceProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[TypeNode] =
BEGIN
RETURN[NEW[TypeNodeBody←[position, length, TypesourceProdProcs, NIL]]];
END;
TypestringProd
TypestringProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypestringProdBuildTGN]];
BuildTypestringProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[TypeNode] =
BEGIN
RETURN[NEW[TypeNodeBody←[position, length, TypestringProdProcs, NIL]]];
END;
TypeunspecProd
TypeunspecProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypeunspecProdBuildTGN]];
BuildTypeunspecProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[TypeNode] =
BEGIN
RETURN[NEW[TypeNodeBody←[position, length, TypeunspecProdProcs, NIL]]];
END;
TypearrayProd
TypearrayProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypearrayProdBuildTGN]];
BuildTypearrayProdNode: PUBLIC PROC[position: INT, length: INT, Constant: ConstantNode, Type: TypeNode]
RETURNS[TypeNode] =
BEGIN
data: TypearrayProdData ←
NEW[TypearrayProdDataBody ← [
Constant, Type]];
RETURN[NEW[TypeNodeBody←[position, length, TypearrayProdProcs, data]]];
END;
TypeseqProd
TypeseqProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypeseqProdBuildTGN]];
BuildTypeseqProdNode: PUBLIC PROC[position: INT, length: INT, Constant: ConstantNode, Type: TypeNode]
RETURNS[TypeNode] =
BEGIN
data: TypeseqProdData ←
NEW[TypeseqProdDataBody ← [
Constant, Type]];
RETURN[NEW[TypeNodeBody←[position, length, TypeseqProdProcs, data]]];
END;
TypeenumProd
TypeenumProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypeenumProdBuildTGN]];
BuildTypeenumProdNode: PUBLIC PROC[position: INT, length: INT, Enumeration: EnumerationNode]
RETURNS[TypeNode] =
BEGIN
data: TypeenumProdData ←
NEW[TypeenumProdDataBody ← [
Enumeration]];
RETURN[NEW[TypeNodeBody←[position, length, TypeenumProdProcs, data]]];
END;
TypeerrorProd
TypeerrorProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypeerrorProdBuildTGN]];
BuildTypeerrorProdNode: PUBLIC PROC[position: INT, length: INT, FieldList: FieldListNode]
RETURNS[TypeNode] =
BEGIN
data: TypeerrorProdData ←
NEW[TypeerrorProdDataBody ← [
FieldList]];
RETURN[NEW[TypeNodeBody←[position, length, TypeerrorProdProcs, data]]];
END;
TyperecordProd
TyperecordProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TyperecordProdBuildTGN]];
BuildTyperecordProdNode: PUBLIC PROC[position: INT, length: INT, FieldList: FieldListNode]
RETURNS[TypeNode] =
BEGIN
data: TyperecordProdData ←
NEW[TyperecordProdDataBody ← [
FieldList]];
RETURN[NEW[TypeNodeBody←[position, length, TyperecordProdProcs, data]]];
END;
TypenullProd
TypenullProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypenullProdBuildTGN]];
BuildTypenullProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[TypeNode] =
BEGIN
RETURN[NEW[TypeNodeBody←[position, length, TypenullProdProcs, NIL]]];
END;
TypeprocProd
TypeprocProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypeprocProdBuildTGN]];
BuildTypeprocProdNode: PUBLIC PROC[position: INT, length: INT, FieldListarg: FieldListNode, FieldListres: FieldListNode, NameList: NameListNode]
RETURNS[TypeNode] =
BEGIN
data: TypeprocProdData ←
NEW[TypeprocProdDataBody ← [
FieldListarg, FieldListres, NameList]];
RETURN[NEW[TypeNodeBody←[position, length, TypeprocProdProcs, data]]];
END;
TypechoiceProd
TypechoiceProdProcs: PUBLIC TypeNodeProcs ←
NEW[TypeNodeProcsBody ← [TypechoiceProdBuildTGN]];
BuildTypechoiceProdNode: PUBLIC PROC[position: INT, length: INT, Type: TypeNode, Union: UnionNode]
RETURNS[TypeNode] =
BEGIN
data: TypechoiceProdData ←
NEW[TypechoiceProdDataBody ← [
Type, Union]];
RETURN[NEW[TypeNodeBody←[position, length, TypechoiceProdProcs, data]]];
END;
END..