DIRECTORY ThreeC4BaseDecl1Def, ThreeC4BasicAbTypesDef, ThreeC4ModItemAbGramDef; ThreeC4ModItemAbGramImpl: CEDAR PROGRAM IMPORTS ThreeC4ModItemAbGramDef EXPORTS ThreeC4ModItemAbGramDef= BEGIN OPEN ThreeC4BaseDecl1Def, ThreeC4BasicAbTypesDef, ThreeC4ModItemAbGramDef; -- ModuleItemcedarItemsProd ModuleItemcedarItemsProdProcs: PUBLIC ModuleItemNodeProcs ← NEW[ModuleItemNodeProcsBody ← [ModuleItemcedarItemsProdCollectModuleValueTypes, ModuleItemcedarItemsProdCollectModuleFunctionTypes, ModuleItemcedarItemsProdCollectProductions, ModuleItemcedarItemsProdCollectRightSideSymbols, ModuleItemcedarItemsProdDefFileCode, ModuleItemcedarItemsProdImplFileCode, ModuleItemcedarItemsProdLinkFileCode, ModuleItemcedarItemsProdSyntaxFileCodes, ModuleItemcedarItemsProdTestLinkPresent]]; BuildModuleItemcedarItemsProdNode: PUBLIC PROC[position: INT, length: INT, CedarItems: CedarItemsNode] RETURNS[ModuleItemNode] = BEGIN data: ModuleItemcedarItemsProdData ← NEW[ModuleItemcedarItemsProdDataBody←[ CedarItems]]; RETURN[NEW[ModuleItemNodeBody←[position, length, ModuleItemcedarItemsProdProcs, data]]]; END; -- ModuleItembaseItemsProd ModuleItembaseItemsProdProcs: PUBLIC ModuleItemNodeProcs ← NEW[ModuleItemNodeProcsBody ← [ModuleItembaseItemsProdCollectModuleValueTypes, ModuleItembaseItemsProdCollectModuleFunctionTypes, ModuleItembaseItemsProdCollectProductions, ModuleItembaseItemsProdCollectRightSideSymbols, ModuleItembaseItemsProdDefFileCode, ModuleItembaseItemsProdImplFileCode, ModuleItembaseItemsProdLinkFileCode, ModuleItembaseItemsProdSyntaxFileCodes, ModuleItembaseItemsProdTestLinkPresent]]; BuildModuleItembaseItemsProdNode: PUBLIC PROC[position: INT, length: INT, BaseItems: BaseItemsNode] RETURNS[ModuleItemNode] = BEGIN data: ModuleItembaseItemsProdData ← NEW[ModuleItembaseItemsProdDataBody←[ BaseItems]]; RETURN[NEW[ModuleItemNodeBody←[position, length, ModuleItembaseItemsProdProcs, data]]]; END; -- ModuleItemabGramItemsProd ModuleItemabGramItemsProdProcs: PUBLIC ModuleItemNodeProcs ← NEW[ModuleItemNodeProcsBody ← [ModuleItemabGramItemsProdCollectModuleValueTypes, ModuleItemabGramItemsProdCollectModuleFunctionTypes, ModuleItemabGramItemsProdCollectProductions, ModuleItemabGramItemsProdCollectRightSideSymbols, ModuleItemabGramItemsProdDefFileCode, ModuleItemabGramItemsProdImplFileCode, ModuleItemabGramItemsProdLinkFileCode, ModuleItemabGramItemsProdSyntaxFileCodes, ModuleItemabGramItemsProdTestLinkPresent]]; BuildModuleItemabGramItemsProdNode: PUBLIC PROC[position: INT, length: INT, AbGramItems: AbGramItemsNode] RETURNS[ModuleItemNode] = BEGIN data: ModuleItemabGramItemsProdData ← NEW[ModuleItemabGramItemsProdDataBody←[ AbGramItems]]; RETURN[NEW[ModuleItemNodeBody←[position, length, ModuleItemabGramItemsProdProcs, data]]]; END; -- ModuleItemcGramItemsProd ModuleItemcGramItemsProdProcs: PUBLIC ModuleItemNodeProcs ← NEW[ModuleItemNodeProcsBody ← [ModuleItemcGramItemsProdCollectModuleValueTypes, ModuleItemcGramItemsProdCollectModuleFunctionTypes, ModuleItemcGramItemsProdCollectProductions, ModuleItemcGramItemsProdCollectRightSideSymbols, ModuleItemcGramItemsProdDefFileCode, ModuleItemcGramItemsProdImplFileCode, ModuleItemcGramItemsProdLinkFileCode, ModuleItemcGramItemsProdSyntaxFileCodes, ModuleItemcGramItemsProdTestLinkPresent]]; BuildModuleItemcGramItemsProdNode: PUBLIC PROC[position: INT, length: INT, CGramItems: CGramItemsNode] RETURNS[ModuleItemNode] = BEGIN data: ModuleItemcGramItemsProdData ← NEW[ModuleItemcGramItemsProdDataBody←[ CGramItems]]; RETURN[NEW[ModuleItemNodeBody←[position, length, ModuleItemcGramItemsProdProcs, data]]]; END; -- ModuleItemgenTknProd ModuleItemgenTknProdProcs: PUBLIC ModuleItemNodeProcs ← NEW[ModuleItemNodeProcsBody ← [ModuleItemgenTknProdCollectModuleValueTypes, ModuleItemgenTknProdCollectModuleFunctionTypes, ModuleItemgenTknProdCollectProductions, ModuleItemgenTknProdCollectRightSideSymbols, ModuleItemgenTknProdDefFileCode, ModuleItemgenTknProdImplFileCode, ModuleItemgenTknProdLinkFileCode, ModuleItemgenTknProdSyntaxFileCodes, ModuleItemgenTknProdTestLinkPresent]]; BuildModuleItemgenTknProdNode: PUBLIC PROC[position: INT, length: INT, Identifier: IdentifierNode, RopetknName: RopeNode] RETURNS[ModuleItemNode] = BEGIN data: ModuleItemgenTknProdData ← NEW[ModuleItemgenTknProdDataBody←[ Identifier, RopetknName]]; RETURN[NEW[ModuleItemNodeBody←[position, length, ModuleItemgenTknProdProcs, data]]]; END; -- CedarItemscedarTypesProd CedarItemscedarTypesProdProcs: PUBLIC CedarItemsNodeProcs ← NEW[CedarItemsNodeProcsBody ← [CedarItemscedarTypesProdCollectModuleValueTypes, CedarItemscedarTypesProdCollectModuleFunctionTypes]]; BuildCedarItemscedarTypesProdNode: PUBLIC PROC[position: INT, length: INT, IdList: IdListNode] RETURNS[CedarItemsNode] = BEGIN data: CedarItemscedarTypesProdData ← NEW[CedarItemscedarTypesProdDataBody←[ IdList]]; RETURN[NEW[CedarItemsNodeBody←[position, length, CedarItemscedarTypesProdProcs, data]]]; END; -- CedarItemscedarTypesFromProd CedarItemscedarTypesFromProdProcs: PUBLIC CedarItemsNodeProcs ← NEW[CedarItemsNodeProcsBody ← [CedarItemscedarTypesFromProdCollectModuleValueTypes, CedarItemscedarTypesFromProdCollectModuleFunctionTypes]]; BuildCedarItemscedarTypesFromProdNode: PUBLIC PROC[position: INT, length: INT, IdList: IdListNode, Identifier: IdentifierNode] RETURNS[CedarItemsNode] = BEGIN data: CedarItemscedarTypesFromProdData ← NEW[CedarItemscedarTypesFromProdDataBody←[ IdList, Identifier]]; RETURN[NEW[CedarItemsNodeBody←[position, length, CedarItemscedarTypesFromProdProcs, data]]]; END; -- CedarItemscedarEnumTypeFromProd CedarItemscedarEnumTypeFromProdProcs: PUBLIC CedarItemsNodeProcs ← NEW[CedarItemsNodeProcsBody ← [CedarItemscedarEnumTypeFromProdCollectModuleValueTypes, CedarItemscedarEnumTypeFromProdCollectModuleFunctionTypes]]; BuildCedarItemscedarEnumTypeFromProdNode: PUBLIC PROC[position: INT, length: INT, IdentifiertypeName: IdentifierNode, IdListvalues: IdListNode, IdentifierfileName: IdentifierNode] RETURNS[CedarItemsNode] = BEGIN data: CedarItemscedarEnumTypeFromProdData ← NEW[CedarItemscedarEnumTypeFromProdDataBody←[ IdentifiertypeName, IdListvalues, IdentifierfileName]]; RETURN[NEW[CedarItemsNodeBody←[position, length, CedarItemscedarEnumTypeFromProdProcs, data]]]; END; -- CedarItemscedarFunctionFromProd CedarItemscedarFunctionFromProdProcs: PUBLIC CedarItemsNodeProcs ← NEW[CedarItemsNodeProcsBody ← [CedarItemscedarFunctionFromProdCollectModuleValueTypes, CedarItemscedarFunctionFromProdCollectModuleFunctionTypes]]; BuildCedarItemscedarFunctionFromProdNode: PUBLIC PROC[position: INT, length: INT, IdentifierfunName: IdentifierNode, ModIdListargs: ModIdListNode, ModIdListresults: ModIdListNode, IdentifierfileName: IdentifierNode, DamageShareAssertions: DamageShareAssertionsNode] RETURNS[CedarItemsNode] = BEGIN data: CedarItemscedarFunctionFromProdData ← NEW[CedarItemscedarFunctionFromProdDataBody←[ IdentifierfunName, ModIdListargs, ModIdListresults, IdentifierfileName, DamageShareAssertions]]; RETURN[NEW[CedarItemsNodeBody←[position, length, CedarItemscedarFunctionFromProdProcs, data]]]; END; -- CGramItemssimpleTokensProd CGramItemssimpleTokensProdProcs: PUBLIC CGramItemsNodeProcs ← NEW[CGramItemsNodeProcsBody ← [CGramItemssimpleTokensProdCollectProductions, CGramItemssimpleTokensProdCollectRightSideSymbols, CGramItemssimpleTokensProdDefFileCode, CGramItemssimpleTokensProdImplFileCode, CGramItemssimpleTokensProdLinkFileCode, CGramItemssimpleTokensProdSyntaxFileCodes, CGramItemssimpleTokensProdTestLinkPresent]]; BuildCGramItemssimpleTokensProdNode: PUBLIC PROC[position: INT, length: INT, RopeList: RopeListNode] RETURNS[CGramItemsNode] = BEGIN data: CGramItemssimpleTokensProdData ← NEW[CGramItemssimpleTokensProdDataBody←[ RopeList]]; RETURN[NEW[CGramItemsNodeBody←[position, length, CGramItemssimpleTokensProdProcs, data]]]; END; -- CGramItemsnonTerminalProd CGramItemsnonTerminalProdProcs: PUBLIC CGramItemsNodeProcs ← NEW[CGramItemsNodeProcsBody ← [CGramItemsnonTerminalProdCollectProductions, CGramItemsnonTerminalProdCollectRightSideSymbols, CGramItemsnonTerminalProdDefFileCode, CGramItemsnonTerminalProdImplFileCode, CGramItemsnonTerminalProdLinkFileCode, CGramItemsnonTerminalProdSyntaxFileCodes, CGramItemsnonTerminalProdTestLinkPresent]]; BuildCGramItemsnonTerminalProdNode: PUBLIC PROC[position: INT, length: INT, Identifiername: IdentifierNode, Identifierbuilds: IdentifierNode] RETURNS[CGramItemsNode] = BEGIN data: CGramItemsnonTerminalProdData ← NEW[CGramItemsnonTerminalProdDataBody←[ Identifiername, Identifierbuilds]]; RETURN[NEW[CGramItemsNodeBody←[position, length, CGramItemsnonTerminalProdProcs, data]]]; END; -- CGramItemsconcreteProductionProd CGramItemsconcreteProductionProdProcs: PUBLIC CGramItemsNodeProcs ← NEW[CGramItemsNodeProcsBody ← [CGramItemsconcreteProductionProdCollectProductions, CGramItemsconcreteProductionProdCollectRightSideSymbols, CGramItemsconcreteProductionProdDefFileCode, CGramItemsconcreteProductionProdImplFileCode, CGramItemsconcreteProductionProdLinkFileCode, CGramItemsconcreteProductionProdSyntaxFileCodes, CGramItemsconcreteProductionProdTestLinkPresent]]; BuildCGramItemsconcreteProductionProdNode: PUBLIC PROC[position: INT, length: INT, ConcreteProduction: ConcreteProductionNode] RETURNS[CGramItemsNode] = BEGIN data: CGramItemsconcreteProductionProdData ← NEW[CGramItemsconcreteProductionProdDataBody←[ ConcreteProduction]]; RETURN[NEW[CGramItemsNodeBody←[position, length, CGramItemsconcreteProductionProdProcs, data]]]; END; END..