-- SaffronMakeFieldListImpl.mesa
 -- Copyright س 1987 by Xerox Corporation.  All rights reserved.
 -- Generated by Rauen.pa at September 1, 1988 6:29:54 pm PDT
 --  using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT

DIRECTORY
	SaffronAG7bDef,
	SaffronAG8Def,
	SaffronAG6cDef,
	SaffronGenericDef,
	ThreeC4Support,
	SaffronBaseDef,
	SaffronATDef;

SaffronMakeFieldListImpl: CEDAR PROGRAM IMPORTS ThreeC4Support, SaffronBaseDef EXPORTS SaffronAG7bDef, SaffronAG8Def, SaffronAG6cDef= 
BEGIN
OPEN SaffronAG7bDef, SaffronAG8Def, SaffronAG6cDef, SaffronGenericDef, ThreeC4Support, SaffronBaseDef, SaffronATDef;
RecListemptyProdMakeFieldList:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: FieldListNode] =
BEGIN
tree:	RecListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
temp1 _ CreateEmptyFieldList[];
temp0 _ FakeDamageContext[localContext];
END
END;

RecListpairlistProdMakeFieldList:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: FieldListNode] =
BEGIN
tree:	RecListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	RecListpairlistProdData _ NARROW[tree.data];
BEGIN
localContext1:	LocalContextNode;
fieldList:	FieldListNode;
newFieldList:	FieldListNode;
newFieldList _ CreateEmptyFieldList[];
[localContext1, fieldList] _ treeData.PairList.procs.AddPairsToFieldList[treeData.PairList, localContext, newFieldList, paintRecords, cs];
temp1 _ fieldList;
temp0 _ localContext1;
END;
END
END;

RecListtypelistProdMakeFieldList:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: FieldListNode] =
BEGIN
tree:	RecListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	RecListtypelistProdData _ NARROW[tree.data];
BEGIN
localContext1:	LocalContextNode;
fieldList:	FieldListNode;
newFieldList:	FieldListNode;
newFieldList _ CreateEmptyFieldList[];
[localContext1, fieldList] _ treeData.TypeList.procs.AddToFieldList[treeData.TypeList, localContext, newFieldList, paintRecords, cs];
temp1 _ fieldList;
temp0 _ localContext1;
END;
END
END;

ParameterListemptyProdMakeFieldList:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: FieldListNode] =
BEGIN
tree:	ParameterListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
temp1 _ CreateEmptyFieldList[];
temp0 _ FakeDamageContext[localContext];
END
END;

ParameterListanyProdMakeFieldList:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: FieldListNode] =
BEGIN
tree:	ParameterListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
temp1 _ AnyFieldList[];
temp0 _ FakeDamageContext[localContext];
END
END;

ParameterListpairlistProdMakeFieldList:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: FieldListNode] =
BEGIN
tree:	ParameterListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	ParameterListpairlistProdData _ NARROW[tree.data];
BEGIN
localContext1:	LocalContextNode;
fieldList:	FieldListNode;
newFieldList:	FieldListNode;
newFieldList _ CreateEmptyFieldList[];
[localContext1, fieldList] _ treeData.PairList.procs.AddPairsToFieldList[treeData.PairList, localContext, newFieldList, paintRecords, cs];
temp1 _ fieldList;
temp0 _ localContext1;
END;
END
END;

ParameterListtypelistProdMakeFieldList:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: FieldListNode] =
BEGIN
tree:	ParameterListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	ParameterListtypelistProdData _ NARROW[tree.data];
BEGIN
localContext1:	LocalContextNode;
fieldList:	FieldListNode;
newFieldList:	FieldListNode;
newFieldList _ CreateEmptyFieldList[];
[localContext1, fieldList] _ treeData.TypeList.procs.AddToFieldList[treeData.TypeList, localContext, newFieldList, paintRecords, cs];
temp1 _ fieldList;
temp0 _ localContext1;
END;
END
END;

VariantListoneProdAddVariantNamesToEnumTypeTGN:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, tgn: TypeGraphNodeNode] RETURNS[temp0: LocalContextNode] =
BEGIN
tree:	VariantListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	VariantListoneProdData _ NARROW[tree.data];
temp0 _ treeData.VariantItem.procs.AddVariantNamesToEnumTypeTGN[treeData.VariantItem, localContext, tgn];
END
END;

