UNPKG

@designliquido/lincones-sqlite

Version:
35 lines 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LinconesSQLite = void 0; const tradutor_1 = require("./tradutor"); const avaliador_sintatico_1 = require("./comum/fontes/avaliador-sintatico"); const lexador_1 = require("./comum/fontes/lexador"); const cliente_sqlite_1 = require("./infraestrutura/cliente-sqlite"); const infraestrutura_1 = require("./infraestrutura"); class LinconesSQLite { constructor() { this.lexador = new lexador_1.Lexador(); this.avaliadorSintatico = new avaliador_sintatico_1.AvaliadorSintatico(); this.tradutor = new tradutor_1.TradutorSqLite(); this.clienteSQLite = new cliente_sqlite_1.ClienteSQLite(); } /** * * @param _ Normalmente a instância do interpretador Delégua. * @param comando * @returns */ async executar(_, comando) { const resultadoLexador = this.lexador.mapear([comando]); const resultadoAvaliacaoSintatica = this.avaliadorSintatico.analisar(resultadoLexador); const resultadoTraducao = this.tradutor.traduzir(resultadoAvaliacaoSintatica.comandos); if (resultadoAvaliacaoSintatica.comandos.length <= 0) { return new infraestrutura_1.RetornoComando(null); } const resultadoExecucao = await this.clienteSQLite.executarComando(resultadoTraducao); const retorno = new infraestrutura_1.RetornoComando(resultadoExecucao); return retorno; } } exports.LinconesSQLite = LinconesSQLite; //# sourceMappingURL=lincones-sqlite.js.map