@designliquido/lincones-sqlite
Version:
Implementação de LinConEs para SQLite.
35 lines • 1.55 kB
JavaScript
;
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