VariantListoneProdMakeStarTagType:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] =
BEGIN
tree:	VariantListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	VariantListoneProdData _ NARROW[tree.data];
BEGIN
localContext2:	LocalContextNode;
localContext1:	LocalContextNode;
tgn:	TypeGraphNodeNode;
[localContext1, tgn] _ CreateEmptyEnumTypeTGN[localContext, False[]];
localContext2 _ treeData.VariantItem.procs.AddVariantNamesToEnumTypeTGN[treeData.VariantItem, localContext1, tgn];
temp1 _ tgn;
temp0 _ localContext2;
END;
END
END;

VariantListoneProdAddVariantsToUnionList:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, unionList: UnionListNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: UnionListNode] =
BEGIN
tree:	VariantListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	VariantListoneProdData _ NARROW[tree.data];
[temp0, temp1] _ treeData.VariantItem.procs.AddVariantsToUnionList[treeData.VariantItem, localContext, unionList, paintRecords, cs];
END
END;

VariantListoneProdMakeUnionList:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: UnionListNode] =
BEGIN
tree:	VariantListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	VariantListoneProdData _ NARROW[tree.data];
BEGIN
newUnionList:	UnionListNode;
newUnionList _ CreateEmptyUnionList[];
[temp0, temp1] _ treeData.VariantItem.procs.AddVariantsToUnionList[treeData.VariantItem, localContext, newUnionList, paintRecords, cs];
END;
END
END;

VariantListmoreProdAddVariantNamesToEnumTypeTGN:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, tgn: TypeGraphNodeNode] RETURNS[temp0: LocalContextNode] =
BEGIN
tree:	VariantListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	VariantListmoreProdData _ NARROW[tree.data];
BEGIN
localContext1:	LocalContextNode;
localContext1 _ treeData.VariantList.procs.AddVariantNamesToEnumTypeTGN[treeData.VariantList, localContext, tgn];
temp0 _ treeData.VariantItem.procs.AddVariantNamesToEnumTypeTGN[treeData.VariantItem, localContext1, tgn];
END;
END
END;

VariantListmoreProdMakeStarTagType:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode] =
BEGIN
tree:	VariantListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	VariantListmoreProdData _ NARROW[tree.data];
BEGIN
localContext3:	LocalContextNode;
localContext2:	LocalContextNode;
localContext1:	LocalContextNode;
tgn:	TypeGraphNodeNode;
[localContext1, tgn] _ CreateEmptyEnumTypeTGN[localContext, False[]];
localContext2 _ treeData.VariantList.procs.AddVariantNamesToEnumTypeTGN[treeData.VariantList, localContext1, tgn];
localContext3 _ treeData.VariantItem.procs.AddVariantNamesToEnumTypeTGN[treeData.VariantItem, localContext2, tgn];
temp1 _ tgn;
temp0 _ localContext3;
END;
END
END;

VariantListmoreProdAddVariantsToUnionList:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, unionList: UnionListNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: UnionListNode] =
BEGIN
tree:	VariantListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	VariantListmoreProdData _ NARROW[tree.data];
BEGIN
localContext1:	LocalContextNode;
unionList1:	UnionListNode;
[localContext1, unionList1] _ treeData.VariantList.procs.AddVariantsToUnionList[treeData.VariantList, localContext, unionList, paintRecords, cs];
[temp0, temp1] _ treeData.VariantItem.procs.AddVariantsToUnionList[treeData.VariantItem, localContext1, unionList1, paintRecords, cs];
END;
END
END;

VariantListmoreProdMakeUnionList:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: UnionListNode] =
BEGIN
tree:	VariantListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	VariantListmoreProdData _ NARROW[tree.data];
BEGIN
localContext1:	LocalContextNode;
unionList:	UnionListNode;
newUnionList:	UnionListNode;
newUnionList _ CreateEmptyUnionList[];
[localContext1, unionList] _ treeData.VariantList.procs.AddVariantsToUnionList[treeData.VariantList, localContext, newUnionList, paintRecords, cs];
[temp0, temp1] _ treeData.VariantItem.procs.AddVariantsToUnionList[treeData.VariantItem, localContext1, unionList, paintRecords, cs];
END;
END
END;

