
    <<Log.mesa>>
        <<Copyright  1985 by Xerox Corporation.  All rights reserved.>>
        <<Satterthwaite, April 9, 1986 11:06:55 am PST>>
        <<Sweet, January 16, 1981  12:07 PM>>
        <<Donahue, 12-Nov-81 15:32:43>>
        <<Maxwell, August 2, 1983 10:57 am>>
        <<Russ Atkinson (RRA) March 6, 1985 10:08:03 pm PST>>

    DIRECTORY
        ConvertUnsafe: TYPE USING [SubString],
        Rope: TYPE USING [ROPE],
        Symbols: TYPE USING [Name, ISEIndex, Type],
        SymbolTable: TYPE USING [Base],
        Tree: TYPE USING [Index, Link, NodeName];

    Log: DEFINITIONS = {

        ErrorCode: TYPE = {

            <<general purpose errors (no parameters)>>
                compilerError,
                unimplemented,
                other,
                aborted,

            <<errors with no parameters>>
                arraySize,
                attrClash,
                bodyType,
                catchLabel,
                descriptor,
                discrimForm,
                exit,
                illDefinedReturn,
                implicitCall,
                indexType,
                inlineChecked,
                inlineType,
                instLength,
                interfaceString,
                keys,
                long,
                longPath,
                machDep,
                misplacedCatch,
                misplacedEntry,
                misplacedMonitorRef,
                misplacedResume,
                misplacedReturn,
                misplacedStop,
                misplacedType,
                mixedPositions,
                noAccess,
                nonOrderedType,
                nonTypeCons,
                nonVoidStmt,
                opaqueTest,
                relative,
                stateVector,
                staticNesting,
                subrangeNesting,
                unsafeBlock,
                var,

            <<errors mapping hash to sei parameters>>
                unknownId,
                unknownField,

            <<errors with hash parameters>>
                ambiguousId,
                duplicateId,
                missingImport,
                unknownTag,
                duplicateTag,
                unknownVariant,
                unknownKey,
                duplicateKey,
                omittedKey,
                openId,
                fileName,
                fileWrong,
                moduleId,

            <<errors with sei parameters>>
                addressOverflow,
                circularType,
                circularValue,
                elision,
                enumOrder,
                exportAttr,
                exportClash,
                fieldPosition,
                forwardRef,
                internalCall,
                missingBase,
                missingInit,
                missingLock,
                nonDefinition,
                nonTagType,
                nonTypeId,
                notImported,
                position,
                privateId,
                recordGap,
                recordOverlap,
                recursiveInline,
                typeLength,
                updateClash,
                varExport,

            <<errors with tree parameters>>
                boundsFault,
                controlId,
                defaultForm,
                duplicateLabel,
                missingBinding,
                misusedInline,
                mixedRepresentation,
                noApplication,
                nonAddressable,
                nonConstant,
                nonInterface,
                nonLHS,
                nonVar,
                nonVariantLabel,
                noTarget,
                notPortable,
                noVariants,
                operandSize,
                overflow,
                scopeFault,
                sizeClash,
                spuriousBinding,
                typeClash,
                unknownLabel,
                unsafeOperation,
                unsafeSelection,

            <<errors with tree and operator parameters>>
                missingAttr,
                missingOp,
                unsafeOp,

            <<errors with numeric parameters>>
                bodyEntries,
                exportedVars,
                interfaceEntries,
                listShort,
                listLong,

            <<warnings with no parameters>>
                pointerInit,
                unreachable,

            <<warnings with sei parameters>>
                paddedField,
                privateExport,
                uninitialized,
                unusedExport,
                unusedId,
                unusedImport,
                voidExport,

            <<warnings with substring parameters>>
                replString,
                replId,

            <<warnings with tree parameters>>
                emptyArray,
                fileVersion,
                unsignedCompare
                };


        Type: TYPE = RECORD[
            stb: SymbolTable.Base,
            type: Symbols.Type];

        Error: PROC[ErrorCode];
        ErrorHti: PROC[ErrorCode, Symbols.Name];
        ErrorN: PROC[ErrorCode, INTEGER];
        ErrorNode: PROC[ErrorCode, Tree.Index];
        ErrorNodeOp: PROC[ErrorCode, Tree.Index, Tree.NodeName];
        ErrorSei: PROC[ErrorCode, Symbols.ISEIndex];
        ErrorTree: PROC[ErrorCode, Tree.Link];
        ErrorTreeOp: PROC[ErrorCode, Tree.Link, Tree.NodeName];
        ErrorType: PROC[ErrorCode, Tree.Link, Type];

        Warning: PROC[ErrorCode];
        WarningNode: PROC[ErrorCode, Tree.Index];
        WarningSei: PROC[ErrorCode, Symbols.ISEIndex];
        WarningSubString: PROC[ErrorCode, ConvertUnsafe.SubString];
        WarningRope: PROC[ErrorCode, Rope.ROPE];
        WarningTree: PROC[ErrorCode, Tree.Link];

        }.


