import { LexadorInterface, SimboloInterface } from '../interfaces';
import { RetornoLexadorInterface } from '../interfaces/retornos';
import { ErroLexador } from './erro-lexador';
/**
 * Essa versão do Lexador Base é por padrão com comentários multilinha.
 * Em outras palavras, se o dialeto da linguagem terá comentários multilinha,
 * este Lexador Base deverá ser usado.
 */
export declare abstract class LexadorBase implements LexadorInterface<SimboloInterface> {
    erros: ErroLexador[];
    hashArquivo: number;
    simbolos: SimboloInterface[];
    codigo: string[];
    inicioSimbolo: number;
    atual: number;
    linha: number;
    constructor();
    protected avancarParaProximaLinha(): void;
    eDigito(caractere: string): boolean;
    eAlfabeto(caractere: string): boolean;
    eAlfabetoOuDigito(caractere: string): boolean;
    /**
     * Verifica se o caractere é um dígito hexadecimal (0-9, a-f, A-F).
     */
    eHexDigito(caractere: string): boolean;
    /**
     * Verifica se o caractere é um dígito binário (0 ou 1).
     */
    eBinarioDigito(caractere: string): boolean;
    /**
     * Verifica se o caractere é um dígito octal (0-7).
     */
    eOctalDigito(caractere: string): boolean;
    /**
     * Indica se o código está na última linha.
     * @returns Verdadeiro se contador de linhas está na última linha.
     *          Falso caso contrário.
     */
    protected eUltimaLinha(): boolean;
    eFinalDoCodigo(): boolean;
    eFinalDaLinha(): boolean;
    protected encontrarFimComentarioAsterisco(): void;
    avancar(): void;
    adicionarSimbolo(tipo: any, literal?: any): void;
    simboloAtual(): string;
    proximoSimbolo(): string;
    simboloAnterior(): string;
    abstract analisarTexto(delimitador: string): void;
    abstract analisarNumero(): void;
    abstract identificarPalavraChave(): void;
    abstract analisarToken(): void;
    abstract mapear(codigo: string[], hashArquivo: number): RetornoLexadorInterface<SimboloInterface>;
}
//# sourceMappingURL=lexador-base.d.ts.map