VariantItemProdAddVariantNamesToEnumTypeTGN:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, tgn: TypeGraphNodeNode] RETURNS[temp0: LocalContextNode] =
BEGIN
tree:	VariantItemNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	VariantItemProdData _ NARROW[tree.data];
temp0 _ treeData.IdList.procs.AddVariantNamesToEnumTypeTGN[treeData.IdList, localContext, tgn];
END
END;

VariantItemProdAddVariantsToUnionList:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, unionList: UnionListNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: UnionListNode] =
BEGIN
tree:	VariantItemNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	VariantItemProdData _ NARROW[tree.data];
BEGIN
ffl:	FrozenFieldListNode;
localContext1:	LocalContextNode;
fieldList:	FieldListNode;
[localContext1, fieldList] _ treeData.RecList.procs.MakeFieldList[treeData.RecList, localContext, paintRecords, cs];
ffl _ FreezeFieldList[fieldList];
temp1 _ treeData.IdList.procs.AddNamesToUnionList[treeData.IdList, ffl, unionList];
temp0 _ localContext1;
END;
END
END;

IdListoneProdAddIdsToRestrictionList:	PUBLIC PROC[ref: REF ANY, namedTGN: TypeGraphNodeNode] RETURNS[temp0: TypeGraphNodeNode] =
BEGIN
tree:	IdListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	IdListoneProdData _ NARROW[tree.data];
temp0 _ AddIdToRestrictionList[treeData.Id, namedTGN];
END
END;

IdListoneProdAddVariantNamesToEnumTypeTGN:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, tgn: TypeGraphNodeNode] RETURNS[temp0: LocalContextNode] =
BEGIN
tree:	IdListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	IdListoneProdData _ NARROW[tree.data];
temp0 _ AppendElementToEnumTypeTGN[localContext, tgn, treeData.Id, MakeUnparsedNullValue[]];
END
END;

IdListoneProdAddNamesToUnionList:	PUBLIC PROC[ref: REF ANY, ffl: FrozenFieldListNode, unionList: UnionListNode] RETURNS[temp0: UnionListNode] =
BEGIN
tree:	IdListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	IdListoneProdData _ NARROW[tree.data];
temp0 _ AppendToUnionList[unionList, treeData.Id, ffl];
END
END;

IdListmoreProdAddIdsToRestrictionList:	PUBLIC PROC[ref: REF ANY, tgn: TypeGraphNodeNode] RETURNS[temp0: TypeGraphNodeNode] =
BEGIN
tree:	IdListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	IdListmoreProdData _ NARROW[tree.data];
BEGIN
tgn2:	TypeGraphNodeNode;
tgn1:	TypeGraphNodeNode;
tgn1 _ AddIdToRestrictionList[treeData.Id, tgn];
tgn2 _ treeData.IdList.procs.AddIdsToRestrictionList[treeData.IdList, tgn1];
temp0 _ tgn2;
END;
END
END;

IdListmoreProdAddVariantNamesToEnumTypeTGN:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, tgn: TypeGraphNodeNode] RETURNS[temp0: LocalContextNode] =
BEGIN
tree:	IdListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	IdListmoreProdData _ NARROW[tree.data];
BEGIN
localContext1:	LocalContextNode;
localContext1 _ AppendElementToEnumTypeTGN[localContext, tgn, treeData.Id, MakeUnparsedNullValue[]];
temp0 _ treeData.IdList.procs.AddVariantNamesToEnumTypeTGN[treeData.IdList, localContext1, tgn];
END;
END
END;

IdListmoreProdAddNamesToUnionList:	PUBLIC PROC[ref: REF ANY, ffl: FrozenFieldListNode, unionList: UnionListNode] RETURNS[temp0: UnionListNode] =
BEGIN
tree:	IdListNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	IdListmoreProdData _ NARROW[tree.data];
BEGIN
unionList1:	UnionListNode;
unionList1 _ AppendToUnionList[unionList, treeData.Id, ffl];
temp0 _ treeData.IdList.procs.AddNamesToUnionList[treeData.IdList, ffl, unionList1];
END;
END
END;

TagidentProdGetSequenceTagInfo:	PUBLIC PROC[ref: REF ANY, cs: CompilerStateNode] RETURNS[temp0: IdNode, temp1: PositionValNode, temp2: AccessValNode] =
BEGIN
tree:	TagNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	TagidentProdData _ NARROW[tree.data];
temp2 _ treeData.Access.procs.GetAccessVal[treeData.Access, GetDefaultAccess[cs]];
[temp0, temp1] _ treeData.Ident.procs.GetIdentInfo[treeData.Ident];
END
END;

