/** * MEL Lexer * Tokenizes MEL source code based on SPEC v0.3.1 Section 3 */ import type { Diagnostic } from "../diagnostics/types.js"; import { type Token } from "./tokens.js"; /** * Result of lexical analysis */ export interface LexResult { tokens: Token[]; diagnostics: Diagnostic[]; } /** * Lexer for MEL source code */ export declare class Lexer { private source; private sourcePath?; private tokens; private diagnostics; private start; private current; private line; private column; constructor(source: string, sourcePath?: string); /** * Tokenize the source code */ tokenize(): LexResult; private scanToken; private lineComment; private blockComment; private string; private number; private identifier; private systemIdentifier; private isAtEnd; private advance; private peek; private peekNext; private match; private newline; private isDigit; private isHexDigit; private isAlpha; private isAlphaNumeric; private currentLocation; private positionAt; private addToken; private error; private getSourceLine; } /** * Tokenize MEL source code */ export declare function tokenize(source: string, sourcePath?: string): LexResult;