@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
66 lines • 2.93 kB
TypeScript
import { InterpretadorComDepuracao } from './interpretador-com-depuracao';
export interface ResultadoAvaliacao {
sucesso: boolean;
valor?: any;
tipo?: string;
erro?: string;
}
/**
* 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