UNPKG

@designliquido/foles

Version:

Linguagem de folhas de estilo para documentos em geral em português

83 lines 3.75 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Tradutor = void 0; const declaracoes_1 = require("../declaracoes"); const seletor_estruturas_html_1 = require("../estruturas/seletor-estruturas-html"); const superclasse_1 = require("../modificadores/superclasse"); const seletores_1 = require("../seletores"); const metodo_1 = require("../valores/metodos/foles/metodo"); const estruturas_html_1 = __importDefault(require("./estruturas-html")); class Tradutor { constructor() { this.linha = 1; this.atual = 1; } calcularPragmasSeletor(traducaoSeletor) { const novosPragmasSeletor = { linha: this.linha, colunaInicial: this.atual, colunaFinal: this.atual, }; this.atual += traducaoSeletor.length; novosPragmasSeletor.colunaFinal = this.atual - 1; return novosPragmasSeletor; } calcularPragmasModificador(modificador) { const novosPragmasModificador = { linha: this.linha, colunaInicial: this.atual, colunaFinal: this.atual, }; this.atual += modificador.propriedadeCss.length; novosPragmasModificador.colunaFinal = this.atual - 1; return novosPragmasModificador; } traduzirSeletorEstrutura(seletor) { const seletorLmht = seletor.paraTexto(); const traducaoSeletor = estruturas_html_1.default[seletorLmht]; const novosPragmasSeletor = this.calcularPragmasSeletor(traducaoSeletor); const seletorTraduzido = new seletor_estruturas_html_1.SeletorEstruturasHtml(traducaoSeletor, seletor.pragmas); seletorTraduzido.pragmasTraducao = novosPragmasSeletor; return seletorTraduzido; } traduzirModificador(modificador) { this.linha = modificador.pragmas.linha; const novosPragmasModificador = this.calcularPragmasModificador(modificador); const modificadorTraduzido = new superclasse_1.SeletorModificador(Array.isArray(modificador.nomeFoles) ? modificador.nomeFoles[0] : modificador.nomeFoles, modificador.valor instanceof metodo_1.Metodo ? modificador.valor.paraTexto() : modificador.valor, modificador.quantificador, modificador.pragmas); modificadorTraduzido.pragmasTraducao = novosPragmasModificador; return modificadorTraduzido; } traduzir(declaracoes) { this.linha = 1; this.atual = 1; const declaracoesTraduzidas = []; for (const declaracao of declaracoes) { const seletoresTraduzidos = []; const modificadoresTraduzidos = []; if (declaracao instanceof declaracoes_1.BlocoDeclaracao) { for (const seletor of declaracao.seletores) { this.linha = seletor.pragmas.linha; if (seletor instanceof seletores_1.SeletorEstrutura) { seletoresTraduzidos.push(this.traduzirSeletorEstrutura(seletor)); continue; } } for (const modificador of declaracao.modificadores) { modificadoresTraduzidos.push(this.traduzirModificador(modificador)); } declaracoesTraduzidas.push(new declaracoes_1.BlocoDeclaracao(seletoresTraduzidos, modificadoresTraduzidos, [])); } // TODO: Adicionar caso if (declaracao instanceof DeclaracaoVariavel) } return declaracoesTraduzidas; } } exports.Tradutor = Tradutor; //# sourceMappingURL=tradutor.js.map