UNPKG

@designliquido/lincones-sqlite

Version:
43 lines 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AvaliadorSintatico = void 0; const tipos_de_simbolos_1 = __importDefault(require("../comum/fontes/tipos-de-simbolos")); const avaliador_sintatico_base_1 = require("../comum/fontes/avaliador-sintatico/avaliador-sintatico-base"); class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBase { declaracao() { switch (this.simbolos[this.atual].tipo) { case tipos_de_simbolos_1.default.ATUALIZAR: return this.comandoAtualizar(); case tipos_de_simbolos_1.default.CRIAR: return this.comandoCriar(); case tipos_de_simbolos_1.default.EXCLUIR: return this.comandoExcluir(); case tipos_de_simbolos_1.default.INSERIR: return this.comandoInserir(); case tipos_de_simbolos_1.default.SELECIONAR: return this.comandoSelecionar(); default: this.avancar(); return null; } } analisar(retornoLexador) { this.erros = []; this.atual = 0; this.bloco = 0; this.simbolos = (retornoLexador === null || retornoLexador === void 0 ? void 0 : retornoLexador.simbolos) || []; const declaracoes = []; while (!this.estaNoFinal()) { declaracoes.push(this.declaracao()); } return { comandos: declaracoes, erros: this.erros }; } } exports.AvaliadorSintatico = AvaliadorSintatico; //# sourceMappingURL=avaliador-sintatico.js.map