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˜šž œœ˜