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..