-- ThreeC4RecFcnDecl.ThreeC4 -- Sturgis, May 8, 1986 4:20:37 pm PDT Include[ThreeC4BaseDecl]; ThreeC4RecFcnDecl: Module = Begin FormFileSeq: TreeRecursiveFunction[Tree, Context] Returns[FileSeq] DamagedReps[Context]; MakeFileSeq: TreeRecursiveFunction[Tree, LookupContext] Returns[FileSeq]; DefFileCode: TreeRecursiveFunction[Tree, LookupContext, Usage.arg] Returns[MesaCode, Usage.result] DamagedReps[Usage.arg]; ImplFileCode: TreeRecursiveFunction[Tree, LookupContext, Usage.arg] Returns[MesaCode, Usage.result] DamagedReps[Usage.arg]; LinkFileCode: TreeRecursiveFunction[Tree, LookupContext, Usage.arg] Returns[MesaCode, Usage.result] DamagedReps[Usage.arg]; SyntaxFileCodes: TreeRecursiveFunction[Tree, LookupContext] Returns[MesaCode.tkns, MesaCode.prdns]; SpecialSyntaxTokenFileCode: TreeRecursiveFunction[Tree] Returns[MesaCode]; SyntaxRightSideFileCode: TreeRecursiveFunction[Tree] Returns[MesaCode]; CollectValueTypes: TreeRecursiveFunction[Tree, Context.arg] Returns[Context.result] DamagedReps[Context.arg]; CollectFunctionTypes: TreeRecursiveFunction[Tree, Context.arg] Returns[Context.result] DamagedReps[Context.arg]; CollectProductions: TreeRecursiveFunction[Tree, INT.firstProd, Context.arg] Returns[INT.nextProd, Context.result] DamagedReps[Context.arg]; CollectModuleValueTypes: TreeRecursiveFunction[Tree, ROPE, Context.arg] Returns[Context.result] DamagedReps[Context.arg]; CollectModuleFunctionTypes: TreeRecursiveFunction[Tree, ROPE, Context.arg] Returns[Context.result] DamagedReps[Context.arg]; RecordCedarTypesFrom: TreeRecursiveFunction[Tree, ROPE, Context.arg] Returns[Context.result] DamagedReps[Context.arg]; RecordCedarTypes: TreeRecursiveFunction[Tree, Context.arg] Returns[Context.result] DamagedReps[Context.arg]; FormTypeList: TreeRecursiveFunction[Tree, LookupContext] Returns[TypeList]; FormTypeListEarly: TreeRecursiveFunction[Tree, Context] Returns[TypeList]; FormTypeEarly: TreeRecursiveFunction[Tree, Context] Returns[Type]; FormTypesCode: TreeRecursiveFunction[Tree, LookupContext, Usage.arg] Returns[MesaCode, Usage.result] DamagedReps[Usage.arg]; ProcFieldTypeCode: TreeRecursiveFunction[Tree, LookupContext, Usage.arg] Returns[MesaCode, Usage.result] DamagedReps[Usage.arg]; FormNameList: TreeRecursiveFunction[Tree] Returns[NameList]; CollectRightSideSymbols: TreeRecursiveFunction[Tree, Context.arg] Returns[Context.result] DamagedReps[Context.arg]; FormRightSideContext: TreeRecursiveFunction[Tree, LookupContext.arg] Returns[LookupContext.result] SharedReps[LookupContext.arg, LookupContext.result]; FormName: TreeRecursiveFunction[Tree] Returns[Name]; FormFirstId: TreeRecursiveFunction[Tree] Returns[Identifier]; FormType: TreeRecursiveFunction[Tree, LookupContext] Returns[Type]; FormValueInfo: TreeRecursiveFunction[Tree, LookupContext] Returns[Type, MesaCode]; FormNodeVarAssignCode: TreeRecursiveFunction[Tree] Returns[MesaCode]; FormExpCode: TreeRecursiveFunction[Tree, LookupContext, Usage.arg] Returns[MesaCode, Type, Usage.result] DamagedReps[Usage.arg]; FormExpListCode: TreeRecursiveFunction[Tree, LookupContext, Usage.arg] Returns[MesaCode, TypeList, Usage.result]; TestFormControlFile: TreeRecursiveFunction[Tree] Returns[BOOLEAN]; FormLinkCallCode: TreeRecursiveFunction[Tree, LookupContext, Usage.arg] Returns[MesaCode, Usage.result] DamagedReps[Usage.arg]; TestLinkPresent: TreeRecursiveFunction[Tree] Returns[BOOLEAN]; FormControlFileList: TreeRecursiveFunction[Tree, INT, MesaCode.syntax, MesaCode.linkCalls, Usage.arg] Returns[FileSeq, Usage.result] DamagedReps[Usage.arg]; RecordMultipleBaseTypes: TreeRecursiveFunction[Tree, ROPE, Context.arg] Returns[Context.result] DamagedReps[Context.arg]; BaseDeclCode: TreeRecursiveFunction[Tree, LookupContext] Returns[MesaCode]; FormAbstRightSideContext: TreeRecursiveFunction[Tree, Context.arg] Returns[Context.result] DamagedReps[Context.arg]; DataBodyFieldTypeCode: TreeRecursiveFunction[Tree, LookupContext] Returns[MesaCode]; ProdDataTypeDefCode: TreeRecursiveFunction[Tree, MesaCode.prodName, LookupContext] Returns[MesaCode.result]; FormProcsNamesCode: TreeRecursiveFunction[Tree, MesaCode.prodName] Returns[MesaCode.result]; FormTypeUse: TreeRecursiveFunction[Tree, Usage.arg, LookupContext] Returns[Usage.result] DamagedReps[Usage.arg]; ProdBuildDataRcdCode: TreeRecursiveFunction[Tree, MesaCode.a, MesaCode.b] Returns[MesaCode.r]; FormRecFcnsDeclCode: TreeRecursiveFunction[Tree, MesaCode.prodName, LookupContext, Usage.arg] Returns[MesaCode.result, Usage.result] DamagedReps[Usage.arg]; FormVarDeclCode: TreeRecursiveFunction[Tree, TypeList] Returns[MesaCode]; FormRecordOfDamageShareAssertion: TreeRecursiveFunction[Tree, FcnDefGraph.arg] Returns[FcnDefGraph.result] DamagedReps[FcnDefGraph.arg] End. J%