UNPKG

@designliquido/delegua

Version:

Linguagem de programação simples e moderna usando português estruturado.

61 lines 2.88 kB
import { ResultadoAvaliacao } from '../../interfaces/depuracao'; import { InterpretadorComDepuracao } from './interpretador-com-depuracao'; /** * Avaliador de expressões para depuração. * * Este avaliador é usado para avaliar expressões no painel de depuração do VSCode * (watch panel) de forma segura, sem modificar o estado da execução do programa. * * Utiliza a infraestrutura existente do interpretador (MicroLexador, MicroAvaliadorSintatico) * e delega a avaliação para o InterpretadorComDepuracao, garantindo que expressões com * efeitos colaterais sejam bloqueadas. * * Exemplo de uso: * ```typescript * const avaliador = new AvaliadorExpressaoDepuracao(interpretador); * const resultado = await avaliador.avaliarExpressao('variavel + 10'); * if (resultado.sucesso) { * console.log(`Valor: ${resultado.valor}, Tipo: ${resultado.tipo}`); * } else { * console.error(`Erro: ${resultado.erro}`); * } * ``` */ export declare class AvaliadorExpressaoDepuracao { private interpretador; constructor(interpretador: InterpretadorComDepuracao); /** * Avalia uma expressão em formato de texto e retorna seu resultado. * * Este método: * 1. Usa o MicroLexador para tokenizar a expressão * 2. Usa o MicroAvaliadorSintatico para gerar a AST * 3. Valida se a expressão não tem efeitos colaterais * 4. Delega a avaliação para o interpretador * 5. Resolve e formata o valor resultante * * @param expressaoTexto A expressão em formato de texto (ex: "variavel + 10") * @param permitirEfeitosColaterais Se `true`, permite expressões com efeitos colaterais. * Padrão: `false` (somente leitura). * @returns Uma Promise que resolve para um ResultadoAvaliacao com o resultado ou erro. */ avaliarExpressao(expressaoTexto: string, permitirEfeitosColaterais?: boolean): Promise<ResultadoAvaliacao>; /** * Formata o valor de uma expressão para exibição no painel de depuração. * Converte o valor para uma representação textual legível. * * @param valor O valor a ser formatado. * @returns Uma string representando o valor. */ formatarValorParaExibicao(valor: any): string; /** * Avalia uma expressão e retorna diretamente seu valor formatado para exibição. * Atalho para `avaliarExpressao()` seguido de `formatarValorParaExibicao()`. * * @param expressaoTexto A expressão em formato de texto. * @param permitirEfeitosColaterais Se `true`, permite expressões com efeitos colaterais. * @returns Uma Promise que resolve para uma string com o valor formatado ou mensagem de erro. */ avaliarEFormatar(expressaoTexto: string, permitirEfeitosColaterais?: boolean): Promise<string>; } //# sourceMappingURL=avaliador-expressao-depuracao.d.ts.map