UNPKG

@designliquido/foles

Version:

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

78 lines 4.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FolEs = void 0; const avaliador_sintatico_1 = require("./avaliador-sintatico"); const avaliador_sintatico_reverso_1 = require("./avaliador-sintatico/avaliador-sintatico-reverso"); const lexador_1 = require("./lexador"); const lexador_reverso_1 = require("./lexador/lexador-reverso"); const serializadores_1 = require("./serializadores"); const serializador_reverso_1 = require("./serializadores/serializador-reverso"); const importador_1 = require("./importador"); const tradutor_1 = require("./tradutores/tradutor"); const tradutor_reverso_1 = require("./tradutores/tradutor-reverso"); const base64_1 = require("./utilidades/base64"); const gerador_mapa_1 = require("./gerador-mapa"); /** * O núcleo da linguagem FolEs. */ class FolEs { constructor(traduzirComAninhamentos) { this.lexador = new lexador_1.Lexador(); this.lexadorReverso = new lexador_reverso_1.LexadorReverso(); this.importador = new importador_1.Importador(this.lexador); this.importadorReverso = new importador_1.Importador(this.lexadorReverso); this.importadorReverso.extensaoPadrao = ".css"; this.avaliadorSintatico = new avaliador_sintatico_1.AvaliadorSintatico(this.importador); this.avaliadorSintaticoReverso = new avaliador_sintatico_reverso_1.AvaliadorSintaticoReverso(this.importadorReverso); this.serializador = new serializadores_1.Serializador(traduzirComAninhamentos); this.serializadorReverso = new serializador_reverso_1.SerializadorReverso(traduzirComAninhamentos); this.tradutor = new tradutor_1.Tradutor(); this.tradutorReverso = new tradutor_reverso_1.TradutorReverso(); this.geradorMapaCss = new gerador_mapa_1.GeradorMapaCss(); } /** * Método comum de conversão de texto FolEs para CSS. * @param conteudo O conteúdo em FolEs. * @returns O resultado da tradução em CSS. */ converterParaCssInterno(simbolos) { const resultadoAvaliadorSintatico = this.avaliadorSintatico.analisar(simbolos); const traducao = this.serializador.serializar(resultadoAvaliadorSintatico); return traducao; } converterParaFolEsInterno(simbolos) { const resultadoAvaliadorSintaticoReverso = this.avaliadorSintaticoReverso.analisar(simbolos); const traducaoReversa = this.serializadorReverso.serializar(resultadoAvaliadorSintaticoReverso); return traducaoReversa; } converterParaCss(nomeArquivo) { const resultadoLexador = this.importador.importar(nomeArquivo, true); return this.converterParaCssInterno(resultadoLexador[1].simbolos); } converterParaCssComMapas(nomeArquivo) { const resultadoLexador = this.importador.importar(nomeArquivo, true); const resultadoAvaliadorSintatico = this.avaliadorSintatico.analisar(resultadoLexador[1].simbolos); const traducao = this.serializador.serializar(resultadoAvaliadorSintatico); const resultadoTraducao = this.tradutor.traduzir(resultadoAvaliadorSintatico); const mapa = this.geradorMapaCss.gerarMapaFontes(resultadoTraducao, resultadoLexador[0].join("\n")); return [traducao, new base64_1.Base64().encode(JSON.stringify(mapa))]; } converterParaFolEs(nomeArquivo) { const resultadoLexador = this.importadorReverso.importar(nomeArquivo); return this.converterParaFolEsInterno(resultadoLexador[1].simbolos); } converterTextoParaCss(texto) { const resultadoLexador = this.lexador.mapear(texto.split("\n")); return this.converterParaCssInterno(resultadoLexador.simbolos); } converterTextoParaFolEs(texto) { const resultadoLexadorReverso = this.lexadorReverso.mapear(texto.split("\n")); return this.converterParaFolEsInterno(resultadoLexadorReverso.simbolos); } } exports.FolEs = FolEs; // const testeFoles = new FolEs(false); // console.log(testeFoles.converterParaCss('../exemplos/exemplo6.foles')); // console.log(a.converterParaFolEs('../exemplos/reverso/exemplo-metodos.css')); // console.log(a.converterParaFolEs('../exemplos/reverso/exemplo-codigo.css')); //# sourceMappingURL=foles.js.map