import { BrsType } from "./brsTypes"; import { TracePoint } from "./interpreter"; import type { Location } from "./lexer"; export declare class BrsError extends Error { readonly location: Location; backTrace?: TracePoint[] | undefined; constructor(message: string, location: Location, backTrace?: TracePoint[] | undefined); /** * Formats the error into a human-readable string including filename, starting and ending line * and column, and the message associated with the error, e.g.: * * `lorem.brs(1,1-3): Expected '(' after sub name` * @see BrsError#format */ format(): string; /** * Formats a location and message into a human-readable string including filename, starting * and ending line and column, and the message associated with the error, e.g.: * * `lorem.brs(1,1-3): Expected '(' after sub name` * * @param message a string describing the error * @param location where the error occurred */ static format(message: string, location: Location): string; } /** An error thrown when a BrightScript runtime error is encountered. */ export declare class RuntimeError extends BrsError { readonly errorDetail: ErrorDetail; readonly backTrace?: TracePoint[] | undefined; readonly extraFields?: Map | undefined; constructor(errorDetail: ErrorDetail, location: Location, backTrace?: TracePoint[] | undefined, extraFields?: Map | undefined); } /** Any error detail provided by the reference brightscript implementation. */ export type ErrorDetail = { /** The unique ID of the error. */ errno: number; /** The human-readable version */ message: string; }; /** * Function to find the error detail by the errno * @param errno number of the error code * @returns the error detail object */ export declare function findErrorDetail(errno: number): ErrorDetail | null; /** Enumerator with the RBI Runtime Error codes */ export declare const RuntimeErrorDetail: { NextWithoutFor: { errno: number; message: string; }; BadSyntax: { message: string; errno: number; }; ReturnedWithoutGosub: { message: string; errno: number; }; OutOfData: { message: string; errno: number; }; BadFunctionOrArrayParam: { message: string; errno: number; }; OutOfMemory: { message: string; errno: number; }; MissingLineNumber: { message: string; errno: number; }; IndexOutOfBounds: { message: string; errno: number; }; RedimensionArray: { message: string; errno: number; }; DivideByZero: { message: string; errno: number; }; TypeMismatch: { message: string; errno: number; }; OutOfMemoryStringOp: { message: string; errno: number; }; StringTooLong: { message: string; errno: number; }; BadBitShift: { message: string; errno: number; }; NoContinue: { message: string; errno: number; }; OutOfRange: { message: string; errno: number; }; ExecutionTimeout: { message: string; errno: number; }; InvalidFormatSpecifier: { message: string; errno: number; }; MalformedThrow: { message: string; errno: number; }; UserDefined: { message: string; errno: number; }; TooManyTasks: { message: string; errno: number; }; RunNotSupported: { message: string; errno: number; }; ContinueForWithoutFor: { message: string; errno: number; }; ContinueWhileWithoutWhile: { message: string; errno: number; }; TryContainsLabel: { message: string; errno: number; }; EvalDisabled: { message: string; errno: number; }; FunctionNotFound: { message: string; errno: number; }; NameShadowsBuiltin: { message: string; errno: number; }; VarShadowsFunctionName: { message: string; errno: number; }; LabelLimitExceeded: { message: string; errno: number; }; ClassNotFound: { message: string; errno: number; }; InterfaceTooLarge: { message: string; errno: number; }; NoInitializer: { message: string; errno: number; }; ExitForWithoutFor: { message: string; errno: number; }; Deprecated: { message: string; errno: number; }; BadType: { message: string; errno: number; }; MissingReturnType: { message: string; errno: number; }; ReturnWithoutValue: { message: string; errno: number; }; ReturnWithValue: { message: string; errno: number; }; TypeMismatchForEachIndex: { message: string; errno: number; }; MissingMainFunction: { message: string; errno: number; }; DuplicateSub: { message: string; errno: number; }; LimitExceeded: { message: string; errno: number; }; ExitWhileWithoutWhile: { message: string; errno: number; }; TooManyVariables: { message: string; errno: number; }; TooManyConstants: { message: string; errno: number; }; FunctionNotExpected: { message: string; errno: number; }; UnterminatedString: { message: string; errno: number; }; DuplicateLabel: { message: string; errno: number; }; UnterminatedBlock: { message: string; errno: number; }; BadNext: { message: string; errno: number; }; EndOfFile: { message: string; errno: number; }; CannotReadFile: { message: string; errno: number; }; LineNumberSequenceError: { message: string; errno: number; }; NoLineNumber: { message: string; errno: number; }; IfWithoutEndIf: { message: string; errno: number; }; WhileWithoutEndWhile: { message: string; errno: number; }; EndWhileWithoutWhile: { message: string; errno: number; }; ExceptionThrownOnStack: { message: string; errno: number; }; StackOverflow: { message: string; errno: number; }; NotAFunction: { message: string; errno: number; }; UnsupportedUnicode: { message: string; errno: number; }; ValueReturn: { message: string; errno: number; }; BadNumberOfIndexes: { message: string; errno: number; }; BadLHS: { message: string; errno: number; }; MissingReturnValue: { message: string; errno: number; }; UninitializedFunction: { message: string; errno: number; }; UndimmedArray: { message: string; errno: number; }; NonNumericArrayIndex: { message: string; errno: number; }; UninitializedVariable: { message: string; errno: number; }; TypelessOperation: { message: string; errno: number; }; DotOnNonObject: { message: string; errno: number; }; NonStaticInterfaceCall: { message: string; errno: number; }; NotWaitable: { message: string; errno: number; }; NotPrintable: { message: string; errno: number; }; ReturnValueIgnored: { message: string; errno: number; }; WrongNumberOfParams: { message: string; errno: number; }; TooManyParams: { message: string; errno: number; }; InterfaceNotAMember: { message: string; errno: number; }; MemberFunctionNotFound: { message: string; errno: number; }; RoWrongNumberOfParams: { message: string; errno: number; }; ObjectClassNotFound: { message: string; errno: number; }; Stop: { message: string; errno: number; }; Break: { message: string; errno: number; }; StackUnderflow: { message: string; errno: number; }; MissingParenthesis: { message: string; errno: number; }; UndefinedOperator: { message: string; errno: number; }; NormalEnd: { message: string; errno: number; }; UndefinedOpCode: { message: string; errno: number; }; Internal: { message: string; errno: number; }; Okay: { message: string; errno: number; }; }; /** * Logs a detected BRS error to console. * @param err the error to log to console */ export declare function logConsoleError(err: BrsError): void; /** * Produces a function that writes errors to the given error stream. * @param errorStream write stream to write errors to. * @returns function that writes to given write stream. */ export declare function getLoggerUsing(errorStream: NodeJS.WriteStream): (err: BrsError) => boolean;