TagidentProdMakeTagType:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode, temp2: BOOLEAN] =
BEGIN
tree:	TagNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	TagidentProdData _ NARROW[tree.data];
[temp0, temp1, temp2] _ treeData.TagType.procs.MakeTagType[treeData.TagType, localContext, paintRecords, cs];
END
END;

TagidentProdMakeVariantFlavor:	PUBLIC PROC[ref: REF ANY, cs: CompilerStateNode] RETURNS[temp0: VariantFlavorNode] =
BEGIN
tree:	TagNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	TagidentProdData _ NARROW[tree.data];
temp1: IdNode;
temp2: PositionValNode;
[temp1, temp2] _ treeData.Ident.procs.GetIdentInfo[treeData.Ident];
temp0 _ VanillaVariantFlavorVal[temp1, temp2, treeData.Access.procs.GetAccessVal[treeData.Access, GetDefaultAccess[cs]]];
END
END;

TagcomputedProdGetSequenceTagInfo:	PUBLIC PROC[ref: REF ANY, cs: CompilerStateNode] RETURNS[temp0: IdNode, temp1: PositionValNode, temp2: AccessValNode] =
BEGIN
tree:	TagNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	TagcomputedProdData _ NARROW[tree.data];
temp2 _ AccessValConst["empty"];
temp1 _ NullPosition[];
temp0 _ NullId[];
END
END;

TagcomputedProdMakeTagType:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode, temp2: BOOLEAN] =
BEGIN
tree:	TagNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	TagcomputedProdData _ NARROW[tree.data];
[temp0, temp1, temp2] _ treeData.TagType.procs.MakeTagType[treeData.TagType, localContext, paintRecords, cs];
END
END;

TagcomputedProdMakeVariantFlavor:	PUBLIC PROC[ref: REF ANY, cs: CompilerStateNode] RETURNS[temp0: VariantFlavorNode] =
BEGIN
tree:	TagNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	TagcomputedProdData _ NARROW[tree.data];
temp0 _ ComputedVariantFlavorConst[];
END
END;

TagoverlaidProdGetSequenceTagInfo:	PUBLIC PROC[ref: REF ANY, cs: CompilerStateNode] RETURNS[temp0: IdNode, temp1: PositionValNode, temp2: AccessValNode] =
BEGIN
tree:	TagNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	TagoverlaidProdData _ NARROW[tree.data];
BEGIN
x:	BOOLEAN;
x _ Error["Sequences can't be overlaid"];
temp2 _ AccessValConst["empty"];
temp1 _ NullPosition[];
temp0 _ NullId[];
END;
END
END;

TagoverlaidProdMakeTagType:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode, temp2: BOOLEAN] =
BEGIN
tree:	TagNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	TagoverlaidProdData _ NARROW[tree.data];
[temp0, temp1, temp2] _ treeData.TagType.procs.MakeTagType[treeData.TagType, localContext, paintRecords, cs];
END
END;

TagoverlaidProdMakeVariantFlavor:	PUBLIC PROC[ref: REF ANY, cs: CompilerStateNode] RETURNS[temp0: VariantFlavorNode] =
BEGIN
tree:	TagNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	TagoverlaidProdData _ NARROW[tree.data];
temp0 _ OverlaidVariantFlavorConst[];
END
END;

TagTypestarProdMakeTagType:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode, temp2: BOOLEAN] =
BEGIN
tree:	TagTypeNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
BEGIN
localContext1:	LocalContextNode;
localContext1 _ FakeDamageContext[localContext];
temp2 _ True[];
temp1 _ GetBottom[cs];
temp0 _ localContext1;
END;
END
END;

TagTypetypeexpProdMakeTagType:	PUBLIC PROC[ref: REF ANY, localContext: LocalContextNode, paintRecords: BOOLEAN, cs: CompilerStateNode] RETURNS[temp0: LocalContextNode, temp1: TypeGraphNodeNode, temp2: BOOLEAN] =
BEGIN
tree:	TagTypeNode_ NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData:	TagTypetypeexpProdData _ NARROW[tree.data];
temp2 _ False[];
[temp0, temp1] _ treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext, paintRecords, cs];
END
END;

END..