DIRECTORY LupineManagerPrivate USING [Language, Nest, Options, String, StringNIL], LupineMarshal USING [ParamInfoObject, PktSite, TransferDeclaration, TransferSite], LupineSymbolTable USING [SymbolHandle, TypeHandle, TypeInfo]; LupineDeclare: DEFINITIONS = BEGIN OPEN LupineManagerPrivate, Marshal: LupineMarshal, ST: LupineSymbolTable; TransferInfo: TYPE = Transfer ST.TypeInfo; TransferName: PROCEDURE [transfer: ST.SymbolHandle] RETURNS[name: String]; WriteTransferName: PROCEDURE [transfer: ST.SymbolHandle]; ParameterName: PROCEDURE [ parameter: ST.SymbolHandle, parameterNumber: INTEGER] RETURNS [name: String]; WriteParameterName: PROCEDURE [ parameter: ST.SymbolHandle, parameterNumber: INTEGER]; WriteSymbolName: PROCEDURE [symbol: ST.SymbolHandle]; WriteSymbolType: PROCEDURE [symbol: ST.SymbolHandle]; WriteTypeName: PROCEDURE [type: ST.TypeHandle, includeReadonly: BOOLEAN_TRUE, extraFirstArg: String _ NIL]; GetArgResultInfo: PROCEDURE [ transferInfo: TransferInfo, transferDeclaration: TransferDeclaration, transferSite: TransferSite, pktSite: PktSite, options: Options ] RETURNS [argInfo, resultInfo: ParamInfo]; GetTransferInfo: PROCEDURE [typeHandle: ST.TypeHandle] RETURNS[--transferInfo:-- TransferInfo] ; DirectoryItem: TYPE = RECORD [ module: String, inhibit: BOOL _ FALSE, -- if TRUE, inhibit processing of this directory item usingAll, usingSome: String_StringNIL, -- Use just one, not both. openName: String_StringNIL, usedIn: PACKED ARRAY InterfaceUse OF FalseBoolean_ALL[FALSE], forLanguage: PACKED ARRAY Language OF FalseBoolean_ALL[TRUE], outOfLineMarshalOnly: BOOL_FALSE ]; InterfaceUse: TYPE = {imports, exports, shares, beginOpen}; FalseBoolean: TYPE = BOOLEAN _ FALSE; DirectoryList: TYPE = LONG DESCRIPTOR FOR READONLY ARRAY OF DirectoryItem; EmptyDirectoryList: DirectoryList = NIL; ModuleNameList: TYPE = LONG DESCRIPTOR FOR READONLY ARRAY OF String; Directory: PROCEDURE [ includeInterfaceDirectory: BOOLEAN_TRUE, extraDirectories: DirectoryList_EmptyDirectoryList, options: Options, nest: Nest_0 ]; ModuleHead: PROCEDURE [ moduleNames: ModuleNameList, moduleType: String, interfaceList: DirectoryList_EmptyDirectoryList, options: Options, nest: Nest_0, noOutputFiles: INT _ 1]; InterfaceList: PROCEDURE [ use: InterfaceUse, targetSystem: Language, interfaceList: DirectoryList, beginText, endText: String_StringNIL, options: Options, nest: Nest ]; ImportExport: TYPE = {import, export}; BindingInterface: PROCEDURE [options: Options]; BindingRoutinesStandard: PROCEDURE [kind: ImportExport, options: Options]; BindingRoutinesDynamic: PROCEDURE [kind: ImportExport, options: Options]; BindingRoutinesPrivate: PROCEDURE [kind: ImportExport, options: Options]; ProcedureIndex: PROCEDURE [nest: Nest_1]; SignalIndex: PROCEDURE [nest: Nest_1]; DispatcherType: TYPE = {client, server, callback, none}; DispatcherHead: PROCEDURE [type: DispatcherType, nest: Nest]; DispatcherSelect: PROCEDURE [type: DispatcherType, nest: Nest]; DispatcherTail: PROCEDURE [type: DispatcherType, nest: Nest]; ParamInfo: TYPE = REF --READONLY-- Marshal.ParamInfoObject; TransferDeclaration: TYPE = Marshal.TransferDeclaration; TransferSite: TYPE = Marshal.TransferSite; PktSite: TYPE = Marshal.PktSite; ProcedureStub: PROCEDURE [ transfer: ST.SymbolHandle, transferType: ST.TypeHandle, transferDeclaration: TransferDeclaration, signalDispatcherType: DispatcherType, options: Options, nest: Nest ]; DispatcherStubArm: PROCEDURE [ transfer: ST.SymbolHandle, transferType: ST.TypeHandle, transferDeclaration: TransferDeclaration, options: Options, nest: Nest ]; DispatcherStubBody: PROCEDURE [ transfer: ST.SymbolHandle, transferType: ST.TypeHandle, transferDeclaration: TransferDeclaration, inlineBody: BOOLEAN, options: Options, nest: Nest ]; SignalCode: PROCEDURE [ transfer: ST.SymbolHandle, transferType: ST.TypeHandle, transferDeclaration: TransferDeclaration, options: Options, nest: Nest ]; SignalCatchStub: PROCEDURE [ transfer: ST.SymbolHandle, transferType: ST.TypeHandle, transferDeclaration: TransferDeclaration, signalDispatcherType: DispatcherType _ none, options: Options, nest: Nest ]; END. -- LupineDeclare. δLupineDeclare.mesa. Copyright c 1985 by Xerox Corporation. All rights reserved. Last edited by BZM on 10-May-82 18:41:34. Birrell, September 8, 1983 4:35 pm Swinehart, June 26, 1984 8:55:21 am PDT Bob Hagmann February 8, 1985 5:00:46 pm PST LupineDeclare is exported by modules LupineDeclare*Impl. General symbol and type routines: Directory and interface manipulation routines: Binding code generation routines: Other code generation routines: Stub code generation routines: Κ‚˜headšœ™Icodešœ Οmœ1™<—šœ™Jšœ™J™"J™'L™+—J˜Jšœ8™8J™J˜šΟk ˜ Jšœžœ.˜HJšœžœ?˜RJšœžœ&˜=J˜J˜—šœž œ˜Jšžœžœ/žœ˜OJ˜Jšœžœ žœ ˜*J˜—Jšœ!™!˜šΟn œž œ žœ˜3Jšžœ˜J˜—JšŸœž œ žœ˜9J˜šŸ œž œ˜Jšœ žœ˜Jšœžœ˜Jšžœ˜J˜—šŸœž œ˜Jšœ žœ˜Jšœžœ˜J˜—JšŸœž œ žœ˜5J˜JšŸœž œ žœ˜5J˜Jš Ÿ œž œžœžœžœ žœ˜kJ˜šŸœž œ˜J˜J˜)J˜J˜J˜Jšžœ"˜)—J˜šŸœž œžœ ˜6JšžœΟcœ˜)—J˜J˜—J˜Jšœ.™.˜šœžœžœ˜J˜Jšœ žœžœ 6˜NJšœ( ˜BJ˜Jš œžœžœžœžœžœ˜=Jš œ žœžœ žœžœžœ˜=Jšœžœžœ˜#J˜—Jšœžœ)˜;Jšœžœžœžœ˜%Jšœžœžœž œžœžœžœžœ˜JJšœ$žœ˜(Jšœžœžœž œžœžœžœžœ˜DJ˜šŸ œž œ˜Jšœžœžœ˜(J˜3J˜J˜J˜—šŸ œž œ˜J˜J˜J˜0J˜J˜ Jšœžœ˜J˜—šŸ œž œ˜˜J˜—J˜J˜%J˜J˜ J˜——J˜Jšœ!™!˜Jšœžœ˜&J˜JšŸœž œ˜/J˜JšŸœž œ(˜JJ˜JšŸœž œ(˜IJ˜JšŸœž œ(˜IJ˜J˜J˜J˜—Jšœ™˜JšŸœž œ˜)J˜JšŸ œž œ˜&J˜J˜Jšœžœ$˜8J˜JšŸœž œ$˜=J˜JšŸœž œ$˜?J˜JšŸœž œ$˜=J˜—J˜Jšœ™˜Jšœ žœžœ  œ˜;Jšœžœ˜8Jšœžœ˜*Jšœ žœ˜ J˜šŸ œž œ˜Jšœ žœ˜Jšœžœ ˜J˜)J˜%J˜J˜ J˜—šŸœž œ˜Jšœ žœ˜Jšœžœ ˜J˜)J˜J˜ J˜—šŸœž œ˜Jšœ žœ˜Jšœžœ ˜J˜)Jšœ žœ˜J˜J˜ J˜—šŸ œž œ˜Jšœ žœ˜Jšœžœ ˜J˜)J˜J˜ J˜—šŸœž œ˜Jšœ žœ˜Jšœžœ ˜J˜)J˜,J˜J˜ J˜—Jšžœ ˜J˜——…—bΘ