"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FormatacaoEscrita = void 0;
/**
 * Um construto de formatação de escrita é utilizado por instruções `escreva`
 * e derivadas para adição de espaços e casas decimais, este último para quando
 * o conteúdo da escrita é um número.
 */
class FormatacaoEscrita {
    constructor(hashArquivo, linha, expressao, espacos, casasDecimais) {
        this.linha = linha;
        this.hashArquivo = hashArquivo;
        this.expressao = expressao;
        this.espacos = espacos || -1;
        this.casasDecimais = casasDecimais || -1;
    }
    async aceitar(visitante) {
        return await visitante.visitarExpressaoFormatacaoEscrita(this);
    }
    paraTexto() {
        return `<formatação-escrita expressão=${this.expressao.paraTexto()} espaços=${this.espacos} casasDecimais=${this.casasDecimais} />`;
    }
    paraTextoSaida() {
        throw new Error('Método não implementado.');
    }
}
exports.FormatacaoEscrita = FormatacaoEscrita;
//# sourceMappingURL=formatacao-escrita.js.map