UNPKG

silegismg-interpretador-articulacao

Version:
26 lines (25 loc) 794 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class ParserLinha { constructor(regexp, ...requisitos) { this.regexp = regexp; this.requisitos = requisitos; } processar(contexto, linha) { if (this.atendeRequisitos(contexto)) { const m = this.regexp.exec(linha); if (m) { const resultado = this.onMatch(contexto, m); if (resultado) { contexto.ultimoItem = resultado; return true; } } } return false; } atendeRequisitos(contexto) { return this.requisitos.length === 0 || !!this.requisitos.find((r) => contexto.ultimoItem instanceof r); } } exports.default = ParserLinha;