DIRECTORY AbstractTypesDef, WartDef, AbstractProductionsDef; AbstractProductionsImpl: CEDAR PROGRAM IMPORTS AbstractProductionsDef EXPORTS AbstractProductionsDef= BEGIN OPEN AbstractTypesDef, WartDef, AbstractProductionsDef; ProgramProdProcs: PUBLIC ProgramNodeProcs _ NEW[ProgramNodeProcsBody _ [ProgramProdMakeSymbolTable]]; BuildProgramProdNode: PUBLIC PROC[position: INT, length: INT, identifier: identifierNode, numberDprogno: numberDNode, numberDverno: numberDNode, ReferencedProgramList: ReferencedProgramListNode, DeclarationList: DeclarationListNode] RETURNS[ProgramNode] = BEGIN data: ProgramProdData _ NEW[ProgramProdDataBody_[ identifier, numberDprogno, numberDverno, ReferencedProgramList, DeclarationList]]; RETURN[NEW[ProgramNodeBody_[position, length, ProgramProdProcs, data]]]; END; ReferencedProgramListemptyProdProcs: PUBLIC ReferencedProgramListNodeProcs _ NEW[ReferencedProgramListNodeProcsBody _ [ReferencedProgramListemptyProdReadInTable]]; BuildReferencedProgramListemptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[ReferencedProgramListNode] = BEGIN RETURN[NEW[ReferencedProgramListNodeBody_[position, length, ReferencedProgramListemptyProdProcs, NIL]]]; END; ReferencedProgramListmoreProdProcs: PUBLIC ReferencedProgramListNodeProcs _ NEW[ReferencedProgramListNodeProcsBody _ [ReferencedProgramListmoreProdReadInTable]]; BuildReferencedProgramListmoreProdNode: PUBLIC PROC[position: INT, length: INT, ReferencedProgramList: ReferencedProgramListNode, ReferencedProgram: ReferencedProgramNode] RETURNS[ReferencedProgramListNode] = BEGIN data: ReferencedProgramListmoreProdData _ NEW[ReferencedProgramListmoreProdDataBody_[ ReferencedProgramList, ReferencedProgram]]; RETURN[NEW[ReferencedProgramListNodeBody_[position, length, ReferencedProgramListmoreProdProcs, data]]]; END; ReferencedProgramProdProcs: PUBLIC ReferencedProgramNodeProcs _ NEW[ReferencedProgramNodeProcsBody _ [ReferencedProgramProdReadInTable]]; BuildReferencedProgramProdNode: PUBLIC PROC[position: INT, length: INT, identifier: identifierNode, numberDprogno: numberDNode, numberDverno: numberDNode] RETURNS[ReferencedProgramNode] = BEGIN data: ReferencedProgramProdData _ NEW[ReferencedProgramProdDataBody_[ identifier, numberDprogno, numberDverno]]; RETURN[NEW[ReferencedProgramNodeBody_[position, length, ReferencedProgramProdProcs, data]]]; END; DeclarationListemptyProdProcs: PUBLIC DeclarationListNodeProcs _ NEW[DeclarationListNodeProcsBody _ [DeclarationListemptyProdBuildTable, DeclarationListemptyProdRecordNames]]; BuildDeclarationListemptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[DeclarationListNode] = BEGIN RETURN[NEW[DeclarationListNodeBody_[position, length, DeclarationListemptyProdProcs, NIL]]]; END; DeclarationListmoreProdProcs: PUBLIC DeclarationListNodeProcs _ NEW[DeclarationListNodeProcsBody _ [DeclarationListmoreProdBuildTable, DeclarationListmoreProdRecordNames]]; 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; DeclarationtypeProdProcs: PUBLIC DeclarationNodeProcs _ NEW[DeclarationNodeProcsBody _ [DeclarationtypeProdBuildTable, DeclarationtypeProdRecordNames]]; BuildDeclarationtypeProdNode: PUBLIC PROC[position: INT, length: INT, identifier: identifierNode, Type: TypeNode] RETURNS[DeclarationNode] = BEGIN data: DeclarationtypeProdData _ NEW[DeclarationtypeProdDataBody_[ identifier, Type]]; RETURN[NEW[DeclarationNodeBody_[position, length, DeclarationtypeProdProcs, data]]]; END; DeclarationconstantProdProcs: PUBLIC DeclarationNodeProcs _ NEW[DeclarationNodeProcsBody _ [DeclarationconstantProdBuildTable, DeclarationconstantProdRecordNames]]; BuildDeclarationconstantProdNode: PUBLIC PROC[position: INT, length: INT, identifier: identifierNode, Type: TypeNode, Constant: ConstantNode] RETURNS[DeclarationNode] = BEGIN data: DeclarationconstantProdData _ NEW[DeclarationconstantProdDataBody_[ identifier, Type, Constant]]; RETURN[NEW[DeclarationNodeBody_[position, length, DeclarationconstantProdProcs, data]]]; END; TypearrayProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypearrayProdCanonicaliseType]]; 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; TypebooleanProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypebooleanProdCanonicaliseType]]; BuildTypebooleanProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[TypeNode] = BEGIN RETURN[NEW[TypeNodeBody_[position, length, TypebooleanProdProcs, NIL]]]; END; TypebulkDataSinkProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypebulkDataSinkProdCanonicaliseType]]; BuildTypebulkDataSinkProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[TypeNode] = BEGIN RETURN[NEW[TypeNodeBody_[position, length, TypebulkDataSinkProdProcs, NIL]]]; END; TypebulkDataSourceProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypebulkDataSourceProdCanonicaliseType]]; BuildTypebulkDataSourceProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[TypeNode] = BEGIN RETURN[NEW[TypeNodeBody_[position, length, TypebulkDataSourceProdProcs, NIL]]]; END; TypecardinalProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypecardinalProdCanonicaliseType]]; BuildTypecardinalProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[TypeNode] = BEGIN RETURN[NEW[TypeNodeBody_[position, length, TypecardinalProdProcs, NIL]]]; END; TypechoiceProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypechoiceProdCanonicaliseType]]; BuildTypechoiceProdNode: PUBLIC PROC[position: INT, length: INT, Type: TypeNode, CandidateList: CandidateListNode] RETURNS[TypeNode] = BEGIN data: TypechoiceProdData _ NEW[TypechoiceProdDataBody_[ Type, CandidateList]]; RETURN[NEW[TypeNodeBody_[position, length, TypechoiceProdProcs, data]]]; END; TypeemptyRecordProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypeemptyRecordProdCanonicaliseType]]; BuildTypeemptyRecordProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[TypeNode] = BEGIN RETURN[NEW[TypeNodeBody_[position, length, TypeemptyRecordProdProcs, NIL]]]; END; TypeenumerationProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypeenumerationProdCanonicaliseType]]; BuildTypeenumerationProdNode: PUBLIC PROC[position: INT, length: INT, CorrespondenceList: CorrespondenceListNode] RETURNS[TypeNode] = BEGIN data: TypeenumerationProdData _ NEW[TypeenumerationProdDataBody_[ CorrespondenceList]]; RETURN[NEW[TypeNodeBody_[position, length, TypeenumerationProdProcs, data]]]; END; TypeerrorProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypeerrorProdCanonicaliseType]]; 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; TypeintegerProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypeintegerProdCanonicaliseType]]; BuildTypeintegerProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[TypeNode] = BEGIN RETURN[NEW[TypeNodeBody_[position, length, TypeintegerProdProcs, NIL]]]; END; TypelocalReferenceProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypelocalReferenceProdCanonicaliseType]]; BuildTypelocalReferenceProdNode: PUBLIC PROC[position: INT, length: INT, identifier: identifierNode] RETURNS[TypeNode] = BEGIN data: TypelocalReferenceProdData _ NEW[TypelocalReferenceProdDataBody_[ identifier]]; RETURN[NEW[TypeNodeBody_[position, length, TypelocalReferenceProdProcs, data]]]; END; TypelongCardinalProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypelongCardinalProdCanonicaliseType]]; BuildTypelongCardinalProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[TypeNode] = BEGIN RETURN[NEW[TypeNodeBody_[position, length, TypelongCardinalProdProcs, NIL]]]; END; TypelongIntegerProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypelongIntegerProdCanonicaliseType]]; BuildTypelongIntegerProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[TypeNode] = BEGIN RETURN[NEW[TypeNodeBody_[position, length, TypelongIntegerProdProcs, NIL]]]; END; TypeprocedureProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypeprocedureProdCanonicaliseType]]; BuildTypeprocedureProdNode: PUBLIC PROC[position: INT, length: INT, FieldListarg: FieldListNode, FieldListres: FieldListNode, NameList: NameListNode] RETURNS[TypeNode] = BEGIN data: TypeprocedureProdData _ NEW[TypeprocedureProdDataBody_[ FieldListarg, FieldListres, NameList]]; RETURN[NEW[TypeNodeBody_[position, length, TypeprocedureProdProcs, data]]]; END; TyperecordProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TyperecordProdCanonicaliseType]]; 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; TyperemoteReferenceProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TyperemoteReferenceProdCanonicaliseType]]; BuildTyperemoteReferenceProdNode: PUBLIC PROC[position: INT, length: INT, identifiera: identifierNode, identifierb: identifierNode] RETURNS[TypeNode] = BEGIN data: TyperemoteReferenceProdData _ NEW[TyperemoteReferenceProdDataBody_[ identifiera, identifierb]]; RETURN[NEW[TypeNodeBody_[position, length, TyperemoteReferenceProdProcs, data]]]; END; TypesequenceProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypesequenceProdCanonicaliseType]]; BuildTypesequenceProdNode: PUBLIC PROC[position: INT, length: INT, Constant: ConstantNode, Type: TypeNode] RETURNS[TypeNode] = BEGIN data: TypesequenceProdData _ NEW[TypesequenceProdDataBody_[ Constant, Type]]; RETURN[NEW[TypeNodeBody_[position, length, TypesequenceProdProcs, data]]]; END; TypestringProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypestringProdCanonicaliseType]]; BuildTypestringProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[TypeNode] = BEGIN RETURN[NEW[TypeNodeBody_[position, length, TypestringProdProcs, NIL]]]; END; TypeunspecifiedProdProcs: PUBLIC TypeNodeProcs _ NEW[TypeNodeProcsBody _ [TypeunspecifiedProdCanonicaliseType]]; BuildTypeunspecifiedProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[TypeNode] = BEGIN RETURN[NEW[TypeNodeBody_[position, length, TypeunspecifiedProdProcs, NIL]]]; END; CorrespondenceListoneProdProcs: PUBLIC CorrespondenceListNodeProcs _ NEW[CorrespondenceListNodeProcsBody _ [CorrespondenceListoneProdCanonicaliseCorrespondenceList, CorrespondenceListoneProdCheckCorrespondenceList]]; BuildCorrespondenceListoneProdNode: PUBLIC PROC[position: INT, length: INT, identifier: identifierNode, Constant: ConstantNode] RETURNS[CorrespondenceListNode] = BEGIN data: CorrespondenceListoneProdData _ NEW[CorrespondenceListoneProdDataBody_[ identifier, Constant]]; RETURN[NEW[CorrespondenceListNodeBody_[position, length, CorrespondenceListoneProdProcs, data]]]; END; CorrespondenceListmoreProdProcs: PUBLIC CorrespondenceListNodeProcs _ NEW[CorrespondenceListNodeProcsBody _ [CorrespondenceListmoreProdCanonicaliseCorrespondenceList, CorrespondenceListmoreProdCheckCorrespondenceList]]; BuildCorrespondenceListmoreProdNode: PUBLIC PROC[position: INT, length: INT, CorrespondenceListvalue: CorrespondenceListNode, CorrespondenceListnext: CorrespondenceListNode] RETURNS[CorrespondenceListNode] = BEGIN data: CorrespondenceListmoreProdData _ NEW[CorrespondenceListmoreProdDataBody_[ CorrespondenceListvalue, CorrespondenceListnext]]; RETURN[NEW[CorrespondenceListNodeBody_[position, length, CorrespondenceListmoreProdProcs, data]]]; END; CandidateListoneProdProcs: PUBLIC CandidateListNodeProcs _ NEW[CandidateListNodeProcsBody _ [CandidateListoneProdCanonicaliseCandidateList, CandidateListoneProdEmptyWorkTableOfNames]]; BuildCandidateListoneProdNode: PUBLIC PROC[position: INT, length: INT, NameList: NameListNode, Type: TypeNode] RETURNS[CandidateListNode] = BEGIN data: CandidateListoneProdData _ NEW[CandidateListoneProdDataBody_[ NameList, Type]]; RETURN[NEW[CandidateListNodeBody_[position, length, CandidateListoneProdProcs, data]]]; END; CandidateListmoreProdProcs: PUBLIC CandidateListNodeProcs _ NEW[CandidateListNodeProcsBody _ [CandidateListmoreProdCanonicaliseCandidateList, CandidateListmoreProdEmptyWorkTableOfNames]]; BuildCandidateListmoreProdNode: PUBLIC PROC[position: INT, length: INT, CandidateListvalue: CandidateListNode, CandidateListnext: CandidateListNode] RETURNS[CandidateListNode] = BEGIN data: CandidateListmoreProdData _ NEW[CandidateListmoreProdDataBody_[ CandidateListvalue, CandidateListnext]]; RETURN[NEW[CandidateListNodeBody_[position, length, CandidateListmoreProdProcs, data]]]; END; FieldListemptyProdProcs: PUBLIC FieldListNodeProcs _ NEW[FieldListNodeProcsBody _ [FieldListemptyProdCanonicaliseFieldList]]; BuildFieldListemptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[FieldListNode] = BEGIN RETURN[NEW[FieldListNodeBody_[position, length, FieldListemptyProdProcs, NIL]]]; END; FieldListoneProdProcs: PUBLIC FieldListNodeProcs _ NEW[FieldListNodeProcsBody _ [FieldListoneProdCanonicaliseFieldList]]; 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; FieldListmoreProdProcs: PUBLIC FieldListNodeProcs _ NEW[FieldListNodeProcsBody _ [FieldListmoreProdCanonicaliseFieldList]]; 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; ConstantchoiceProdProcs: PUBLIC ConstantNodeProcs _ NEW[ConstantNodeProcsBody _ [ConstantchoiceProdCoerce, ConstantchoiceProdGetCARDINAL, ConstantchoiceProdConstantToRope]]; BuildConstantchoiceProdNode: PUBLIC PROC[position: INT, length: INT, identifier: identifierNode, Constant: ConstantNode] RETURNS[ConstantNode] = BEGIN data: ConstantchoiceProdData _ NEW[ConstantchoiceProdDataBody_[ identifier, Constant]]; RETURN[NEW[ConstantNodeBody_[position, length, ConstantchoiceProdProcs, data]]]; END; ConstantcomponentlistProdProcs: PUBLIC ConstantNodeProcs _ NEW[ConstantNodeProcsBody _ [ConstantcomponentlistProdCoerce, ConstantcomponentlistProdGetCARDINAL, ConstantcomponentlistProdConstantToRope]]; BuildConstantcomponentlistProdNode: PUBLIC PROC[position: INT, length: INT, ComponentList: ComponentListNode] RETURNS[ConstantNode] = BEGIN data: ConstantcomponentlistProdData _ NEW[ConstantcomponentlistProdDataBody_[ ComponentList]]; RETURN[NEW[ConstantNodeBody_[position, length, ConstantcomponentlistProdProcs, data]]]; END; ConstantelementListProdProcs: PUBLIC ConstantNodeProcs _ NEW[ConstantNodeProcsBody _ [ConstantelementListProdCoerce, ConstantelementListProdGetCARDINAL, ConstantelementListProdConstantToRope]]; BuildConstantelementListProdNode: PUBLIC PROC[position: INT, length: INT, ElementList: ElementListNode] RETURNS[ConstantNode] = BEGIN data: ConstantelementListProdData _ NEW[ConstantelementListProdDataBody_[ ElementList]]; RETURN[NEW[ConstantNodeBody_[position, length, ConstantelementListProdProcs, data]]]; END; ConstantemptyProdProcs: PUBLIC ConstantNodeProcs _ NEW[ConstantNodeProcsBody _ [ConstantemptyProdCoerce, ConstantemptyProdGetCARDINAL, ConstantemptyProdConstantToRope]]; BuildConstantemptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[ConstantNode] = BEGIN RETURN[NEW[ConstantNodeBody_[position, length, ConstantemptyProdProcs, NIL]]]; END; ConstantfalseProdProcs: PUBLIC ConstantNodeProcs _ NEW[ConstantNodeProcsBody _ [ConstantfalseProdCoerce, ConstantfalseProdGetCARDINAL, ConstantfalseProdConstantToRope]]; BuildConstantfalseProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[ConstantNode] = BEGIN RETURN[NEW[ConstantNodeBody_[position, length, ConstantfalseProdProcs, NIL]]]; END; ConstantidProdProcs: PUBLIC ConstantNodeProcs _ NEW[ConstantNodeProcsBody _ [ConstantidProdCoerce, ConstantidProdGetCARDINAL, ConstantidProdConstantToRope]]; BuildConstantidProdNode: PUBLIC PROC[position: INT, length: INT, identifier: identifierNode] RETURNS[ConstantNode] = BEGIN data: ConstantidProdData _ NEW[ConstantidProdDataBody_[ identifier]]; RETURN[NEW[ConstantNodeBody_[position, length, ConstantidProdProcs, data]]]; END; ConstantnegativeNumberProdProcs: PUBLIC ConstantNodeProcs _ NEW[ConstantNodeProcsBody _ [ConstantnegativeNumberProdCoerce, ConstantnegativeNumberProdGetCARDINAL, ConstantnegativeNumberProdConstantToRope]]; BuildConstantnegativeNumberProdNode: PUBLIC PROC[position: INT, length: INT, number: numberNode] RETURNS[ConstantNode] = BEGIN data: ConstantnegativeNumberProdData _ NEW[ConstantnegativeNumberProdDataBody_[ number]]; RETURN[NEW[ConstantNodeBody_[position, length, ConstantnegativeNumberProdProcs, data]]]; END; ConstantnumberProdProcs: PUBLIC ConstantNodeProcs _ NEW[ConstantNodeProcsBody _ [ConstantnumberProdCoerce, ConstantnumberProdGetCARDINAL, ConstantnumberProdConstantToRope]]; 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; ConstantremoteReferenceProdProcs: PUBLIC ConstantNodeProcs _ NEW[ConstantNodeProcsBody _ [ConstantremoteReferenceProdCoerce, ConstantremoteReferenceProdGetCARDINAL, ConstantremoteReferenceProdConstantToRope]]; BuildConstantremoteReferenceProdNode: PUBLIC PROC[position: INT, length: INT, identifierleft: identifierNode, identifierright: identifierNode] RETURNS[ConstantNode] = BEGIN data: ConstantremoteReferenceProdData _ NEW[ConstantremoteReferenceProdDataBody_[ identifierleft, identifierright]]; RETURN[NEW[ConstantNodeBody_[position, length, ConstantremoteReferenceProdProcs, data]]]; END; ConstantstringProdProcs: PUBLIC ConstantNodeProcs _ NEW[ConstantNodeProcsBody _ [ConstantstringProdCoerce, ConstantstringProdGetCARDINAL, ConstantstringProdConstantToRope]]; 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; ConstanttrueProdProcs: PUBLIC ConstantNodeProcs _ NEW[ConstantNodeProcsBody _ [ConstanttrueProdCoerce, ConstanttrueProdGetCARDINAL, ConstanttrueProdConstantToRope]]; BuildConstanttrueProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[ConstantNode] = BEGIN RETURN[NEW[ConstantNodeBody_[position, length, ConstanttrueProdProcs, NIL]]]; END; ConstantunboundedProdProcs: PUBLIC ConstantNodeProcs _ NEW[ConstantNodeProcsBody _ [ConstantunboundedProdCoerce, ConstantunboundedProdGetCARDINAL, ConstantunboundedProdConstantToRope]]; BuildConstantunboundedProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[ConstantNode] = BEGIN RETURN[NEW[ConstantNodeBody_[position, length, ConstantunboundedProdProcs, NIL]]]; END; ElementListoneProdProcs: PUBLIC ElementListNodeProcs _ NEW[ElementListNodeProcsBody _ [ElementListoneProdCoerceElementList, ElementListoneProdConstantToRope, ElementListoneProdSize, ElementListoneProdConstructFunction]]; BuildElementListoneProdNode: PUBLIC PROC[position: INT, length: INT, Constant: ConstantNode] RETURNS[ElementListNode] = BEGIN data: ElementListoneProdData _ NEW[ElementListoneProdDataBody_[ Constant]]; RETURN[NEW[ElementListNodeBody_[position, length, ElementListoneProdProcs, data]]]; END; ElementListmoreProdProcs: PUBLIC ElementListNodeProcs _ NEW[ElementListNodeProcsBody _ [ElementListmoreProdCoerceElementList, ElementListmoreProdConstantToRope, ElementListmoreProdSize, ElementListmoreProdConstructFunction]]; BuildElementListmoreProdNode: PUBLIC PROC[position: INT, length: INT, Constant: ConstantNode, ElementList: ElementListNode] RETURNS[ElementListNode] = BEGIN data: ElementListmoreProdData _ NEW[ElementListmoreProdDataBody_[ Constant, ElementList]]; RETURN[NEW[ElementListNodeBody_[position, length, ElementListmoreProdProcs, data]]]; END; ComponentListoneProdProcs: PUBLIC ComponentListNodeProcs _ NEW[ComponentListNodeProcsBody _ [ComponentListoneProdCoerceComponents, ComponentListoneProdConstantToRope, ComponentListoneProdCheckAllNames]]; BuildComponentListoneProdNode: PUBLIC PROC[position: INT, length: INT, Component: ComponentNode] RETURNS[ComponentListNode] = BEGIN data: ComponentListoneProdData _ NEW[ComponentListoneProdDataBody_[ Component]]; RETURN[NEW[ComponentListNodeBody_[position, length, ComponentListoneProdProcs, data]]]; END; ComponentListmoreProdProcs: PUBLIC ComponentListNodeProcs _ NEW[ComponentListNodeProcsBody _ [ComponentListmoreProdCoerceComponents, ComponentListmoreProdConstantToRope, ComponentListmoreProdCheckAllNames]]; BuildComponentListmoreProdNode: PUBLIC PROC[position: INT, length: INT, Component: ComponentNode, ComponentList: ComponentListNode] RETURNS[ComponentListNode] = BEGIN data: ComponentListmoreProdData _ NEW[ComponentListmoreProdDataBody_[ Component, ComponentList]]; RETURN[NEW[ComponentListNodeBody_[position, length, ComponentListmoreProdProcs, data]]]; END; ComponentProdProcs: PUBLIC ComponentNodeProcs _ NEW[ComponentNodeProcsBody _ [ComponentProdCoerceComponents, ComponentProdConstantToRope, ComponentProdCheckAllNames]]; BuildComponentProdNode: PUBLIC PROC[position: INT, length: INT, NameList: NameListNode, Constant: ConstantNode] RETURNS[ComponentNode] = BEGIN data: ComponentProdData _ NEW[ComponentProdDataBody_[ NameList, Constant]]; RETURN[NEW[ComponentNodeBody_[position, length, ComponentProdProcs, data]]]; END; NameListemptyProdProcs: PUBLIC NameListNodeProcs _ NEW[NameListNodeProcsBody _ [NameListemptyProdCheckIfErrorNames, NameListemptyProdCanonicaliseFieldsFromNameList, NameListemptyProdCoerceComponentNameList, NameListemptyProdNameListToRope, NameListemptyProdEmptyWorkTableOfNames, NameListemptyProdTypeOfNameList]]; BuildNameListemptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[NameListNode] = BEGIN RETURN[NEW[NameListNodeBody_[position, length, NameListemptyProdProcs, NIL]]]; END; NameListoneProdProcs: PUBLIC NameListNodeProcs _ NEW[NameListNodeProcsBody _ [NameListoneProdCheckIfErrorNames, NameListoneProdCanonicaliseFieldsFromNameList, NameListoneProdCoerceComponentNameList, NameListoneProdNameListToRope, NameListoneProdEmptyWorkTableOfNames, NameListoneProdTypeOfNameList]]; BuildNameListoneProdNode: PUBLIC PROC[position: INT, length: INT, identifier: identifierNode] RETURNS[NameListNode] = BEGIN data: NameListoneProdData _ NEW[NameListoneProdDataBody_[ identifier]]; RETURN[NEW[NameListNodeBody_[position, length, NameListoneProdProcs, data]]]; END; NameListmoreProdProcs: PUBLIC NameListNodeProcs _ NEW[NameListNodeProcsBody _ [NameListmoreProdCheckIfErrorNames, NameListmoreProdCanonicaliseFieldsFromNameList, NameListmoreProdCoerceComponentNameList, NameListmoreProdNameListToRope, NameListmoreProdEmptyWorkTableOfNames, NameListmoreProdTypeOfNameList]]; BuildNameListmoreProdNode: PUBLIC PROC[position: INT, length: INT, identifier: identifierNode, NameList: NameListNode] RETURNS[NameListNode] = BEGIN data: NameListmoreProdData _ NEW[NameListmoreProdDataBody_[ identifier, NameList]]; RETURN[NEW[NameListNodeBody_[position, length, NameListmoreProdProcs, data]]]; END; numberdecimalProdProcs: PUBLIC numberNodeProcs _ NEW[numberNodeProcsBody _ [numberdecimalProdGetCARDINAL, numberdecimalProdNumberToCard]]; BuildnumberdecimalProdNode: PUBLIC PROC[position: INT, length: INT, numberD: numberDNode] RETURNS[numberNode] = BEGIN data: numberdecimalProdData _ NEW[numberdecimalProdDataBody_[ numberD]]; RETURN[NEW[numberNodeBody_[position, length, numberdecimalProdProcs, data]]]; END; numberhexProdProcs: PUBLIC numberNodeProcs _ NEW[numberNodeProcsBody _ [numberhexProdGetCARDINAL, numberhexProdNumberToCard]]; BuildnumberhexProdNode: PUBLIC PROC[position: INT, length: INT, numberH: numberHNode] RETURNS[numberNode] = BEGIN data: numberhexProdData _ NEW[numberhexProdDataBody_[ numberH]]; RETURN[NEW[numberNodeBody_[position, length, numberhexProdProcs, data]]]; END; numberoctalProdProcs: PUBLIC numberNodeProcs _ NEW[numberNodeProcsBody _ [numberoctalProdGetCARDINAL, numberoctalProdNumberToCard]]; BuildnumberoctalProdNode: PUBLIC PROC[position: INT, length: INT, numberO: numberONode] RETURNS[numberNode] = BEGIN data: numberoctalProdData _ NEW[numberoctalProdDataBody_[ numberO]]; RETURN[NEW[numberNodeBody_[position, length, numberoctalProdProcs, data]]]; END; END.. tProgramProd ReferencedProgramListemptyProd ReferencedProgramListmoreProd ReferencedProgramProd DeclarationListemptyProd DeclarationListmoreProd DeclarationtypeProd DeclarationconstantProd TypearrayProd TypebooleanProd TypebulkDataSinkProd TypebulkDataSourceProd TypecardinalProd TypechoiceProd TypeemptyRecordProd TypeenumerationProd TypeerrorProd TypeintegerProd TypelocalReferenceProd TypelongCardinalProd TypelongIntegerProd TypeprocedureProd TyperecordProd TyperemoteReferenceProd TypesequenceProd TypestringProd TypeunspecifiedProd CorrespondenceListoneProd CorrespondenceListmoreProd CandidateListoneProd CandidateListmoreProd FieldListemptyProd FieldListoneProd FieldListmoreProd ConstantchoiceProd ConstantcomponentlistProd ConstantelementListProd ConstantemptyProd ConstantfalseProd ConstantidProd ConstantnegativeNumberProd ConstantnumberProd ConstantremoteReferenceProd ConstantstringProd ConstanttrueProd ConstantunboundedProd ElementListoneProd ElementListmoreProd ComponentListoneProd ComponentListmoreProd ComponentProd NameListemptyProd NameListoneProd NameListmoreProd numberdecimalProd numberhexProd numberoctalProd �ÊĘšÏk ˜ J˜J˜J˜—J˜Jš Ïnœ�œ�œ�œ�œ˜fJš�˜Jš�œ3˜7J˜Jšœ ™ J˜šžœ�œ˜+Jš�œ6˜9—J˜šžœ�œ�œ �œ �œUžœžœ˜èš�œ˜Jš�˜˜Jš�œ˜J˜R—Jš�œ�œ>˜HJš�œ˜——J˜J˜Jšœ™J˜šž#œ�œ!˜LJš�œS˜V—J˜š ž'œ�œ�œ �œ �œ˜Pš�œ˜$Jš�˜Jš�œ�œW�œ˜hJš�œ˜——J˜J˜Jšœ™J˜šž"œ�œ!˜KJš�œR˜U—J˜šž&œ�œ�œ �œ �œžœžœ˜«š�œ˜$Jš�˜˜)Jš�œ(˜+J˜+—Jš�œ�œ^˜hJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜?Jš�œF˜I—J˜š žœ�œ�œ �œ �œT˜šš�œ˜ Jš�˜˜!Jš�œ ˜#J˜*—Jš�œ�œR˜\Jš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜@Jš�œk˜n—J˜š ž!œ�œ�œ �œ �œ˜Jš�œ˜Jš�˜Jš�œ�œK�œ˜\Jš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜?Jš�œi˜l—J˜šž œ�œ�œ �œ �œžœž œ˜�š�œ˜Jš�˜˜#Jš�œ"˜%J˜—Jš�œ�œR˜\Jš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜7Jš�œ]˜`—J˜š žœ�œ�œ �œ �œžœ ˜qš�œ˜Jš�˜˜Jš�œ˜!J˜—Jš�œ�œJ˜TJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜;Jš�œe˜h—J˜šž œ�œ�œ �œ �œžœ žœ˜�š�œ˜Jš�˜˜#Jš�œ"˜%J˜—Jš�œ�œN˜XJš�œ˜——J˜J˜Jšœ ™ J˜šžœ�œ˜*Jš�œ6˜9—J˜šžœ�œ�œ �œ �œžœžœ ˜gš�œ ˜Jš�˜˜Jš�œ˜J˜—Jš�œ�œ=˜GJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜,Jš�œ8˜;—J˜š žœ�œ�œ �œ �œ˜Aš�œ ˜Jš�˜Jš�œ�œ7�œ˜HJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜1Jš�œ=˜@—J˜š žœ�œ�œ �œ �œ˜Fš�œ ˜Jš�˜Jš�œ�œ<�œ˜MJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜3Jš�œ?˜B—J˜š žœ�œ�œ �œ �œ˜Hš�œ ˜Jš�˜Jš�œ�œ>�œ˜OJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜-Jš�œ9˜<—J˜š žœ�œ�œ �œ �œ˜Bš�œ ˜Jš�˜Jš�œ�œ8�œ˜IJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜+Jš�œ7˜:—J˜šžœ�œ�œ �œ �œžœ ž œ˜rš�œ ˜Jš�˜˜Jš�œ˜J˜—Jš�œ�œ>˜HJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜0Jš�œ<˜?—J˜š žœ�œ�œ �œ �œ˜Eš�œ ˜Jš�˜Jš�œ�œ;�œ˜LJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜0Jš�œ<˜?—J˜š žœ�œ�œ �œ �œžœ˜qš�œ ˜Jš�˜˜Jš�œ˜!J˜—Jš�œ�œC˜MJš�œ˜——J˜J˜Jšœ ™ J˜šžœ�œ˜*Jš�œ6˜9—J˜š žœ�œ�œ �œ �œž œ˜Yš�œ ˜Jš�˜˜Jš�œ˜J˜ —Jš�œ�œ=˜GJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜,Jš�œ8˜;—J˜š žœ�œ�œ �œ �œ˜Aš�œ ˜Jš�˜Jš�œ�œ7�œ˜HJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜3Jš�œ?˜B—J˜š žœ�œ�œ �œ �œ˜dš�œ ˜Jš�˜˜"Jš�œ!˜$J˜ —Jš�œ�œF˜PJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜1Jš�œ=˜@—J˜š žœ�œ�œ �œ �œ˜Fš�œ ˜Jš�˜Jš�œ�œ<�œ˜MJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜0Jš�œ<˜?—J˜š žœ�œ�œ �œ �œ˜Eš�œ ˜Jš�˜Jš�œ�œ;�œ˜LJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜.Jš�œ:˜=—J˜šžœ�œ�œ �œ �œž œž œžœ˜•š�œ ˜Jš�˜˜Jš�œ˜J˜'—Jš�œ�œA˜KJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜+Jš�œ7˜:—J˜š žœ�œ�œ �œ �œž œ˜Zš�œ ˜Jš�˜˜Jš�œ˜J˜ —Jš�œ�œ>˜HJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜4Jš�œ@˜C—J˜š ž œ�œ�œ �œ �œ;˜ƒš�œ ˜Jš�˜˜#Jš�œ"˜%J˜—Jš�œ�œG˜QJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜-Jš�œ9˜<—J˜šžœ�œ�œ �œ �œžœžœ ˜jš�œ ˜Jš�˜˜Jš�œ˜J˜—Jš�œ�œ@˜JJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜+Jš�œ7˜:—J˜š žœ�œ�œ �œ �œ˜@š�œ ˜Jš�˜Jš�œ�œ6�œ˜GJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜0Jš�œ<˜?—J˜š žœ�œ�œ �œ �œ˜Eš�œ ˜Jš�˜Jš�œ�œ;�œ˜LJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜DJš�œ�˜“—J˜š ž"œ�œ�œ �œ �œžœ˜š�œ˜!Jš�˜˜%Jš�œ$˜'J˜—Jš�œ�œW˜aJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜EJš�œ’˜•—J˜šž#œ�œ�œ �œ �œžœžœ˜­š�œ˜!Jš�˜˜&Jš�œ%˜(J˜2—Jš�œ�œX˜bJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜:Jš�œz˜}—J˜šžœ�œ�œ �œ �œžœžœ ˜nš�œ˜Jš�˜˜ Jš�œ˜"J˜—Jš�œ�œM˜WJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜;Jš�œ|˜—J˜šžœ�œ�œ �œ �œžœžœ˜”š�œ˜Jš�˜˜!Jš�œ ˜#J˜(—Jš�œ�œN˜XJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜4Jš�œE˜H—J˜š žœ�œ�œ �œ �œ˜Dš�œ˜Jš�˜Jš�œ�œ?�œ˜PJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜2Jš�œC˜F—J˜šžœ�œ�œ �œ �œžœžœ ˜jš�œ˜Jš�˜˜Jš�œ˜J˜—Jš�œ�œE˜OJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜3Jš�œD˜G—J˜šžœ�œ�œ �œ �œžœž œ˜€š�œ˜Jš�˜˜Jš�œ˜J˜ —Jš�œ�œF˜PJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜3Jš�œv˜y—J˜š žœ�œ�œ �œ �œžœ˜xš�œ˜Jš�˜˜Jš�œ˜ J˜—Jš�œ�œF˜PJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜:Jš�œ‹˜Ž—J˜š ž"œ�œ�œ �œ �œž œ˜mš�œ˜Jš�˜˜%Jš�œ$˜'J˜—Jš�œ�œM˜WJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜8Jš�œ…˜ˆ—J˜š ž œ�œ�œ �œ �œž œ˜gš�œ˜Jš�˜˜#Jš�œ"˜%J˜—Jš�œ�œK˜UJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜2Jš�œs˜v—J˜š žœ�œ�œ �œ �œ˜Cš�œ˜Jš�˜Jš�œ�œ=�œ˜NJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜2Jš�œs˜v—J˜š žœ�œ�œ �œ �œ˜Cš�œ˜Jš�˜Jš�œ�œ=�œ˜NJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜/Jš�œj˜m—J˜š žœ�œ�œ �œ �œ˜\š�œ˜Jš�˜˜Jš�œ˜J˜ —Jš�œ�œB˜LJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜;Jš�œŽ˜‘—J˜š ž#œ�œ�œ �œ �œ˜`š�œ˜Jš�˜˜&Jš�œ%˜(J˜ —Jš�œ�œN˜XJš�œ˜——J˜J˜Jšœ™J˜šžœ�œ˜3Jš�œv˜y—J˜š žœ�œ�œ �œ �œ˜Xš�œ˜Jš�˜˜Jš�œ˜ J˜ —Jš�œ�œF˜PJš�œ˜——J˜J˜Jšœ™J˜šž œ�œ˜