SiroccoAG2Impl.mesa
Copyright Ó 1987 by Xerox Corporation. All rights reserved.
Generated by BJackson.pa at August 26, 1987 3:38:07 pm PDT
using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT
DIRECTORY
SiroccoAG2Def,
SiroccoCGDef,
SiroccoATDef;
SiroccoAG2Impl: CEDAR PROGRAM IMPORTS SiroccoAG2Def EXPORTS SiroccoAG2Def=
BEGIN
OPEN SiroccoAG2Def, SiroccoCGDef, SiroccoATDef;
ConstantderefProd
ConstantderefProdProcs:
PUBLIC ConstantNodeProcs ←
NEW[ConstantNodeProcsBody ← [ConstantderefProdBuildAbstractValue]];
BuildConstantderefProdNode:
PUBLIC
PROC[position:
INT, length:
INT, id: idNode]
RETURNS[ConstantNode] =
BEGIN
data: ConstantderefProdData ←
NEW[ConstantderefProdDataBody ← [
id]];
RETURN[NEW[ConstantNodeBody←[position, length, ConstantderefProdProcs, data]]];
END;
ConstantimportProd
ConstantimportProdProcs:
PUBLIC ConstantNodeProcs ←
NEW[ConstantNodeProcsBody ← [ConstantimportProdBuildAbstractValue]];
BuildConstantimportProdNode:
PUBLIC
PROC[position:
INT, length:
INT, idinterface: idNode, iditem: idNode]
RETURNS[ConstantNode] =
BEGIN
data: ConstantimportProdData ←
NEW[ConstantimportProdDataBody ← [
idinterface, iditem]];
RETURN[NEW[ConstantNodeBody←[position, length, ConstantimportProdProcs, data]]];
END;
ConstantemptyProd
ConstantemptyProdProcs:
PUBLIC ConstantNodeProcs ←
NEW[ConstantNodeProcsBody ← [ConstantemptyProdBuildAbstractValue]];
BuildConstantemptyProdNode:
PUBLIC
PROC[position:
INT, length:
INT]
RETURNS[ConstantNode] =
BEGIN
RETURN[NEW[ConstantNodeBody←[position, length, ConstantemptyProdProcs, NIL]]];
END;
ConstantfalseProd
ConstantfalseProdProcs:
PUBLIC ConstantNodeProcs ←
NEW[ConstantNodeProcsBody ← [ConstantfalseProdBuildAbstractValue]];
BuildConstantfalseProdNode:
PUBLIC
PROC[position:
INT, length:
INT]
RETURNS[ConstantNode] =
BEGIN
RETURN[NEW[ConstantNodeBody←[position, length, ConstantfalseProdProcs, NIL]]];
END;
ConstanttrueProd
ConstanttrueProdProcs:
PUBLIC ConstantNodeProcs ←
NEW[ConstantNodeProcsBody ← [ConstanttrueProdBuildAbstractValue]];
BuildConstanttrueProdNode:
PUBLIC
PROC[position:
INT, length:
INT]
RETURNS[ConstantNode] =
BEGIN
RETURN[NEW[ConstantNodeBody←[position, length, ConstanttrueProdProcs, NIL]]];
END;
ConstantunboundedProd
ConstantunboundedProdProcs:
PUBLIC ConstantNodeProcs ←
NEW[ConstantNodeProcsBody ← [ConstantunboundedProdBuildAbstractValue]];
BuildConstantunboundedProdNode:
PUBLIC
PROC[position:
INT, length:
INT]
RETURNS[ConstantNode] =
BEGIN
RETURN[NEW[ConstantNodeBody←[position, length, ConstantunboundedProdProcs, NIL]]];
END;
ConstantinvertedProd
ConstantinvertedProdProcs:
PUBLIC ConstantNodeProcs ←
NEW[ConstantNodeProcsBody ← [ConstantinvertedProdBuildAbstractValue]];
BuildConstantinvertedProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
Number: NumberNode]
RETURNS[ConstantNode] =
BEGIN
data: ConstantinvertedProdData ←
NEW[ConstantinvertedProdDataBody ← [
Number]];
RETURN[NEW[ConstantNodeBody←[position, length, ConstantinvertedProdProcs, data]]];
END;
ConstantnumberProd
ConstantnumberProdProcs:
PUBLIC ConstantNodeProcs ←
NEW[ConstantNodeProcsBody ← [ConstantnumberProdBuildAbstractValue]];
BuildConstantnumberProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
Number: NumberNode]
RETURNS[ConstantNode] =
BEGIN
data: ConstantnumberProdData ←
NEW[ConstantnumberProdDataBody ← [
Number]];
RETURN[NEW[ConstantNodeBody←[position, length, ConstantnumberProdProcs, data]]];
END;
ConstantstringProd
ConstantstringProdProcs:
PUBLIC ConstantNodeProcs ←
NEW[ConstantNodeProcsBody ← [ConstantstringProdBuildAbstractValue]];
BuildConstantstringProdNode:
PUBLIC
PROC[position:
INT, length:
INT, rope: ropeNode]
RETURNS[ConstantNode] =
BEGIN
data: ConstantstringProdData ←
NEW[ConstantstringProdDataBody ← [
rope]];
RETURN[NEW[ConstantNodeBody←[position, length, ConstantstringProdProcs, data]]];
END;
ConstantchoiceProd
ConstantchoiceProdProcs:
PUBLIC ConstantNodeProcs ←
NEW[ConstantNodeProcsBody ← [ConstantchoiceProdBuildAbstractValue]];
BuildConstantchoiceProdNode:
PUBLIC
PROC[position:
INT, length:
INT, id: idNode,
Constant: ConstantNode]
RETURNS[ConstantNode] =
BEGIN
data: ConstantchoiceProdData ←
NEW[ConstantchoiceProdDataBody ← [
id, Constant]];
RETURN[NEW[ConstantNodeBody←[position, length, ConstantchoiceProdProcs, data]]];
END;
ConstantconstructorProd
ConstantconstructorProdProcs:
PUBLIC ConstantNodeProcs ←
NEW[ConstantNodeProcsBody ← [ConstantconstructorProdBuildAbstractValue]];
BuildConstantconstructorProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
Constructor: ConstructorNode]
RETURNS[ConstantNode] =
BEGIN
data: ConstantconstructorProdData ←
NEW[ConstantconstructorProdDataBody ← [
Constructor]];
RETURN[NEW[ConstantNodeBody←[position, length, ConstantconstructorProdProcs, data]]];
END;
ConstantgroupingProd
ConstantgroupingProdProcs:
PUBLIC ConstantNodeProcs ←
NEW[ConstantNodeProcsBody ← [ConstantgroupingProdBuildAbstractValue]];
BuildConstantgroupingProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
Grouping: GroupingNode]
RETURNS[ConstantNode] =
BEGIN
data: ConstantgroupingProdData ←
NEW[ConstantgroupingProdDataBody ← [
Grouping]];
RETURN[NEW[ConstantNodeBody←[position, length, ConstantgroupingProdProcs, data]]];
END;
EnumerationoneProd
EnumerationoneProdProcs:
PUBLIC EnumerationNodeProcs ←
NEW[EnumerationNodeProcsBody ← [EnumerationoneProdBuildTGN]];
BuildEnumerationoneProdNode:
PUBLIC
PROC[position:
INT, length:
INT, id: idNode,
Constant: ConstantNode]
RETURNS[EnumerationNode] =
BEGIN
data: EnumerationoneProdData ←
NEW[EnumerationoneProdDataBody ← [
id, Constant]];
RETURN[NEW[EnumerationNodeBody←[position, length, EnumerationoneProdProcs, data]]];
END;
EnumerationmoreProd
EnumerationmoreProdProcs:
PUBLIC EnumerationNodeProcs ←
NEW[EnumerationNodeProcsBody ← [EnumerationmoreProdBuildTGN]];
BuildEnumerationmoreProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
Enumerationvalue: EnumerationNode,
Enumerationnext: EnumerationNode]
RETURNS[EnumerationNode] =
BEGIN
data: EnumerationmoreProdData ←
NEW[EnumerationmoreProdDataBody ← [
Enumerationvalue, Enumerationnext]];
RETURN[NEW[EnumerationNodeBody←[position, length, EnumerationmoreProdProcs, data]]];
END;
UniononeProd
UniononeProdProcs:
PUBLIC UnionNodeProcs ←
NEW[UnionNodeProcsBody ← [UniononeProdBuildTGN]];
BuildUniononeProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
NameList: NameListNode,
Type: TypeNode]
RETURNS[UnionNode] =
BEGIN
data: UniononeProdData ←
NEW[UniononeProdDataBody ← [
NameList, Type]];
RETURN[NEW[UnionNodeBody←[position, length, UniononeProdProcs, data]]];
END;
UnionmoreProd
UnionmoreProdProcs:
PUBLIC UnionNodeProcs ←
NEW[UnionNodeProcsBody ← [UnionmoreProdBuildTGN]];
BuildUnionmoreProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
Unionvalue: UnionNode,
Unionnext: UnionNode]
RETURNS[UnionNode] =
BEGIN
data: UnionmoreProdData ←
NEW[UnionmoreProdDataBody ← [
Unionvalue, Unionnext]];
RETURN[NEW[UnionNodeBody←[position, length, UnionmoreProdProcs, data]]];
END;
FieldListemptyProd
FieldListemptyProdProcs:
PUBLIC FieldListNodeProcs ←
NEW[FieldListNodeProcsBody ← [FieldListemptyProdBuildTGN]];
BuildFieldListemptyProdNode:
PUBLIC
PROC[position:
INT, length:
INT]
RETURNS[FieldListNode] =
BEGIN
RETURN[NEW[FieldListNodeBody←[position, length, FieldListemptyProdProcs, NIL]]];
END;
FieldListoneProd
FieldListoneProdProcs:
PUBLIC FieldListNodeProcs ←
NEW[FieldListNodeProcsBody ← [FieldListoneProdBuildTGN]];
BuildFieldListoneProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
NameList: NameListNode,
Type: TypeNode]
RETURNS[FieldListNode] =
BEGIN
data: FieldListoneProdData ←
NEW[FieldListoneProdDataBody ← [
NameList, Type]];
RETURN[NEW[FieldListNodeBody←[position, length, FieldListoneProdProcs, data]]];
END;
FieldListmoreProd
FieldListmoreProdProcs:
PUBLIC FieldListNodeProcs ←
NEW[FieldListNodeProcsBody ← [FieldListmoreProdBuildTGN]];
BuildFieldListmoreProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
FieldListvalue: FieldListNode,
FieldListrest: FieldListNode]
RETURNS[FieldListNode] =
BEGIN
data: FieldListmoreProdData ←
NEW[FieldListmoreProdDataBody ← [
FieldListvalue, FieldListrest]];
RETURN[NEW[FieldListNodeBody←[position, length, FieldListmoreProdProcs, data]]];
END;
GroupingoneProd
GroupingoneProdProcs:
PUBLIC GroupingNodeProcs ←
NEW[GroupingNodeProcsBody ← [GroupingoneProdBuildAbstractValue]];
BuildGroupingoneProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
Constant: ConstantNode]
RETURNS[GroupingNode] =
BEGIN
data: GroupingoneProdData ←
NEW[GroupingoneProdDataBody ← [
Constant]];
RETURN[NEW[GroupingNodeBody←[position, length, GroupingoneProdProcs, data]]];
END;
GroupingmoreProd
GroupingmoreProdProcs:
PUBLIC GroupingNodeProcs ←
NEW[GroupingNodeProcsBody ← [GroupingmoreProdBuildAbstractValue]];
BuildGroupingmoreProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
Constant: ConstantNode,
Grouping: GroupingNode]
RETURNS[GroupingNode] =
BEGIN
data: GroupingmoreProdData ←
NEW[GroupingmoreProdDataBody ← [
Constant, Grouping]];
RETURN[NEW[GroupingNodeBody←[position, length, GroupingmoreProdProcs, data]]];
END;
ConstructoroneProd
ConstructoroneProdProcs:
PUBLIC ConstructorNodeProcs ←
NEW[ConstructorNodeProcsBody ← [ConstructoroneProdBuildAbstractValue]];
BuildConstructoroneProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
Binding: BindingNode]
RETURNS[ConstructorNode] =
BEGIN
data: ConstructoroneProdData ←
NEW[ConstructoroneProdDataBody ← [
Binding]];
RETURN[NEW[ConstructorNodeBody←[position, length, ConstructoroneProdProcs, data]]];
END;
ConstructormoreProd
ConstructormoreProdProcs:
PUBLIC ConstructorNodeProcs ←
NEW[ConstructorNodeProcsBody ← [ConstructormoreProdBuildAbstractValue]];
BuildConstructormoreProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
Binding: BindingNode,
Constructor: ConstructorNode]
RETURNS[ConstructorNode] =
BEGIN
data: ConstructormoreProdData ←
NEW[ConstructormoreProdDataBody ← [
Binding, Constructor]];
RETURN[NEW[ConstructorNodeBody←[position, length, ConstructormoreProdProcs, data]]];
END;
BindingProd
BindingProdProcs:
PUBLIC BindingNodeProcs ←
NEW[BindingNodeProcsBody ← [BindingProdBuildAbstractValue]];
BuildBindingProdNode:
PUBLIC
PROC[position:
INT, length:
INT,
NameList: NameListNode,
Constant: ConstantNode]
RETURNS[BindingNode] =
BEGIN
data: BindingProdData ←
NEW[BindingProdDataBody ← [
NameList, Constant]];
RETURN[NEW[BindingNodeBody←[position, length, BindingProdProcs, data]]];
END;
NameListemptyProd
NameListemptyProdProcs:
PUBLIC NameListNodeProcs ←
NEW[NameListNodeProcsBody ← [NameListemptyProdBuildTGN]];
BuildNameListemptyProdNode:
PUBLIC
PROC[position:
INT, length:
INT]
RETURNS[NameListNode] =
BEGIN
RETURN[NEW[NameListNodeBody←[position, length, NameListemptyProdProcs, NIL]]];
END;
NameListoneProd
NameListoneProdProcs:
PUBLIC NameListNodeProcs ←
NEW[NameListNodeProcsBody ← [NameListoneProdBuildTGN]];
BuildNameListoneProdNode:
PUBLIC
PROC[position:
INT, length:
INT, id: idNode]
RETURNS[NameListNode] =
BEGIN
data: NameListoneProdData ←
NEW[NameListoneProdDataBody ← [
id]];
RETURN[NEW[NameListNodeBody←[position, length, NameListoneProdProcs, data]]];
END;
NameListmoreProd
NameListmoreProdProcs:
PUBLIC NameListNodeProcs ←
NEW[NameListNodeProcsBody ← [NameListmoreProdBuildTGN]];
BuildNameListmoreProdNode:
PUBLIC
PROC[position:
INT, length:
INT, id: idNode,
NameList: NameListNode]
RETURNS[NameListNode] =
BEGIN
data: NameListmoreProdData ←
NEW[NameListmoreProdDataBody ← [
id, NameList]];
RETURN[NEW[NameListNodeBody←[position, length, NameListmoreProdProcs, data]]];
END;
NumberdecimalProd
NumberdecimalProdProcs:
PUBLIC NumberNodeProcs ←
NEW[NumberNodeProcsBody ← [NumberdecimalProdBuildAbstractValue]];
BuildNumberdecimalProdNode:
PUBLIC
PROC[position:
INT, length:
INT, decimal: decimalNode]
RETURNS[NumberNode] =
BEGIN
data: NumberdecimalProdData ←
NEW[NumberdecimalProdDataBody ← [
decimal]];
RETURN[NEW[NumberNodeBody←[position, length, NumberdecimalProdProcs, data]]];
END;
NumberhexProd
NumberhexProdProcs:
PUBLIC NumberNodeProcs ←
NEW[NumberNodeProcsBody ← [NumberhexProdBuildAbstractValue]];
BuildNumberhexProdNode:
PUBLIC
PROC[position:
INT, length:
INT, hex: hexNode]
RETURNS[NumberNode] =
BEGIN
data: NumberhexProdData ←
NEW[NumberhexProdDataBody ← [
hex]];
RETURN[NEW[NumberNodeBody←[position, length, NumberhexProdProcs, data]]];
END;
NumberoctalProd
NumberoctalProdProcs:
PUBLIC NumberNodeProcs ←
NEW[NumberNodeProcsBody ← [NumberoctalProdBuildAbstractValue]];
BuildNumberoctalProdNode:
PUBLIC
PROC[position:
INT, length:
INT, octal: octalNode]
RETURNS[NumberNode] =
BEGIN
data: NumberoctalProdData ←
NEW[NumberoctalProdDataBody ← [
octal]];
RETURN[NEW[NumberNodeBody←[position, length, NumberoctalProdProcs, data]]];
END;
END..