import { CommonError, StringUtils } from "../common"; import { Lexer } from ".."; export type TLexError = CommonError.CommonError | LexError; export type TInnerLexError = BadLineNumberError | BadRangeError | BadStateError | EndOfStreamError | ErrorLineMapError | ExpectedError | UnexpectedEofError | UnexpectedReadError | UnterminatedMultilineTokenError; export declare enum BadLineNumberKind { LessThanZero = "LessThanZero", GreaterThanNumLines = "GreaterThanNumLines" } export declare enum BadRangeKind { SameLine_LineCodeUnitStart_Higher = "SameLine_LineCodeUnitStart_Higher", LineNumberStart_GreaterThan_LineNumberEnd = "LineNumberStart_GreaterThan_LineNumberEnd", LineNumberStart_LessThan_Zero = "LineNumberStart_LessThan_Zero", LineNumberStart_GreaterThan_NumLines = "LineNumberStart_GreaterThan_NumLines", LineNumberEnd_GreaterThan_NumLines = "LineNumberEnd_GreaterThan_NumLines", LineCodeUnitStart_GreaterThan_LineLength = "LineCodeUnitStart_GreaterThan_LineLength", LineCodeUnitEnd_GreaterThan_LineLength = "LineCodeUnitEnd_GreaterThan_LineLength" } export declare enum ExpectedKind { HexLiteral = "HexLiteral", KeywordOrIdentifier = "KeywordOrIdentifier", Numeric = "Numeric" } export declare enum UnterminatedMultilineTokenKind { MultilineComment = "MultilineComment", QuotedIdentifier = "QuotedIdentifier", Text = "Text" } export declare class LexError extends Error { readonly innerError: TInnerLexError; constructor(innerError: TInnerLexError); } export declare class BadLineNumberError extends Error { readonly kind: BadLineNumberKind; readonly lineNumber: number; readonly numLines: number; constructor(kind: BadLineNumberKind, lineNumber: number, numLines: number, locale: string); } export declare class BadRangeError extends Error { readonly range: Lexer.Range; readonly kind: BadRangeKind; constructor(range: Lexer.Range, kind: BadRangeKind, locale: string); } export declare class BadStateError extends Error { readonly innerError: TLexError; constructor(innerError: TLexError, locale: string); } export declare class ErrorLineMapError extends Error { readonly errorLineMap: Lexer.ErrorLineMap; constructor(errorLineMap: Lexer.ErrorLineMap, locale: string); } export declare class EndOfStreamError extends Error { constructor(locale: string); } export declare class ExpectedError extends Error { readonly graphemePosition: StringUtils.GraphemePosition; readonly kind: ExpectedKind; constructor(graphemePosition: StringUtils.GraphemePosition, kind: ExpectedKind, locale: string); } export declare class UnexpectedEofError extends Error { readonly graphemePosition: StringUtils.GraphemePosition; constructor(graphemePosition: StringUtils.GraphemePosition, locale: string); } export declare class UnexpectedReadError extends Error { readonly graphemePosition: StringUtils.GraphemePosition; constructor(graphemePosition: StringUtils.GraphemePosition, locale: string); } export declare class UnterminatedMultilineTokenError extends Error { readonly graphemePosition: StringUtils.GraphemePosition; readonly kind: UnterminatedMultilineTokenKind; constructor(locale: string, graphemePosition: StringUtils.GraphemePosition, kind: UnterminatedMultilineTokenKind); } export declare function isLexError(error: unknown): error is LexError; export declare function isTLexError(error: unknown): error is TLexError; export declare function isTInnerLexError(error: unknown): error is TInnerLexError;