Files
klz-cables.com/.pnpm-store/v10/files/24/0033cc6ee0a66d021c3ca5cc43b3ea8f3c38271fcf2d6622f7a8e5e990e8d537d93aa30dd933fd6caf8f2bd4b7423f180b212d2733cb81a76bd080e12860dc
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

97 lines
2.4 KiB
Plaintext

import { Token } from './ast';
import type { Source } from './source';
import { TokenKind } from './tokenKind';
/**
* A Lexer interface which provides common properties and methods required for
* lexing GraphQL source.
*
* @internal
*/
export interface LexerInterface {
source: Source;
lastToken: Token;
token: Token;
line: number;
lineStart: number;
advance: () => Token;
lookahead: () => Token;
}
/**
* Given a Source object, creates a Lexer for that source.
* A Lexer is a stateful stream generator in that every time
* it is advanced, it returns the next token in the Source. Assuming the
* source lexes, the final Token emitted by the lexer will be of kind
* EOF, after which the lexer will repeatedly return the same EOF token
* whenever called.
*/
export declare class Lexer implements LexerInterface {
source: Source;
/**
* The previously focused non-ignored token.
*/
lastToken: Token;
/**
* The currently focused non-ignored token.
*/
token: Token;
/**
* The (1-indexed) line containing the current token.
*/
line: number;
/**
* The character offset at which the current line begins.
*/
lineStart: number;
constructor(source: Source);
get [Symbol.toStringTag](): string;
/**
* Advances the token stream to the next non-ignored token.
*/
advance(): Token;
/**
* Looks ahead and returns the next non-ignored token, but does not change
* the state of Lexer.
*/
lookahead(): Token;
}
/**
* @internal
*/
export declare function isPunctuatorTokenKind(kind: TokenKind): boolean;
/**
* Prints the code point (or end of file reference) at a given location in a
* source for use in error messages.
*
* Printable ASCII is printed quoted, while other points are printed in Unicode
* code point form (ie. U+1234).
*
* @internal
*/
export declare function printCodePointAt(
lexer: LexerInterface,
location: number,
): string;
/**
* Create a token with line and column location information.
*
* @internal
*/
export declare function createToken(
lexer: LexerInterface,
kind: TokenKind,
start: number,
end: number,
value?: string,
): Token;
/**
* Reads an alphanumeric + underscore name from the source.
*
* ```
* Name ::
* - NameStart NameContinue* [lookahead != NameContinue]
* ```
*
* @internal
*/
export declare function readName(lexer: LexerInterface, start: number): Token;